From 5a2cb8be80981af79580cb5359205a33ffabff02 Mon Sep 17 00:00:00 2001 From: Martin Rubey Date: Mon, 19 Sep 2022 13:53:14 +0200 Subject: [PATCH 001/249] improve approximate order when getitem is called --- src/sage/data_structures/stream.py | 43 +++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 12 deletions(-) diff --git a/src/sage/data_structures/stream.py b/src/sage/data_structures/stream.py index cbef85d64dd..e0abe6f9ad2 100644 --- a/src/sage/data_structures/stream.py +++ b/src/sage/data_structures/stream.py @@ -330,21 +330,40 @@ def __getitem__(self, n): if self._is_sparse: try: - c = self._cache[n] + return self._cache[n] except KeyError: c = self.get_coefficient(n) self._cache[n] = c - else: - i = n - self._offset - if i >= len(self._cache): - a = len(self._cache) + self._offset - # It is important to extend by generator: - # self._iter might recurse, and thereby extend the - # cache itself, too. - self._cache.extend(next(self._iter) for _ in range(a, n+1)) - c = self._cache[i] - - return c + if self._true_order: + return c + # we assume that self._approximate_order is not in + # self._cache. (there should be a possibility to + # check this assumption in a testsuite) + if n == self._approximate_order: + if c: + self._true_order = True + self._approximate_order = n + else: + ao = self._approximate_order + 1 + while ao in self._cache: + if self._cache[ao]: + self._true_order = True + self._approximate_order = ao + return c + ao += 1 + self._approximate_order = ao + + return c + + i = n - self._offset + if i >= len(self._cache): + a = len(self._cache) + self._offset + # It is important to extend by generator: + # self._iter might recurse, and thereby extend the + # cache itself, too. + self._cache.extend(next(self._iter) for _ in range(a, n+1)) + + return self._cache[i] def iterate_coefficients(self): """ From 9a77a819635a355dfee5805b5c87b7a6be219037 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 2 Jul 2022 15:32:55 -0700 Subject: [PATCH 002/249] sage.env.sage_include_directories: Do not append distutils.sysconfig.get_python_inc() --- src/sage/env.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/sage/env.py b/src/sage/env.py index 911f34b1bc6..0542ff4471b 100644 --- a/src/sage/env.py +++ b/src/sage/env.py @@ -383,12 +383,9 @@ def sage_include_directories(use_sources=False): sage: any(os.path.isfile(os.path.join(d, file)) for d in dirs) True """ - import distutils.sysconfig - TOP = SAGE_SRC if use_sources else SAGE_LIB - dirs = [TOP, - distutils.sysconfig.get_python_inc()] + dirs = [TOP] try: import numpy dirs.insert(1, numpy.get_include()) From e2688ef47fac633e5f5a299106e807e23f942d28 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 2 Jul 2022 16:21:53 -0700 Subject: [PATCH 003/249] sage.env.sage_include_directories: Append sysconfig variable INCLUDEPY --- src/sage/env.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/sage/env.py b/src/sage/env.py index 0542ff4471b..e71e625308b 100644 --- a/src/sage/env.py +++ b/src/sage/env.py @@ -383,14 +383,20 @@ def sage_include_directories(use_sources=False): sage: any(os.path.isfile(os.path.join(d, file)) for d in dirs) True """ - TOP = SAGE_SRC if use_sources else SAGE_LIB - - dirs = [TOP] + if use_sources: + dirs = [SAGE_SRC] + else: + import sage + dirs = [os.path.dirname(directory) + for directory in sage.__path__] try: import numpy - dirs.insert(1, numpy.get_include()) + dirs.append(numpy.get_include()) except ModuleNotFoundError: pass + + dirs.append(sysconfig.get_config_var('INCLUDEPY')) + return dirs def get_cblas_pc_module_name() -> str: From a82b36f01ac7606215625ac0acaeb281891fdd37 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Fri, 11 Jun 2021 18:03:48 -0700 Subject: [PATCH 004/249] build/pkgs/cvxpy: New pip package --- build/pkgs/cvxpy/SPKG.rst | 18 ++++++++++++++++++ build/pkgs/cvxpy/dependencies | 4 ++++ build/pkgs/cvxpy/requirements.txt | 1 + build/pkgs/cvxpy/type | 1 + 4 files changed, 24 insertions(+) create mode 100644 build/pkgs/cvxpy/SPKG.rst create mode 100644 build/pkgs/cvxpy/dependencies create mode 100644 build/pkgs/cvxpy/requirements.txt create mode 100644 build/pkgs/cvxpy/type 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/dependencies b/build/pkgs/cvxpy/dependencies new file mode 100644 index 00000000000..888fc3e4481 --- /dev/null +++ b/build/pkgs/cvxpy/dependencies @@ -0,0 +1,4 @@ +$(PYTHON) numpy scipy pybind11 glpk cvxopt | $(PYTHON_TOOLCHAIN) + +---------- +All lines of this file are ignored except the first. diff --git a/build/pkgs/cvxpy/requirements.txt b/build/pkgs/cvxpy/requirements.txt new file mode 100644 index 00000000000..187142bb93e --- /dev/null +++ b/build/pkgs/cvxpy/requirements.txt @@ -0,0 +1 @@ +cvxpy 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 From 7bd56e3b2145ebc8b10311762686771b36bdea1e Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Thu, 10 Mar 2022 13:10:05 -0800 Subject: [PATCH 005/249] sage.numerical.backends.cvxpy_backend: New --- src/sage/numerical/backends/cvxpy_backend.pxd | 31 + src/sage/numerical/backends/cvxpy_backend.pyx | 553 ++++++++++++++++++ .../numerical/backends/generic_backend.pyx | 15 +- 3 files changed, 597 insertions(+), 2 deletions(-) create mode 100644 src/sage/numerical/backends/cvxpy_backend.pxd create mode 100644 src/sage/numerical/backends/cvxpy_backend.pyx diff --git a/src/sage/numerical/backends/cvxpy_backend.pxd b/src/sage/numerical/backends/cvxpy_backend.pxd new file mode 100644 index 00000000000..3d077c3ed07 --- /dev/null +++ b/src/sage/numerical/backends/cvxpy_backend.pxd @@ -0,0 +1,31 @@ +############################################################################## +# Copyright (C) 2010 Nathann Cohen +# Copyright (C) 2022 Matthias Koeppe +# Distributed under the terms of the GNU General Public License (GPL) +# The full text of the GPL is available at: +# http://www.gnu.org/licenses/ +############################################################################## + +from sage.numerical.backends.generic_backend cimport GenericBackend + +cdef class CVXPYBackend(GenericBackend): + + cdef object variables + cdef object problem + cdef object prob_name + + cdef object _cvxpy_solver + cdef object _cvxpy_solver_args + + cpdef int add_variable(self, + lower_bound=*, + upper_bound=*, + binary=*, + continuous=*, + integer=*, + obj=*, + name=*, + coefficients=*) \ + except -1 + + cpdef cvxpy_problem(self) diff --git a/src/sage/numerical/backends/cvxpy_backend.pyx b/src/sage/numerical/backends/cvxpy_backend.pyx new file mode 100644 index 00000000000..d6390a5a89b --- /dev/null +++ b/src/sage/numerical/backends/cvxpy_backend.pyx @@ -0,0 +1,553 @@ +r""" +CVXPY Backend + +AUTHORS: + +- Nathann Cohen (2010-10) : generic_backend template +- Matthias Koeppe (2022-03) : this backend + +""" + +# **************************************************************************** +# Copyright (C) 2010 Nathann Cohen +# Copyright (C) 2022 Matthias Koeppe +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# https://www.gnu.org/licenses/ +# **************************************************************************** + +from sage.numerical.mip import MIPSolverException +from sage.rings.real_double import RDF +from sage.modules.free_module_element import vector +from copy import copy +import cvxpy +from cvxpy.atoms.affine.add_expr import AddExpression +from cvxpy.expressions.constants import Constant + +cdef class CVXPYBackend: + """ + MIP Backend that delegates to CVXPY. + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver="CVXPY") + """ + + def __cinit__(self, maximization=True, base_ring=None, cvxpy_solver=None, cvxpy_solver_args=None): + """ + Cython constructor + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver="CVXPY") + """ + if base_ring is None: + base_ring = RDF + elif base_ring != RDF: + raise ValueError('base_ring must be RDF') + + if isinstance(cvxpy_solver, str): + import cvxpy as cp + cvxpy_solver = getattr(cp, cvxpy_solver.upper()) + self._cvxpy_solver = cvxpy_solver + self._cvxpy_solver_args = cvxpy_solver_args + + self.set_verbosity(0) + self.variables = [] + if maximization: + objective = cvxpy.Maximize(0) + else: + objective = cvxpy.Minimize(0) + self.problem = cvxpy.Problem(objective, ()) + + cpdef __copy__(self): + """ + Returns a copy of self. + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = MixedIntegerLinearProgram(solver="CVXPY") + sage: b = p.new_variable() + sage: p.add_constraint(b[1] + b[2] <= 6) + sage: p.set_objective(b[1] + b[2]) + sage: cp = copy(p.get_backend()) + sage: cp.solve() + 0 + sage: cp.get_objective_value() + 6 + """ + cdef CVXPYBackend cp = type(self)(base_ring=self.base_ring()) + cp.problem = self.problem # it's considered immutable; so no need to copy. + cp.variables = copy(self.variables) + return cp + + cpdef cvxpy_problem(self): + return self.problem + + cpdef int add_variable(self, lower_bound=0, upper_bound=None, + binary=False, continuous=True, integer=False, + obj=None, name=None, coefficients=None) except -1: + ## coefficients is an extension in this backend, + ## and a proposed addition to the interface, to unify this with add_col. + """ + Add a variable. + + This amounts to adding a new column to the matrix. By default, + the variable is both nonnegative and real. + + INPUT: + + - ``lower_bound`` - the lower bound of the variable (default: 0) + + - ``upper_bound`` - the upper bound of the variable (default: ``None``) + + - ``binary`` - ``True`` if the variable is binary (default: ``False``). + + - ``continuous`` - ``True`` if the variable is binary (default: ``True``). + + - ``integer`` - ``True`` if the variable is binary (default: ``False``). + + - ``obj`` - (optional) coefficient of this variable in the objective function (default: 0) + + - ``name`` - an optional name for the newly added variable (default: ``None``). + + - ``coefficients`` -- (optional) an iterable of pairs ``(i, v)``. In each + pair, ``i`` is a row index (integer) and ``v`` is a + value (element of :meth:`base_ring`). + + OUTPUT: The index of the newly created variable + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver="CVXPY") + sage: p.ncols() + 0 + sage: p.add_variable() + 0 + sage: p.ncols() + 1 + sage: p.add_variable(continuous=True, integer=True) + Traceback (most recent call last): + ... + ValueError: ... + sage: p.add_variable(name='x',obj=1) + 1 + sage: p.col_name(1) + 'x' + sage: p.objective_coefficient(1) + 1 + """ + cdef int vtype = int(binary) + int(continuous) + int(integer) + if vtype == 0: + continuous = True + elif vtype != 1: + raise ValueError("Exactly one parameter of 'binary', 'integer' and 'continuous' must be 'True'.") + + if binary: + variable = cvxpy.Variable(name=name, boolean=True) + elif integer: + variable = cvxpy.Variable(name=name, integer=True) + else: + variable = cvxpy.Variable(name=name) + + self.variables.append(variable) + index = self.ncols() - 1 + self.add_linear_constraint([(index, 1)], lower_bound, upper_bound) + + if obj: + objective = type(self.problem.objective)(self.problem.objective.args[0] + + obj * variable) + self.problem = cvxpy.Problem(objective, self.problem.constraints) + + if coefficients is not None: + raise NotImplementedError + + return index + + cpdef set_verbosity(self, int level): + """ + Set the log (verbosity) level + + INPUT: + + - ``level`` (integer) -- From 0 (no verbosity) to 3. + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver="CVXPY") + sage: p.set_verbosity(2) + """ + pass + + cpdef add_linear_constraint(self, coefficients, lower_bound, upper_bound, name=None): + """ + Add a linear constraint. + + INPUT: + + - ``coefficients`` -- an iterable of pairs ``(i, v)``. In each + pair, ``i`` is a variable index (integer) and ``v`` is a + value (element of :meth:`base_ring`). + + - ``lower_bound`` -- element of :meth:`base_ring` or + ``None``. The lower bound. + + - ``upper_bound`` -- element of :meth:`base_ring` or + ``None``. The upper bound. + + - ``name`` -- string or ``None``. Optional name for this row. + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver="CVXPY") + sage: p.add_variables(5) + 4 + sage: p.add_linear_constraint( zip(range(5), range(5)), 2, 2) + sage: p.row(0) + ([1, 2, 3, 4], [1, 2, 3, 4]) + sage: p.row_bounds(0) + (2, 2) + sage: p.add_linear_constraint( zip(range(5), range(5)), 1, 1, name='foo') + sage: p.row_name(1) + 'foo' + """ + if coefficients: + expr = AddExpression([v * self.variables[i] for i, v in coefficients]) + else: + expr = Constant(0) + constraints = list(self.problem.constraints) + if lower_bound is not None and lower_bound == upper_bound: + constraints.append(expr == upper_bound) + elif lower_bound is not None: + constraints.append(lower_bound <= expr) + elif upper_bound is not None: + constraints.append(expr <= upper_bound) + self.problem = cvxpy.Problem(self.problem.objective, constraints) + + cpdef add_col(self, indices, coeffs): + """ + Add a column. + + INPUT: + + - ``indices`` (list of integers) -- this list contains the + indices of the constraints in which the variable's + coefficient is nonzero + + - ``coeffs`` (list of real values) -- associates a coefficient + to the variable in each of the constraints in which it + appears. Namely, the i-th entry of ``coeffs`` corresponds to + the coefficient of the variable in the constraint + represented by the i-th entry in ``indices``. + + .. NOTE:: + + ``indices`` and ``coeffs`` are expected to be of the same + length. + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver="CVXPY") + sage: p.ncols() + 0 + sage: p.nrows() + 0 + sage: p.add_linear_constraints(5, 0, None) + sage: p.add_col(list(range(5)), list(range(5))) + sage: p.nrows() + 5 + """ + self.add_variable(coefficients=zip(indices, coeffs)) + + cpdef set_objective(self, list coeff, d=0.0): + """ + Set the objective function. + + INPUT: + + - ``coeff`` - a list of real values, whose ith element is the + coefficient of the ith variable in the objective function. + + - ``d`` (double) -- the constant term in the linear function (set to `0` by default) + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver="CVXPY") + sage: p.add_variables(5) + 4 + sage: p.set_objective([1, 1, 2, 1, 3]) + sage: [p.objective_coefficient(x) for x in range(5)] + [1.0, 1.0, 2.0, 1.0, 3.0] + """ + if self.variables: + expr = AddExpression([c * x for c, x in zip(coeff, self.variables)]) + else: + expr = Constant(0) + objective = type(self.problem.objective)(expr) + + cpdef set_sense(self, int sense): + """ + Set the direction (maximization/minimization). + + INPUT: + + - ``sense`` (integer) : + + * +1 => Maximization + * -1 => Minimization + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver = "GLPK") + sage: p.is_maximization() + True + sage: p.set_sense(-1) + sage: p.is_maximization() + False + """ + expr = self.problem.objective.args[0] + if sense == 1: + objective = cvxpy.Maximize(expr) + else: + objective = cvxpy.Minimize(expr) + self.problem = cvxpy.Problem(objective, self.problem.constraints) + + cpdef int solve(self) except -1: + """ + Solve the problem. + + .. NOTE:: + + This method raises ``MIPSolverException`` exceptions when + the solution cannot be computed for any reason (none + exists, or the LP solver was not able to find it, etc...) + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver="CVXPY") + sage: p.add_linear_constraints(5, 0, None) + sage: p.add_col(list(range(5)), list(range(5))) + sage: p.solve() + 0 + sage: p.objective_coefficient(0,1) + sage: p.solve() + Traceback (most recent call last): + ... + MIPSolverException: ... + """ + try: + self.problem.solve() + except Exception as e: + raise MIPSolverException(f"cvxpy.Problem.solve raised exception: {e}") + status = self.problem.status + if 'optimal' in status: + return 0 + if 'infeasible' in status: + raise MIPSolverException(f"cvxpy.Problem.solve: Problem has no feasible solution") + if 'unbounded' in status: + raise MIPSolverException(f"cvxpy.Problem.solve: Problem is unbounded") + raise MIPSolverException(f"cvxpy.Problem.solve reported an unknown problem status: {status}") + + cpdef get_objective_value(self): + """ + Return the value of the objective function. + + .. NOTE:: + + Behavior is undefined unless ``solve`` has been called before. + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver="CVXPY") + sage: p.add_variables(2) + 1 + sage: p.add_linear_constraint([(0,1), (1,2)], None, 3) + sage: p.set_objective([2, 5]) + sage: p.solve() + 0 + sage: p.get_objective_value() + 15/2 + sage: p.get_variable_value(0) + 0 + sage: p.get_variable_value(1) + 3/2 + """ + return self.problem.value + + cpdef get_variable_value(self, int variable): + """ + Return the value of a variable given by the solver. + + .. NOTE:: + + Behavior is undefined unless ``solve`` has been called before. + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver="CVXPY") + sage: p.add_variables(2) + 1 + sage: p.add_linear_constraint([(0,1), (1, 2)], None, 3) + sage: p.set_objective([2, 5]) + sage: p.solve() + 0 + sage: p.get_objective_value() + 15/2 + sage: p.get_variable_value(0) + 0 + sage: p.get_variable_value(1) + 3/2 + """ + return self.variables[variable].value + + cpdef int ncols(self): + """ + Return the number of columns/variables. + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver="CVXPY") + sage: p.ncols() + 0 + sage: p.add_variables(2) + 1 + sage: p.ncols() + 2 + """ + return len(self.variables) + + cpdef int nrows(self): + """ + Return the number of rows/constraints. + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver="CVXPY") + sage: p.nrows() + 0 + sage: p.add_linear_constraints(2, 0, None) + sage: p.nrows() + 2 + """ + return len(self.problem.constraints) + + cpdef bint is_maximization(self): + """ + Test whether the problem is a maximization + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver="CVXPY") + sage: p.is_maximization() + True + sage: p.set_sense(-1) + sage: p.is_maximization() + False + """ + return isinstance(self.problem.objective, cvxpy.Maximize) + + cpdef problem_name(self, name=None): + """ + Return or define the problem's name + + INPUT: + + - ``name`` (``str``) -- the problem's name. When set to + ``None`` (default), the method returns the problem's name. + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver="CVXPY") + sage: p.problem_name("There_once_was_a_french_fry") + sage: print(p.problem_name()) + There_once_was_a_french_fry + """ + if name is None: + if self.prob_name is not None: + return self.prob_name + else: + return "" + else: + self.prob_name = str(name) + + cpdef bint is_variable_binary(self, int index): + """ + Test whether the given variable is of binary type. + + INPUT: + + - ``index`` (integer) -- the variable's id + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver="CVXPY") + sage: p.ncols() + 0 + sage: p.add_variable() + 0 + sage: p.is_variable_binary(0) + False + """ + return False + + cpdef bint is_variable_integer(self, int index): + """ + Test whether the given variable is of integer type. + + INPUT: + + - ``index`` (integer) -- the variable's id + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver="CVXPY") + sage: p.ncols() + 0 + sage: p.add_variable() + 0 + sage: p.is_variable_integer(0) + False + """ + return False + + cpdef bint is_variable_continuous(self, int index): + """ + Test whether the given variable is of continuous/real type. + + INPUT: + + - ``index`` (integer) -- the variable's id + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver="CVXPY") + sage: p.ncols() + 0 + sage: p.add_variable() + 0 + sage: p.is_variable_continuous(0) + True + """ + return True diff --git a/src/sage/numerical/backends/generic_backend.pyx b/src/sage/numerical/backends/generic_backend.pyx index ac167aefa8d..8b02bc51cc5 100644 --- a/src/sage/numerical/backends/generic_backend.pyx +++ b/src/sage/numerical/backends/generic_backend.pyx @@ -1645,8 +1645,11 @@ def default_mip_solver(solver=None): elif solver == "Interactivelp": default_solver = solver + elif solver.startswith("Cvxpy"): + default_solver = solver + else: - raise ValueError("'solver' should be set to 'GLPK', 'Coin', 'CPLEX', 'CVXOPT', 'Gurobi', 'PPL', 'InteractiveLP', a callable, or None.") + raise ValueError("'solver' should be set to 'GLPK', 'Coin', 'CPLEX', 'CVXOPT', 'Gurobi', 'PPL', 'InteractiveLP', 'CVXPY', a callable, or None.") cpdef GenericBackend get_solver(constraint_generation = False, solver = None, base_ring = None): """ @@ -1802,5 +1805,13 @@ cpdef GenericBackend get_solver(constraint_generation = False, solver = None, ba from sage.numerical.backends.interactivelp_backend import InteractiveLPBackend return InteractiveLPBackend(base_ring=base_ring) + elif solver.startswith("Cvxpy"): + from sage.numerical.backends.cvxpy_backend import CVXPYBackend + from functools import partial + if solver == "Cvxpy": + return CVXPYBackend() + if solver.startswith("Cvxpy/"): + return CVXPYBackend(cvxpy_solver=solver[len("Cvxpy/")]) + else: - raise ValueError("'solver' should be set to 'GLPK', 'GLPK/exact', 'Coin', 'CPLEX', 'CVXOPT', 'Gurobi', 'PPL', 'InteractiveLP', None (in which case the default one is used), or a callable.") + raise ValueError("'solver' should be set to 'GLPK', 'GLPK/exact', 'Coin', 'CPLEX', 'CVXOPT', 'Gurobi', 'PPL', 'InteractiveLP', 'Cvxpy', None (in which case the default one is used), or a callable.") From 1999add889ae360f23dc208a4644d09f10905c59 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 12 Mar 2022 09:42:51 -0800 Subject: [PATCH 006/249] src/sage/numerical/backends/cvxpy_backend.pyx: Implement MixedIntegerLinearProgram(solver="CVXPY/SciPy/HiGHS") etc. --- src/sage/numerical/backends/cvxpy_backend.pyx | 66 +++++++++++++++++-- .../numerical/backends/generic_backend.pyx | 2 +- 2 files changed, 63 insertions(+), 5 deletions(-) diff --git a/src/sage/numerical/backends/cvxpy_backend.pyx b/src/sage/numerical/backends/cvxpy_backend.pyx index d6390a5a89b..de131361540 100644 --- a/src/sage/numerical/backends/cvxpy_backend.pyx +++ b/src/sage/numerical/backends/cvxpy_backend.pyx @@ -1,3 +1,4 @@ +# sage.doctest: optional - cvxpy r""" CVXPY Backend @@ -31,10 +32,60 @@ cdef class CVXPYBackend: """ MIP Backend that delegates to CVXPY. + CVXPY interfaces to various solvers, see + https://www.cvxpy.org/install/index.html#install and + https://www.cvxpy.org/tutorial/advanced/index.html#choosing-a-solver + EXAMPLES:: - sage: from sage.numerical.backends.generic_backend import get_solver - sage: p = get_solver(solver="CVXPY") + sage: import cvxpy + sage: cvxpy.installed_solvers() # random + + Using the default solver determined by CVXPY:: + + sage: p = MixedIntegerLinearProgram(solver="CVXPY"); p.solve() + 0.0 + + Using a specific solver:: + + sage: p = MixedIntegerLinearProgram(solver="CVXPY/OSQP"); p.solve() + 0.0 + sage: p = MixedIntegerLinearProgram(solver="CVXPY/ECOS"); p.solve() + 0.0 + sage: p = MixedIntegerLinearProgram(solver="CVXPY/SCS"); p.solve() + 0.0 + sage: p = MixedIntegerLinearProgram(solver="CVXPY/SciPy/HiGHS"); p.solve() + 0.0 + + Open-source solvers provided by optional packages:: + + sage: p = MixedIntegerLinearProgram(solver="CVXPY/GLPK"); p.solve() # optional - cvxopt + 0.0 + sage: p = MixedIntegerLinearProgram(solver="CVXPY/GLPK_MI"); p.solve() # optional - cvxopt + 0.0 + sage: p = MixedIntegerLinearProgram(solver="CVXPY/CVXOPT"); p.solve() # optional - cvxopt + 0.0 + sage: p = MixedIntegerLinearProgram(solver="CVXPY/GLOP"); p.solve() # optional - ortools + 0.0 + sage: p = MixedIntegerLinearProgram(solver="CVXPY/PDLP"); p.solve() # optional - ortools + 0.0 + sage: p = MixedIntegerLinearProgram(solver="CVXPY/CBC"); p.solve() # optional - cylp + 0.0 + + Non-free solvers:: + + sage: p = MixedIntegerLinearProgram(solver="CVXPY/Gurobi"); p.solve() # optional - gurobi + 0.0 + sage: p = MixedIntegerLinearProgram(solver="CVXPY/CPLEX"); p.solve() # optional - cplex + 0.0 + sage: p = MixedIntegerLinearProgram(solver="CVXPY/MOSEK"); p.solve() # optional - mosek + 0.0 + sage: p = MixedIntegerLinearProgram(solver="CVXPY/SCIP"); p.solve() # optional - pyscipopt + 0.0 + sage: p = MixedIntegerLinearProgram(solver="CVXPY/XPRESS"); p.solve() # optional - xpress + 0.0 + sage: p = MixedIntegerLinearProgram(solver="CVXPY/NAG"); p.solve() # optional - naginterfaces + 0.0 """ def __cinit__(self, maximization=True, base_ring=None, cvxpy_solver=None, cvxpy_solver_args=None): @@ -51,9 +102,16 @@ cdef class CVXPYBackend: elif base_ring != RDF: raise ValueError('base_ring must be RDF') + if cvxpy_solver_args is None: + cvxpy_solver_args = {} + if isinstance(cvxpy_solver, str): + cvxpy_solver = cvxpy_solver.upper() + if cvxpy_solver.startswith("SCIPY/"): + cvxpy_solver_args['scipy_options'] = {"method": cvxpy_solver[len("SCIPY/"):]} + cvxpy_solver = "SCIPY" import cvxpy as cp - cvxpy_solver = getattr(cp, cvxpy_solver.upper()) + cvxpy_solver = getattr(cp, cvxpy_solver) self._cvxpy_solver = cvxpy_solver self._cvxpy_solver_args = cvxpy_solver_args @@ -349,7 +407,7 @@ cdef class CVXPYBackend: MIPSolverException: ... """ try: - self.problem.solve() + self.problem.solve(solver=self._cvxpy_solver, **self._cvxpy_solver_args) except Exception as e: raise MIPSolverException(f"cvxpy.Problem.solve raised exception: {e}") status = self.problem.status diff --git a/src/sage/numerical/backends/generic_backend.pyx b/src/sage/numerical/backends/generic_backend.pyx index 8b02bc51cc5..c12e1923495 100644 --- a/src/sage/numerical/backends/generic_backend.pyx +++ b/src/sage/numerical/backends/generic_backend.pyx @@ -1811,7 +1811,7 @@ cpdef GenericBackend get_solver(constraint_generation = False, solver = None, ba if solver == "Cvxpy": return CVXPYBackend() if solver.startswith("Cvxpy/"): - return CVXPYBackend(cvxpy_solver=solver[len("Cvxpy/")]) + return CVXPYBackend(cvxpy_solver=solver[len("Cvxpy/"):]) else: raise ValueError("'solver' should be set to 'GLPK', 'GLPK/exact', 'Coin', 'CPLEX', 'CVXOPT', 'Gurobi', 'PPL', 'InteractiveLP', 'Cvxpy', None (in which case the default one is used), or a callable.") From cf742f75ff008cf48fba610cea4b8e5d8583848e Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 12 Mar 2022 10:52:35 -0800 Subject: [PATCH 007/249] CVXPYBackend.set_objective: Fix up --- src/sage/numerical/backends/cvxpy_backend.pyx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/sage/numerical/backends/cvxpy_backend.pyx b/src/sage/numerical/backends/cvxpy_backend.pyx index de131361540..324725b2ee7 100644 --- a/src/sage/numerical/backends/cvxpy_backend.pyx +++ b/src/sage/numerical/backends/cvxpy_backend.pyx @@ -353,6 +353,7 @@ cdef class CVXPYBackend: else: expr = Constant(0) objective = type(self.problem.objective)(expr) + self.problem = cvxpy.Problem(objective, self.problem.constraints) cpdef set_sense(self, int sense): """ From 460ab6917832068409c6a6ca8bcbec85e7400b08 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 12 Mar 2022 10:53:18 -0800 Subject: [PATCH 008/249] CVXPYBackend.get_variable_value: Convert array to float, fix doctests --- src/sage/numerical/backends/cvxpy_backend.pyx | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/sage/numerical/backends/cvxpy_backend.pyx b/src/sage/numerical/backends/cvxpy_backend.pyx index 324725b2ee7..de85c126656 100644 --- a/src/sage/numerical/backends/cvxpy_backend.pyx +++ b/src/sage/numerical/backends/cvxpy_backend.pyx @@ -438,12 +438,12 @@ cdef class CVXPYBackend: sage: p.set_objective([2, 5]) sage: p.solve() 0 - sage: p.get_objective_value() - 15/2 - sage: p.get_variable_value(0) - 0 - sage: p.get_variable_value(1) - 3/2 + sage: p.get_objective_value() # abs tol 1e-8 + 7.5 + sage: p.get_variable_value(0) # abs tol 1e-8 + 0.0 + sage: p.get_variable_value(1) # abs tol 1e-8 + 1.5 """ return self.problem.value @@ -465,14 +465,14 @@ cdef class CVXPYBackend: sage: p.set_objective([2, 5]) sage: p.solve() 0 - sage: p.get_objective_value() - 15/2 - sage: p.get_variable_value(0) - 0 - sage: p.get_variable_value(1) - 3/2 - """ - return self.variables[variable].value + sage: p.get_objective_value() # abs tol 1e-8 + 7.5 + sage: p.get_variable_value(0) # abs tol 1e-8 + 0.0 + sage: p.get_variable_value(1) # abs tol 1e-8 + 1.5 + """ + return float(self.variables[variable].value) cpdef int ncols(self): """ From 16885574530cf8fe51ce5a0bf2e804c23e9e4ac2 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 12 Mar 2022 11:10:11 -0800 Subject: [PATCH 009/249] src/sage/numerical/backends/generic_backend.pyx: Make Cvxpy/cbc the default solver if available --- src/sage/numerical/backends/cvxpy_backend.pyx | 4 ++-- .../numerical/backends/generic_backend.pyx | 18 ++++++++++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/sage/numerical/backends/cvxpy_backend.pyx b/src/sage/numerical/backends/cvxpy_backend.pyx index de85c126656..6207adda02a 100644 --- a/src/sage/numerical/backends/cvxpy_backend.pyx +++ b/src/sage/numerical/backends/cvxpy_backend.pyx @@ -137,8 +137,8 @@ cdef class CVXPYBackend: sage: cp = copy(p.get_backend()) sage: cp.solve() 0 - sage: cp.get_objective_value() - 6 + sage: cp.get_objective_value() # abs tol 1e-8 + 6.0 """ cdef CVXPYBackend cp = type(self)(base_ring=self.base_ring()) cp.problem = self.problem # it's considered immutable; so no need to copy. diff --git a/src/sage/numerical/backends/generic_backend.pyx b/src/sage/numerical/backends/generic_backend.pyx index c12e1923495..d709402b150 100644 --- a/src/sage/numerical/backends/generic_backend.pyx +++ b/src/sage/numerical/backends/generic_backend.pyx @@ -1591,7 +1591,7 @@ def default_mip_solver(solver=None): return default_solver else: - for s in ["Cplex", "Gurobi", "Coin", "Glpk"]: + for s in ["Cplex", "Gurobi", "Cvxpy/cbc", "Coin", "Glpk"]: try: default_mip_solver(s) return s @@ -1645,8 +1645,22 @@ def default_mip_solver(solver=None): elif solver == "Interactivelp": default_solver = solver + elif solver == "Cvxpy": + try: + from sage.numerical.backends.cvxpy_backend import CVXPYBackend + except ImportError: + raise ValueError("CVXPY is not available. Please refer to the documentation to install it.") + else: + default_solver = solver + elif solver.startswith("Cvxpy"): - default_solver = solver + try: + s = get_solver(solver=solver) + s.solve() + except Exception as e: + raise ValueError(f"{solver} is not available: {e}. Please refer to the documentation to install it.") + else: + default_solver = solver else: raise ValueError("'solver' should be set to 'GLPK', 'Coin', 'CPLEX', 'CVXOPT', 'Gurobi', 'PPL', 'InteractiveLP', 'CVXPY', a callable, or None.") From a9d28519e1a85c64415021a7d276e435d5461f17 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 12 Mar 2022 12:24:01 -0800 Subject: [PATCH 010/249] CVXPYBackend.add_variable: Handle coefficients --- src/sage/numerical/backends/cvxpy_backend.pyx | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/sage/numerical/backends/cvxpy_backend.pyx b/src/sage/numerical/backends/cvxpy_backend.pyx index 6207adda02a..5aa8b5b1eca 100644 --- a/src/sage/numerical/backends/cvxpy_backend.pyx +++ b/src/sage/numerical/backends/cvxpy_backend.pyx @@ -27,6 +27,7 @@ from copy import copy import cvxpy from cvxpy.atoms.affine.add_expr import AddExpression from cvxpy.expressions.constants import Constant +from cvxpy.constraints.zero import Equality cdef class CVXPYBackend: """ @@ -217,6 +218,17 @@ cdef class CVXPYBackend: self.variables.append(variable) index = self.ncols() - 1 + + if coefficients is not None: + constraints = list(self.problem.constraints) + for i, v in coefficients: + if not isinstance(constraints[i], Equality): + raise NotImplementedError('adding coefficients to inequalities is ambiguous ' + 'because cvxpy rewrites all inequalities as <=') + constraints[i] = type(constraints[i])(constraints[i].args[0] + v * variable, + constraints[i].args[1]) + self.problem = cvxpy.Problem(self.problem.objective, constraints) + self.add_linear_constraint([(index, 1)], lower_bound, upper_bound) if obj: @@ -224,9 +236,6 @@ cdef class CVXPYBackend: + obj * variable) self.problem = cvxpy.Problem(objective, self.problem.constraints) - if coefficients is not None: - raise NotImplementedError - return index cpdef set_verbosity(self, int level): From 6e0425239bab2f6d5b5401ca4980279ca15c9d0d Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 12 Mar 2022 12:24:27 -0800 Subject: [PATCH 011/249] src/sage/numerical/backends/cvxpy_backend.pyx: Increase abs tol in doctests --- src/sage/numerical/backends/cvxpy_backend.pyx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/sage/numerical/backends/cvxpy_backend.pyx b/src/sage/numerical/backends/cvxpy_backend.pyx index 5aa8b5b1eca..273a671f1fd 100644 --- a/src/sage/numerical/backends/cvxpy_backend.pyx +++ b/src/sage/numerical/backends/cvxpy_backend.pyx @@ -138,7 +138,7 @@ cdef class CVXPYBackend: sage: cp = copy(p.get_backend()) sage: cp.solve() 0 - sage: cp.get_objective_value() # abs tol 1e-8 + sage: cp.get_objective_value() # abs tol 1e-7 6.0 """ cdef CVXPYBackend cp = type(self)(base_ring=self.base_ring()) @@ -447,11 +447,11 @@ cdef class CVXPYBackend: sage: p.set_objective([2, 5]) sage: p.solve() 0 - sage: p.get_objective_value() # abs tol 1e-8 + sage: p.get_objective_value() # abs tol 1e-7 7.5 - sage: p.get_variable_value(0) # abs tol 1e-8 + sage: p.get_variable_value(0) # abs tol 1e-7 0.0 - sage: p.get_variable_value(1) # abs tol 1e-8 + sage: p.get_variable_value(1) # abs tol 1e-7 1.5 """ return self.problem.value @@ -474,11 +474,11 @@ cdef class CVXPYBackend: sage: p.set_objective([2, 5]) sage: p.solve() 0 - sage: p.get_objective_value() # abs tol 1e-8 + sage: p.get_objective_value() # abs tol 1e-7 7.5 - sage: p.get_variable_value(0) # abs tol 1e-8 + sage: p.get_variable_value(0) # abs tol 1e-7 0.0 - sage: p.get_variable_value(1) # abs tol 1e-8 + sage: p.get_variable_value(1) # abs tol 1e-7 1.5 """ return float(self.variables[variable].value) From 08d7a7dc3dd7f6faf02e10d7bf975aa94f4cc042 Mon Sep 17 00:00:00 2001 From: sheerluck Date: Sat, 12 Mar 2022 13:51:11 -0800 Subject: [PATCH 012/249] adding some code from ppl_backend.pyx to cvxpy_backend.{pyx,pxd} --- src/sage/numerical/backends/cvxpy_backend.pxd | 8 + src/sage/numerical/backends/cvxpy_backend.pyx | 286 +++++++++++++++++- 2 files changed, 290 insertions(+), 4 deletions(-) diff --git a/src/sage/numerical/backends/cvxpy_backend.pxd b/src/sage/numerical/backends/cvxpy_backend.pxd index 3d077c3ed07..c311f51b885 100644 --- a/src/sage/numerical/backends/cvxpy_backend.pxd +++ b/src/sage/numerical/backends/cvxpy_backend.pxd @@ -17,6 +17,14 @@ cdef class CVXPYBackend(GenericBackend): cdef object _cvxpy_solver cdef object _cvxpy_solver_args + cdef list objective_coefficients + cdef list Matrix + + cdef list row_lower_bound + cdef list row_upper_bound + cdef list col_lower_bound + cdef list col_upper_bound + cpdef int add_variable(self, lower_bound=*, upper_bound=*, diff --git a/src/sage/numerical/backends/cvxpy_backend.pyx b/src/sage/numerical/backends/cvxpy_backend.pyx index 273a671f1fd..3fb0f8e99eb 100644 --- a/src/sage/numerical/backends/cvxpy_backend.pyx +++ b/src/sage/numerical/backends/cvxpy_backend.pyx @@ -118,6 +118,13 @@ cdef class CVXPYBackend: self.set_verbosity(0) self.variables = [] + self.Matrix = [] + self.row_lower_bound = [] + self.row_upper_bound = [] + self.col_lower_bound = [] + self.col_upper_bound = [] + self.objective_coefficients = [] + self.obj_constant_term = 0.0 if maximization: objective = cvxpy.Maximize(0) else: @@ -144,6 +151,13 @@ cdef class CVXPYBackend: cdef CVXPYBackend cp = type(self)(base_ring=self.base_ring()) cp.problem = self.problem # it's considered immutable; so no need to copy. cp.variables = copy(self.variables) + cp.Matrix = [row[:] for row in self.Matrix] + cp.row_lower_bound = self.row_lower_bound[:] + cp.row_upper_bound = self.row_upper_bound[:] + cp.col_lower_bound = self.col_lower_bound[:] + cp.col_upper_bound = self.col_upper_bound[:] + cp.objective_coefficients = self.objective_coefficients[:] + cp.obj_constant_term = self.obj_constant_term return cp cpdef cvxpy_problem(self): @@ -209,6 +223,12 @@ cdef class CVXPYBackend: elif vtype != 1: raise ValueError("Exactly one parameter of 'binary', 'integer' and 'continuous' must be 'True'.") + for i in range(len(self.Matrix)): + self.Matrix[i].append(0) + self.col_lower_bound.append(lower_bound) + self.col_upper_bound.append(upper_bound) + self.objective_coefficients.append(obj) + if binary: variable = cvxpy.Variable(name=name, boolean=True) elif integer: @@ -287,6 +307,16 @@ cdef class CVXPYBackend: sage: p.row_name(1) 'foo' """ + last = len(self.Matrix) + self.Matrix.append([]) + for i in range(len(self.objective_coefficients)): + self.Matrix[last].append(0) + for a in coefficients: + self.Matrix[last][a[0]] = a[1] + + self.row_lower_bound.append(lower_bound) + self.row_upper_bound.append(upper_bound) + if coefficients: expr = AddExpression([v * self.variables[i] for i, v in coefficients]) else: @@ -334,6 +364,14 @@ cdef class CVXPYBackend: sage: p.nrows() 5 """ + for i in range(len(self.Matrix)): + self.Matrix[i].append(0) + for i in range(len(indices)): + self.Matrix[indices[i]][len(self.Matrix[indices[i]]) - 1] = coeffs[i] + + self.col_lower_bound.append(None) + self.col_upper_bound.append(None) + #self.objective_coefficients.append(0) goes to "self.add_variable" self.add_variable(coefficients=zip(indices, coeffs)) cpdef set_objective(self, list coeff, d=0.0): @@ -359,10 +397,14 @@ cdef class CVXPYBackend: """ if self.variables: expr = AddExpression([c * x for c, x in zip(coeff, self.variables)]) + for i in range(len(coeff)): + self.objective_coefficients[i] = coeff[i] else: expr = Constant(0) objective = type(self.problem.objective)(expr) - self.problem = cvxpy.Problem(objective, self.problem.constraints) + constraints = list(self.problem.constraints) + self.problem = cvxpy.Problem(objective, constraints) + self.obj_constant_term = d cpdef set_sense(self, int sense): """ @@ -392,6 +434,42 @@ cdef class CVXPYBackend: objective = cvxpy.Minimize(expr) self.problem = cvxpy.Problem(objective, self.problem.constraints) + cpdef objective_coefficient(self, int variable, coeff=None): + """ + Set or get the coefficient of a variable in the objective function + + INPUT: + + - ``variable`` (integer) -- the variable's id + + - ``coeff`` (double) -- its coefficient or ``None`` for + reading (default: ``None``) + + EXAMPLES:: + + sage: from sage_numerical_backends_coin.coin_backend import CoinBackend + sage: p = CoinBackend() + sage: p.add_variable() + 0 + sage: p.objective_coefficient(0) + 0.0 + sage: p.objective_coefficient(0,2) + sage: p.objective_coefficient(0) + 2.0 + """ + if coeff is not None: + self.objective_coefficients[variable] = coeff + expr = AddExpression([c * x for c, x in zip(coeff, self.variables)]) + objective = type(self.problem.objective)(expr) + constraints = list(self.problem.constraints) + self.problem = cvxpy.Problem(objective, constraints) + else: + if variable < len(self.objective_coefficients): + return self.objective_coefficients[variable] + else: + return 0 + + cpdef int solve(self) except -1: """ Solve the problem. @@ -454,7 +532,7 @@ cdef class CVXPYBackend: sage: p.get_variable_value(1) # abs tol 1e-7 1.5 """ - return self.problem.value + return self.problem.value + self.obj_constant_term cpdef get_variable_value(self, int variable): """ @@ -557,6 +635,98 @@ cdef class CVXPYBackend: else: self.prob_name = str(name) + cpdef row(self, int i): + """ + Return a row + + INPUT: + + - ``index`` (integer) -- the constraint's id. + + OUTPUT: + + A pair ``(indices, coeffs)`` where ``indices`` lists the + entries whose coefficient is nonzero, and to which ``coeffs`` + associates their coefficient on the model of the + ``add_linear_constraint`` method. + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver="CVXPY") + sage: p.add_variables(5) + 4 + sage: p.add_linear_constraint(zip(range(5), range(5)), 2, 2) + sage: p.row(0) + ([1, 2, 3, 4], [1, 2, 3, 4]) + sage: p.row_bounds(0) + (2, 2) + """ + idx = [] + coef = [] + for j in range(len(self.Matrix[i])): + if self.Matrix[i][j] != 0: + idx.append(j) + coef.append(self.Matrix[i][j]) + return (idx, coef) + + cpdef row_bounds(self, int index): + """ + Return the bounds of a specific constraint. + + INPUT: + + - ``index`` (integer) -- the constraint's id. + + OUTPUT: + + A pair ``(lower_bound, upper_bound)``. Each of them can be set + to ``None`` if the constraint is not bounded in the + corresponding direction, and is a real value otherwise. + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver="CVXPY") + sage: p.add_variables(5) + 4 + sage: p.add_linear_constraint(zip(range(5), range(5)), 2, 2) + sage: p.row(0) + ([1, 2, 3, 4], [1, 2, 3, 4]) + sage: p.row_bounds(0) + (2, 2) + """ + return (self.row_lower_bound[index], self.row_upper_bound[index]) + + cpdef col_bounds(self, int index): + """ + Return the bounds of a specific variable. + + INPUT: + + - ``index`` (integer) -- the variable's id. + + OUTPUT: + + A pair ``(lower_bound, upper_bound)``. Each of them can be set + to ``None`` if the variable is not bounded in the + corresponding direction, and is a real value otherwise. + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver = "CVXPY") + sage: p.add_variable() + 0 + sage: p.col_bounds(0) + (0, None) + sage: p.variable_upper_bound(0, 5) + sage: p.col_bounds(0) + (0, 5) + """ + return (self.col_lower_bound[index], self.col_upper_bound[index]) + + cpdef bint is_variable_binary(self, int index): """ Test whether the given variable is of binary type. @@ -576,7 +746,7 @@ cdef class CVXPYBackend: sage: p.is_variable_binary(0) False """ - return False + return True cpdef bint is_variable_integer(self, int index): """ @@ -618,4 +788,112 @@ cdef class CVXPYBackend: sage: p.is_variable_continuous(0) True """ - return True + return False + + cpdef row_name(self, int index): + """ + Return the ``index`` th row name + + INPUT: + + - ``index`` (integer) -- the row's id + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver="CVXPY") + sage: p.row_name(0) + 'Empty constraint 1' + """ + #if self.row_name_var[index] is not None: + # return self.row_name_var[index] + return "constraint_" + repr(index) + + cpdef col_name(self, int index): + """ + Return the ``index`` th col name + + INPUT: + + - ``index`` (integer) -- the col's id + + - ``name`` (``char *``) -- its name. When set to ``NULL`` + (default), the method returns the current name. + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver="CVXPY") + sage: p.add_variable() + 0 + sage: p.col_name(0) + 'I am a variable' + """ + #if self.col_name_var[index] is not None: + # return self.col_name_var[index] + return "x_" + repr(index) + + cpdef variable_upper_bound(self, int index, value = False): + """ + Return or define the upper bound on a variable + + INPUT: + + - ``index`` (integer) -- the variable's id + + - ``value`` -- real value, or ``None`` to mean that the + variable has not upper bound. When set to ``None`` + (default), the method returns the current value. + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver = "CVXPY") + sage: p.add_variable() + 0 + sage: p.col_bounds(0) + (0, None) + sage: p.variable_upper_bound(0, 5) + sage: p.col_bounds(0) + (0, 5) + sage: p.variable_upper_bound(0, None) + sage: p.col_bounds(0) + (0, None) + """ + if value is not False: + self.col_upper_bound[index] = value + else: + return self.col_upper_bound[index] + + cpdef variable_lower_bound(self, int index, value = False): + """ + Return or define the lower bound on a variable + + INPUT: + + - ``index`` (integer) -- the variable's id + + - ``value`` -- real value, or ``None`` to mean that the + variable has not lower bound. When set to ``None`` + (default), the method returns the current value. + + EXAMPLES:: + + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver = "CVXPY") + sage: p.add_variable() + 0 + sage: p.col_bounds(0) + (0, None) + sage: p.variable_lower_bound(0, 5) + sage: p.col_bounds(0) + (5, None) + sage: p.variable_lower_bound(0, None) + sage: p.col_bounds(0) + (None, None) + """ + if value is not False: + self.col_lower_bound[index] = value + else: + return self.col_lower_bound[index] + From e00601fc8f0c527342a205d0d58ef4b4fb7f7e78 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 12 Mar 2022 16:08:36 -0800 Subject: [PATCH 013/249] CVXPYBackend.is_variable_{boolean,integer,continuous}: Implement --- src/sage/numerical/backends/cvxpy_backend.pyx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/sage/numerical/backends/cvxpy_backend.pyx b/src/sage/numerical/backends/cvxpy_backend.pyx index 3fb0f8e99eb..e04155033bd 100644 --- a/src/sage/numerical/backends/cvxpy_backend.pyx +++ b/src/sage/numerical/backends/cvxpy_backend.pyx @@ -746,7 +746,7 @@ cdef class CVXPYBackend: sage: p.is_variable_binary(0) False """ - return True + return bool(self.variables[index].boolean_idx) cpdef bint is_variable_integer(self, int index): """ @@ -767,7 +767,7 @@ cdef class CVXPYBackend: sage: p.is_variable_integer(0) False """ - return False + return bool(self.variables[index].integer_idx) cpdef bint is_variable_continuous(self, int index): """ @@ -788,7 +788,7 @@ cdef class CVXPYBackend: sage: p.is_variable_continuous(0) True """ - return False + return not self.is_variable_binary(index) and not self.is_variable_integer(index) cpdef row_name(self, int index): """ From 555ea6b28b65668358ee15e27bae80fda6c5ca2b Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 12 Mar 2022 16:11:09 -0800 Subject: [PATCH 014/249] src/sage/numerical/backends/cvxpy_backend.pyx: Fix up some doctests --- src/sage/numerical/backends/cvxpy_backend.pyx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/sage/numerical/backends/cvxpy_backend.pyx b/src/sage/numerical/backends/cvxpy_backend.pyx index e04155033bd..c42a9a758d1 100644 --- a/src/sage/numerical/backends/cvxpy_backend.pyx +++ b/src/sage/numerical/backends/cvxpy_backend.pyx @@ -420,7 +420,7 @@ cdef class CVXPYBackend: EXAMPLES:: sage: from sage.numerical.backends.generic_backend import get_solver - sage: p = get_solver(solver = "GLPK") + sage: p = get_solver(solver="CVXPY") sage: p.is_maximization() True sage: p.set_sense(-1) @@ -447,8 +447,8 @@ cdef class CVXPYBackend: EXAMPLES:: - sage: from sage_numerical_backends_coin.coin_backend import CoinBackend - sage: p = CoinBackend() + sage: from sage.numerical.backends.generic_backend import get_solver + sage: p = get_solver(solver="CVXPY") sage: p.add_variable() 0 sage: p.objective_coefficient(0) @@ -715,7 +715,7 @@ cdef class CVXPYBackend: EXAMPLES:: sage: from sage.numerical.backends.generic_backend import get_solver - sage: p = get_solver(solver = "CVXPY") + sage: p = get_solver(solver="CVXPY") sage: p.add_variable() 0 sage: p.col_bounds(0) @@ -848,7 +848,7 @@ cdef class CVXPYBackend: EXAMPLES:: sage: from sage.numerical.backends.generic_backend import get_solver - sage: p = get_solver(solver = "CVXPY") + sage: p = get_solver(solver="CVXPY") sage: p.add_variable() 0 sage: p.col_bounds(0) @@ -880,7 +880,7 @@ cdef class CVXPYBackend: EXAMPLES:: sage: from sage.numerical.backends.generic_backend import get_solver - sage: p = get_solver(solver = "CVXPY") + sage: p = get_solver(solver="CVXPY") sage: p.add_variable() 0 sage: p.col_bounds(0) From cded2773465691ac66c3524b5a81b98d34c20ba5 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 12 Mar 2022 16:18:40 -0800 Subject: [PATCH 015/249] CVXPYBackend.objective_coefficient: Fix up --- src/sage/numerical/backends/cvxpy_backend.pyx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sage/numerical/backends/cvxpy_backend.pyx b/src/sage/numerical/backends/cvxpy_backend.pyx index c42a9a758d1..d7651bd568b 100644 --- a/src/sage/numerical/backends/cvxpy_backend.pyx +++ b/src/sage/numerical/backends/cvxpy_backend.pyx @@ -317,8 +317,9 @@ cdef class CVXPYBackend: self.row_lower_bound.append(lower_bound) self.row_upper_bound.append(upper_bound) - if coefficients: - expr = AddExpression([v * self.variables[i] for i, v in coefficients]) + terms = [v * self.variables[i] for i, v in coefficients] + if terms: + expr = AddExpression(terms) else: expr = Constant(0) constraints = list(self.problem.constraints) @@ -459,7 +460,7 @@ cdef class CVXPYBackend: """ if coeff is not None: self.objective_coefficients[variable] = coeff - expr = AddExpression([c * x for c, x in zip(coeff, self.variables)]) + expr = self.problem.objective.args[0] + coeff * self.variables[variable] objective = type(self.problem.objective)(expr) constraints = list(self.problem.constraints) self.problem = cvxpy.Problem(objective, constraints) @@ -469,7 +470,6 @@ cdef class CVXPYBackend: else: return 0 - cpdef int solve(self) except -1: """ Solve the problem. From c9611aac2529a91bbf05e74bfe9cea50664b3831 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 14 Mar 2022 14:46:29 -0700 Subject: [PATCH 016/249] build/pkgs/cylp: Add patch from https://github.com/coin-or/CyLP/pull/150 --- build/pkgs/cylp/package-version.txt | 2 +- ...4b94e279e96842da0d38ae657f06f1e9415.patch} | 0 ...21ac6bcc290fd60b83bf48741030d9d0abe7.patch | 2888 +++++++++++++++++ 3 files changed, 2889 insertions(+), 1 deletion(-) rename build/pkgs/cylp/patches/{e619c4b94e279e96842da0d38ae657f06f1e9415.patch => 00-e619c4b94e279e96842da0d38ae657f06f1e9415.patch} (100%) create mode 100644 build/pkgs/cylp/patches/01-7c5b21ac6bcc290fd60b83bf48741030d9d0abe7.patch diff --git a/build/pkgs/cylp/package-version.txt b/build/pkgs/cylp/package-version.txt index ad7e0bcae92..a242ad0cff8 100644 --- a/build/pkgs/cylp/package-version.txt +++ b/build/pkgs/cylp/package-version.txt @@ -1 +1 @@ -0.91.4 +0.91.4.p1 diff --git a/build/pkgs/cylp/patches/e619c4b94e279e96842da0d38ae657f06f1e9415.patch b/build/pkgs/cylp/patches/00-e619c4b94e279e96842da0d38ae657f06f1e9415.patch similarity index 100% rename from build/pkgs/cylp/patches/e619c4b94e279e96842da0d38ae657f06f1e9415.patch rename to build/pkgs/cylp/patches/00-e619c4b94e279e96842da0d38ae657f06f1e9415.patch diff --git a/build/pkgs/cylp/patches/01-7c5b21ac6bcc290fd60b83bf48741030d9d0abe7.patch b/build/pkgs/cylp/patches/01-7c5b21ac6bcc290fd60b83bf48741030d9d0abe7.patch new file mode 100644 index 00000000000..036d73f7973 --- /dev/null +++ b/build/pkgs/cylp/patches/01-7c5b21ac6bcc290fd60b83bf48741030d9d0abe7.patch @@ -0,0 +1,2888 @@ +From 7c5b21ac6bcc290fd60b83bf48741030d9d0abe7 Mon Sep 17 00:00:00 2001 +From: Ted Ralphs +Date: Mon, 14 Mar 2022 16:19:51 -0400 +Subject: [PATCH] Adding function to detect whether problem is infeasible or an + optimal solution is found + +--- + cylp/cy/CyCbcModel.cpp | 866 +++++++++++++++++++++++++---------------- + cylp/cy/CyCbcModel.pxd | 2 + + cylp/cy/CyCbcModel.pyx | 13 +- + 3 files changed, 536 insertions(+), 345 deletions(-) + +diff --git a/cylp/cy/CyCbcModel.cpp b/cylp/cy/CyCbcModel.cpp +index c62fd3b..8192e18 100644 +--- a/cylp/cy/CyCbcModel.cpp ++++ b/cylp/cy/CyCbcModel.cpp +@@ -1,4 +1,4 @@ +-/* Generated by Cython 0.29.25 */ ++/* Generated by Cython 0.29.28 */ + + #ifndef PY_SSIZE_T_CLEAN + #define PY_SSIZE_T_CLEAN +@@ -9,8 +9,8 @@ + #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_25" +-#define CYTHON_HEX_VERSION 0x001D19F0 ++#define CYTHON_ABI "0_29_28" ++#define CYTHON_HEX_VERSION 0x001D1CF0 + #define CYTHON_FUTURE_DIVISION 0 + #include + #ifndef offsetof +@@ -172,7 +172,10 @@ + #ifndef CYTHON_UNPACK_METHODS + #define CYTHON_UNPACK_METHODS 1 + #endif +- #ifndef CYTHON_FAST_THREAD_STATE ++ #if PY_VERSION_HEX >= 0x030B00A4 ++ #undef CYTHON_FAST_THREAD_STATE ++ #define CYTHON_FAST_THREAD_STATE 0 ++ #elif !defined(CYTHON_FAST_THREAD_STATE) + #define CYTHON_FAST_THREAD_STATE 1 + #endif + #ifndef CYTHON_FAST_PYCALL +@@ -187,7 +190,10 @@ + #ifndef CYTHON_USE_DICT_VERSIONS + #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) + #endif +- #ifndef CYTHON_USE_EXC_INFO_STACK ++ #if PY_VERSION_HEX >= 0x030B00A4 ++ #undef CYTHON_USE_EXC_INFO_STACK ++ #define CYTHON_USE_EXC_INFO_STACK 0 ++ #elif !defined(CYTHON_USE_EXC_INFO_STACK) + #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) + #endif + #endif +@@ -994,7 +1000,7 @@ static const char *__pyx_f[] = { + "cylp/cy/CyCutGeneratorPythonBase.pxd", + }; + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":690 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":690 + * # in Cython to enable them only on the right systems. + * + * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<< +@@ -1003,7 +1009,7 @@ static const char *__pyx_f[] = { + */ + typedef npy_int8 __pyx_t_5numpy_int8_t; + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":691 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":691 + * + * ctypedef npy_int8 int8_t + * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< +@@ -1012,7 +1018,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; + */ + typedef npy_int16 __pyx_t_5numpy_int16_t; + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":692 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":692 + * ctypedef npy_int8 int8_t + * ctypedef npy_int16 int16_t + * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<< +@@ -1021,7 +1027,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; + */ + typedef npy_int32 __pyx_t_5numpy_int32_t; + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":693 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":693 + * ctypedef npy_int16 int16_t + * ctypedef npy_int32 int32_t + * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<< +@@ -1030,7 +1036,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; + */ + typedef npy_int64 __pyx_t_5numpy_int64_t; + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":697 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":697 + * #ctypedef npy_int128 int128_t + * + * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< +@@ -1039,7 +1045,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; + */ + typedef npy_uint8 __pyx_t_5numpy_uint8_t; + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":698 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":698 + * + * ctypedef npy_uint8 uint8_t + * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< +@@ -1048,7 +1054,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; + */ + typedef npy_uint16 __pyx_t_5numpy_uint16_t; + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":699 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":699 + * ctypedef npy_uint8 uint8_t + * ctypedef npy_uint16 uint16_t + * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<< +@@ -1057,7 +1063,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; + */ + typedef npy_uint32 __pyx_t_5numpy_uint32_t; + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":700 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":700 + * ctypedef npy_uint16 uint16_t + * ctypedef npy_uint32 uint32_t + * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<< +@@ -1066,7 +1072,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; + */ + typedef npy_uint64 __pyx_t_5numpy_uint64_t; + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":704 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":704 + * #ctypedef npy_uint128 uint128_t + * + * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< +@@ -1075,7 +1081,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; + */ + typedef npy_float32 __pyx_t_5numpy_float32_t; + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":705 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":705 + * + * ctypedef npy_float32 float32_t + * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< +@@ -1084,7 +1090,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; + */ + typedef npy_float64 __pyx_t_5numpy_float64_t; + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":714 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/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 # <<<<<<<<<<<<<< +@@ -1093,7 +1099,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; + */ + typedef npy_long __pyx_t_5numpy_int_t; + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":715 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/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 # <<<<<<<<<<<<<< +@@ -1102,7 +1108,7 @@ typedef npy_long __pyx_t_5numpy_int_t; + */ + typedef npy_longlong __pyx_t_5numpy_long_t; + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":716 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":716 + * ctypedef npy_long int_t + * ctypedef npy_longlong long_t + * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<< +@@ -1111,7 +1117,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; + */ + typedef npy_longlong __pyx_t_5numpy_longlong_t; + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":718 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":718 + * ctypedef npy_longlong longlong_t + * + * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< +@@ -1120,7 +1126,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; + */ + typedef npy_ulong __pyx_t_5numpy_uint_t; + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":719 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":719 + * + * ctypedef npy_ulong uint_t + * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< +@@ -1129,7 +1135,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; + */ + typedef npy_ulonglong __pyx_t_5numpy_ulong_t; + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":720 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":720 + * ctypedef npy_ulong uint_t + * ctypedef npy_ulonglong ulong_t + * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<< +@@ -1138,7 +1144,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; + */ + typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":722 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":722 + * ctypedef npy_ulonglong ulonglong_t + * + * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< +@@ -1147,7 +1153,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; + */ + typedef npy_intp __pyx_t_5numpy_intp_t; + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":723 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":723 + * + * ctypedef npy_intp intp_t + * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< +@@ -1156,7 +1162,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; + */ + typedef npy_uintp __pyx_t_5numpy_uintp_t; + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":725 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":725 + * ctypedef npy_uintp uintp_t + * + * ctypedef npy_double float_t # <<<<<<<<<<<<<< +@@ -1165,7 +1171,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; + */ + typedef npy_double __pyx_t_5numpy_float_t; + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":726 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":726 + * + * ctypedef npy_double float_t + * ctypedef npy_double double_t # <<<<<<<<<<<<<< +@@ -1174,7 +1180,7 @@ typedef npy_double __pyx_t_5numpy_float_t; + */ + typedef npy_double __pyx_t_5numpy_double_t; + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":727 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":727 + * ctypedef npy_double float_t + * ctypedef npy_double double_t + * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<< +@@ -1240,7 +1246,7 @@ struct __pyx_obj_4cylp_2cy_21CyCglCutGeneratorBase_CyCglCutGeneratorBase; + struct __pyx_obj_4cylp_2cy_24CyCutGeneratorPythonBase_CyCutGeneratorPythonBase; + struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel; + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":729 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":729 + * ctypedef npy_longdouble longdouble_t + * + * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< +@@ -1249,7 +1255,7 @@ struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel; + */ + typedef npy_cfloat __pyx_t_5numpy_cfloat_t; + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":730 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":730 + * + * ctypedef npy_cfloat cfloat_t + * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< +@@ -1258,7 +1264,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; + */ + typedef npy_cdouble __pyx_t_5numpy_cdouble_t; + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":731 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":731 + * ctypedef npy_cfloat cfloat_t + * ctypedef npy_cdouble cdouble_t + * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<< +@@ -1267,7 +1273,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; + */ + typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":733 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":733 + * ctypedef npy_clongdouble clongdouble_t + * + * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< +@@ -1291,7 +1297,7 @@ struct __pyx_opt_args_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_readMps { + }; + struct __pyx_opt_args_4cylp_2cy_10CyCbcModel_10CyCbcModel_addCutGenerator; + +-/* "cylp/cy/CyCbcModel.pxd":89 ++/* "cylp/cy/CyCbcModel.pxd":91 + * cdef setCppSelf(self, CppICbcModel* cppmodel) + * cdef setClpModel(self, clpmodel) + * cpdef addCutGenerator(self, CyCglCutGenerator generator, # <<<<<<<<<<<<<< +@@ -1707,7 +1713,7 @@ struct __pyx_obj_4cylp_2cy_24CyCutGeneratorPythonBase_CyCutGeneratorPythonBase { + }; + + +-/* "cylp/cy/CyCbcModel.pxd":82 ++/* "cylp/cy/CyCbcModel.pxd":84 + * CppOsiSolverInterface* solver() + * + * cdef class CyCbcModel: # <<<<<<<<<<<<<< +@@ -2749,9 +2755,13 @@ static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; + static const char __pyx_k_stopped_on_time[] = "stopped on time"; + static const char __pyx_k_stopped_on_nodes[] = "stopped on nodes"; + static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; ++static const char __pyx_k_relaxation_abondoned[] = "relaxation abondoned"; ++static const char __pyx_k_isRelaxationAbondoned[] = "isRelaxationAbondoned"; + 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_isRelaxationInfeasible[] = "isRelaxationInfeasible"; + static const char __pyx_k_pythonCutGeneratorObject[] = "pythonCutGeneratorObject"; ++static const char __pyx_k_problem_proven_infeasible[] = "problem proven infeasible"; + static const char __pyx_k_cylp_py_modeling_CyLPModel[] = "cylp.py.modeling.CyLPModel"; + static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import"; + static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__"; +@@ -2787,6 +2797,8 @@ static PyObject *__pyx_n_s_import; + static PyObject *__pyx_n_s_indices; + static PyObject *__pyx_n_s_inds; + static PyObject *__pyx_n_s_infeasible; ++static PyObject *__pyx_n_s_isRelaxationAbondoned; ++static PyObject *__pyx_n_s_isRelaxationInfeasible; + static PyObject *__pyx_n_s_itertools; + static PyObject *__pyx_n_s_izip; + static PyObject *__pyx_n_s_keys; +@@ -2799,6 +2811,7 @@ static PyObject *__pyx_n_s_normal; + static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; + static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; + static PyObject *__pyx_n_s_problemStatus; ++static PyObject *__pyx_kp_s_problem_proven_infeasible; + static PyObject *__pyx_n_s_product; + static PyObject *__pyx_n_s_pythonCutGeneratorObject; + static PyObject *__pyx_n_s_pyx_vtable; +@@ -2806,6 +2819,7 @@ static PyObject *__pyx_n_s_range; + static PyObject *__pyx_n_s_reduce; + static PyObject *__pyx_n_s_reduce_cython; + static PyObject *__pyx_n_s_reduce_ex; ++static PyObject *__pyx_kp_s_relaxation_abondoned; + static PyObject *__pyx_kp_s_relaxation_infeasible; + static PyObject *__pyx_kp_s_setNodeCompare_argument_should_b; + static PyObject *__pyx_n_s_setstate; +@@ -4773,7 +4787,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_10solve(struct __p + * property status: + * def __get__(self): # <<<<<<<<<<<<<< + * # secondaryStatus() should be used instead of status() (??) +- * #if self.isRelaxationInfeasible(): ++ * if self.isRelaxationInfeasible(): + */ + + /* Python wrapper */ +@@ -4793,29 +4807,196 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_6status___get__(st + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; +- int __pyx_t_2; ++ PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; ++ int __pyx_t_4; ++ int __pyx_t_5; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":160 +- * # return 'relaxation abondoned' +- * #return problemStatus[self.CppSelf.status()] ++ /* "cylp/cy/CyCbcModel.pyx":155 ++ * def __get__(self): ++ * # secondaryStatus() should be used instead of status() (??) ++ * if self.isRelaxationInfeasible(): # <<<<<<<<<<<<<< ++ * return problemStatus[1] ++ * if self.isRelaxationAbondoned(): ++ */ ++ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_isRelaxationInfeasible); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 155, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __pyx_t_3 = NULL; ++ if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { ++ __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); ++ if (likely(__pyx_t_3)) { ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); ++ __Pyx_INCREF(__pyx_t_3); ++ __Pyx_INCREF(function); ++ __Pyx_DECREF_SET(__pyx_t_2, function); ++ } ++ } ++ __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); ++ __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; ++ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 155, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; ++ __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 155, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; ++ if (__pyx_t_4) { ++ ++ /* "cylp/cy/CyCbcModel.pyx":156 ++ * # secondaryStatus() should be used instead of status() (??) ++ * if self.isRelaxationInfeasible(): ++ * return problemStatus[1] # <<<<<<<<<<<<<< ++ * if self.isRelaxationAbondoned(): ++ * return 'relaxation abondoned' ++ */ ++ __Pyx_XDECREF(__pyx_r); ++ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_problemStatus); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 156, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 156, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; ++ __pyx_r = __pyx_t_2; ++ __pyx_t_2 = 0; ++ goto __pyx_L0; ++ ++ /* "cylp/cy/CyCbcModel.pyx":155 ++ * def __get__(self): ++ * # secondaryStatus() should be used instead of status() (??) ++ * if self.isRelaxationInfeasible(): # <<<<<<<<<<<<<< ++ * return problemStatus[1] ++ * if self.isRelaxationAbondoned(): ++ */ ++ } ++ ++ /* "cylp/cy/CyCbcModel.pyx":157 ++ * if self.isRelaxationInfeasible(): ++ * return problemStatus[1] ++ * if self.isRelaxationAbondoned(): # <<<<<<<<<<<<<< ++ * return 'relaxation abondoned' ++ * if self.CppSelf.isProvenInfeasible(): ++ */ ++ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_isRelaxationAbondoned); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 157, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_1); ++ __pyx_t_3 = NULL; ++ if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { ++ __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); ++ if (likely(__pyx_t_3)) { ++ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); ++ __Pyx_INCREF(__pyx_t_3); ++ __Pyx_INCREF(function); ++ __Pyx_DECREF_SET(__pyx_t_1, function); ++ } ++ } ++ __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_1); ++ __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; ++ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 157, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; ++ __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 157, __pyx_L1_error) ++ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; ++ if (__pyx_t_4) { ++ ++ /* "cylp/cy/CyCbcModel.pyx":158 ++ * return problemStatus[1] ++ * if self.isRelaxationAbondoned(): ++ * return 'relaxation abondoned' # <<<<<<<<<<<<<< ++ * if self.CppSelf.isProvenInfeasible(): ++ * return 'problem proven infeasible' ++ */ ++ __Pyx_XDECREF(__pyx_r); ++ __Pyx_INCREF(__pyx_kp_s_relaxation_abondoned); ++ __pyx_r = __pyx_kp_s_relaxation_abondoned; ++ goto __pyx_L0; ++ ++ /* "cylp/cy/CyCbcModel.pyx":157 ++ * if self.isRelaxationInfeasible(): ++ * return problemStatus[1] ++ * if self.isRelaxationAbondoned(): # <<<<<<<<<<<<<< ++ * return 'relaxation abondoned' ++ * if self.CppSelf.isProvenInfeasible(): ++ */ ++ } ++ ++ /* "cylp/cy/CyCbcModel.pyx":159 ++ * if self.isRelaxationAbondoned(): ++ * return 'relaxation abondoned' ++ * if self.CppSelf.isProvenInfeasible(): # <<<<<<<<<<<<<< ++ * return 'problem proven infeasible' ++ * if self.CppSelf.isProvenOptimal(): ++ */ ++ __pyx_t_4 = (__pyx_v_self->CppSelf->isProvenInfeasible() != 0); ++ if (__pyx_t_4) { ++ ++ /* "cylp/cy/CyCbcModel.pyx":160 ++ * return 'relaxation abondoned' ++ * if self.CppSelf.isProvenInfeasible(): ++ * return 'problem proven infeasible' # <<<<<<<<<<<<<< ++ * if self.CppSelf.isProvenOptimal(): ++ * return 'solution' ++ */ ++ __Pyx_XDECREF(__pyx_r); ++ __Pyx_INCREF(__pyx_kp_s_problem_proven_infeasible); ++ __pyx_r = __pyx_kp_s_problem_proven_infeasible; ++ goto __pyx_L0; ++ ++ /* "cylp/cy/CyCbcModel.pyx":159 ++ * if self.isRelaxationAbondoned(): ++ * return 'relaxation abondoned' ++ * if self.CppSelf.isProvenInfeasible(): # <<<<<<<<<<<<<< ++ * return 'problem proven infeasible' ++ * if self.CppSelf.isProvenOptimal(): ++ */ ++ } ++ ++ /* "cylp/cy/CyCbcModel.pyx":161 ++ * if self.CppSelf.isProvenInfeasible(): ++ * return 'problem proven infeasible' ++ * if self.CppSelf.isProvenOptimal(): # <<<<<<<<<<<<<< ++ * return 'solution' ++ * return problemStatus[self.CppSelf.secondaryStatus()] ++ */ ++ __pyx_t_4 = (__pyx_v_self->CppSelf->isProvenOptimal() != 0); ++ if (__pyx_t_4) { ++ ++ /* "cylp/cy/CyCbcModel.pyx":162 ++ * return 'problem proven infeasible' ++ * if self.CppSelf.isProvenOptimal(): ++ * return 'solution' # <<<<<<<<<<<<<< ++ * return problemStatus[self.CppSelf.secondaryStatus()] ++ * ++ */ ++ __Pyx_XDECREF(__pyx_r); ++ __Pyx_INCREF(__pyx_n_s_solution); ++ __pyx_r = __pyx_n_s_solution; ++ goto __pyx_L0; ++ ++ /* "cylp/cy/CyCbcModel.pyx":161 ++ * if self.CppSelf.isProvenInfeasible(): ++ * return 'problem proven infeasible' ++ * if self.CppSelf.isProvenOptimal(): # <<<<<<<<<<<<<< ++ * return 'solution' ++ * return problemStatus[self.CppSelf.secondaryStatus()] ++ */ ++ } ++ ++ /* "cylp/cy/CyCbcModel.pyx":163 ++ * if self.CppSelf.isProvenOptimal(): ++ * return 'solution' + * return problemStatus[self.CppSelf.secondaryStatus()] # <<<<<<<<<<<<<< + * + * property logLevel: + */ + __Pyx_XDECREF(__pyx_r); +- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_problemStatus); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 160, __pyx_L1_error) ++ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_problemStatus); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 163, __pyx_L1_error) ++ __Pyx_GOTREF(__pyx_t_2); ++ __pyx_t_5 = __pyx_v_self->CppSelf->secondaryStatus(); ++ __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, __pyx_t_5, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); +- __pyx_t_2 = __pyx_v_self->CppSelf->secondaryStatus(); +- __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, __pyx_t_2, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 160, __pyx_L1_error) +- __Pyx_GOTREF(__pyx_t_3); +- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; +- __pyx_r = __pyx_t_3; +- __pyx_t_3 = 0; ++ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; ++ __pyx_r = __pyx_t_1; ++ __pyx_t_1 = 0; + goto __pyx_L0; + + /* "cylp/cy/CyCbcModel.pyx":153 +@@ -4823,12 +5004,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_6status___get__(st + * property status: + * def __get__(self): # <<<<<<<<<<<<<< + * # secondaryStatus() should be used instead of status() (??) +- * #if self.isRelaxationInfeasible(): ++ * if self.isRelaxationInfeasible(): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); ++ __Pyx_XDECREF(__pyx_t_2); + __Pyx_XDECREF(__pyx_t_3); + __Pyx_AddTraceback("cylp.cy.CyCbcModel.CyCbcModel.status.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; +@@ -4838,7 +5020,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_6status___get__(st + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":163 ++/* "cylp/cy/CyCbcModel.pyx":166 + * + * property logLevel: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -4868,7 +5050,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_8logLevel___get__( + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":164 ++ /* "cylp/cy/CyCbcModel.pyx":167 + * property logLevel: + * def __get__(self): + * return self.CppSelf.logLevel() # <<<<<<<<<<<<<< +@@ -4876,13 +5058,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_8logLevel___get__( + * def __set__(self, value): + */ + __Pyx_XDECREF(__pyx_r); +- __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->logLevel()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 164, __pyx_L1_error) ++ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->logLevel()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 167, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + +- /* "cylp/cy/CyCbcModel.pyx":163 ++ /* "cylp/cy/CyCbcModel.pyx":166 + * + * property logLevel: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -4901,7 +5083,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_8logLevel___get__( + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":166 ++/* "cylp/cy/CyCbcModel.pyx":169 + * return self.CppSelf.logLevel() + * + * def __set__(self, value): # <<<<<<<<<<<<<< +@@ -4931,17 +5113,17 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_8logLevel_2__set__(struc + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":167 ++ /* "cylp/cy/CyCbcModel.pyx":170 + * + * def __set__(self, value): + * self.CppSelf.setLogLevel(value) # <<<<<<<<<<<<<< + * + * def isRelaxationInfeasible(self): + */ +- __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 167, __pyx_L1_error) ++ __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 170, __pyx_L1_error) + __pyx_v_self->CppSelf->setLogLevel(__pyx_t_1); + +- /* "cylp/cy/CyCbcModel.pyx":166 ++ /* "cylp/cy/CyCbcModel.pyx":169 + * return self.CppSelf.logLevel() + * + * def __set__(self, value): # <<<<<<<<<<<<<< +@@ -4960,7 +5142,7 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_8logLevel_2__set__(struc + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":169 ++/* "cylp/cy/CyCbcModel.pyx":172 + * self.CppSelf.setLogLevel(value) + * + * def isRelaxationInfeasible(self): # <<<<<<<<<<<<<< +@@ -4991,7 +5173,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12isRelaxationInfe + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("isRelaxationInfeasible", 0); + +- /* "cylp/cy/CyCbcModel.pyx":170 ++ /* "cylp/cy/CyCbcModel.pyx":173 + * + * def isRelaxationInfeasible(self): + * return self.CppSelf.isInitialSolveProvenPrimalInfeasible() # <<<<<<<<<<<<<< +@@ -4999,13 +5181,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12isRelaxationInfe + * def isRelaxationDualInfeasible(self): + */ + __Pyx_XDECREF(__pyx_r); +- __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->CppSelf->isInitialSolveProvenPrimalInfeasible()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 170, __pyx_L1_error) ++ __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->CppSelf->isInitialSolveProvenPrimalInfeasible()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + +- /* "cylp/cy/CyCbcModel.pyx":169 ++ /* "cylp/cy/CyCbcModel.pyx":172 + * self.CppSelf.setLogLevel(value) + * + * def isRelaxationInfeasible(self): # <<<<<<<<<<<<<< +@@ -5024,7 +5206,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12isRelaxationInfe + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":172 ++/* "cylp/cy/CyCbcModel.pyx":175 + * return self.CppSelf.isInitialSolveProvenPrimalInfeasible() + * + * def isRelaxationDualInfeasible(self): # <<<<<<<<<<<<<< +@@ -5055,7 +5237,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_14isRelaxationDual + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("isRelaxationDualInfeasible", 0); + +- /* "cylp/cy/CyCbcModel.pyx":173 ++ /* "cylp/cy/CyCbcModel.pyx":176 + * + * def isRelaxationDualInfeasible(self): + * return self.CppSelf.isInitialSolveProvenDualInfeasible() # <<<<<<<<<<<<<< +@@ -5063,13 +5245,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_14isRelaxationDual + * def isRelaxationOptimal(self): + */ + __Pyx_XDECREF(__pyx_r); +- __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->CppSelf->isInitialSolveProvenDualInfeasible()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 173, __pyx_L1_error) ++ __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->CppSelf->isInitialSolveProvenDualInfeasible()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 176, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + +- /* "cylp/cy/CyCbcModel.pyx":172 ++ /* "cylp/cy/CyCbcModel.pyx":175 + * return self.CppSelf.isInitialSolveProvenPrimalInfeasible() + * + * def isRelaxationDualInfeasible(self): # <<<<<<<<<<<<<< +@@ -5088,7 +5270,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_14isRelaxationDual + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":175 ++/* "cylp/cy/CyCbcModel.pyx":178 + * return self.CppSelf.isInitialSolveProvenDualInfeasible() + * + * def isRelaxationOptimal(self): # <<<<<<<<<<<<<< +@@ -5119,7 +5301,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16isRelaxationOpti + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("isRelaxationOptimal", 0); + +- /* "cylp/cy/CyCbcModel.pyx":176 ++ /* "cylp/cy/CyCbcModel.pyx":179 + * + * def isRelaxationOptimal(self): + * return self.CppSelf.isInitialSolveProvenOptimal() # <<<<<<<<<<<<<< +@@ -5127,13 +5309,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16isRelaxationOpti + * def isRelaxationAbondoned(self): + */ + __Pyx_XDECREF(__pyx_r); +- __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->CppSelf->isInitialSolveProvenOptimal()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 176, __pyx_L1_error) ++ __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->CppSelf->isInitialSolveProvenOptimal()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + +- /* "cylp/cy/CyCbcModel.pyx":175 ++ /* "cylp/cy/CyCbcModel.pyx":178 + * return self.CppSelf.isInitialSolveProvenDualInfeasible() + * + * def isRelaxationOptimal(self): # <<<<<<<<<<<<<< +@@ -5152,7 +5334,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16isRelaxationOpti + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":178 ++/* "cylp/cy/CyCbcModel.pyx":181 + * return self.CppSelf.isInitialSolveProvenOptimal() + * + * def isRelaxationAbondoned(self): # <<<<<<<<<<<<<< +@@ -5183,7 +5365,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbon + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("isRelaxationAbondoned", 0); + +- /* "cylp/cy/CyCbcModel.pyx":179 ++ /* "cylp/cy/CyCbcModel.pyx":182 + * + * def isRelaxationAbondoned(self): + * return self.CppSelf.isInitialSolveAbandoned() # <<<<<<<<<<<<<< +@@ -5191,13 +5373,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbon + * property osiSolverInteface: + */ + __Pyx_XDECREF(__pyx_r); +- __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->CppSelf->isInitialSolveAbandoned()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 179, __pyx_L1_error) ++ __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->CppSelf->isInitialSolveAbandoned()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + +- /* "cylp/cy/CyCbcModel.pyx":178 ++ /* "cylp/cy/CyCbcModel.pyx":181 + * return self.CppSelf.isInitialSolveProvenOptimal() + * + * def isRelaxationAbondoned(self): # <<<<<<<<<<<<<< +@@ -5216,7 +5398,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbon + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":182 ++/* "cylp/cy/CyCbcModel.pyx":185 + * + * property osiSolverInteface: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -5247,30 +5429,30 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_17osiSolverIntefac + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":183 ++ /* "cylp/cy/CyCbcModel.pyx":186 + * property osiSolverInteface: + * def __get__(self): + * cdef CyOsiSolverInterface osi = CyOsiSolverInterface() # <<<<<<<<<<<<<< + * osi.setCppSelf(self.CppSelf.solver()) + * return osi + */ +- __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 183, __pyx_L1_error) ++ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 186, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_v_osi = ((struct __pyx_obj_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface *)__pyx_t_1); + __pyx_t_1 = 0; + +- /* "cylp/cy/CyCbcModel.pyx":184 ++ /* "cylp/cy/CyCbcModel.pyx":187 + * def __get__(self): + * cdef CyOsiSolverInterface osi = CyOsiSolverInterface() + * osi.setCppSelf(self.CppSelf.solver()) # <<<<<<<<<<<<<< + * return osi + * + */ +- __pyx_t_1 = ((struct __pyx_vtabstruct_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface *)__pyx_v_osi->__pyx_vtab)->setCppSelf(__pyx_v_osi, __pyx_v_self->CppSelf->solver()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 184, __pyx_L1_error) ++ __pyx_t_1 = ((struct __pyx_vtabstruct_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface *)__pyx_v_osi->__pyx_vtab)->setCppSelf(__pyx_v_osi, __pyx_v_self->CppSelf->solver()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + +- /* "cylp/cy/CyCbcModel.pyx":185 ++ /* "cylp/cy/CyCbcModel.pyx":188 + * cdef CyOsiSolverInterface osi = CyOsiSolverInterface() + * osi.setCppSelf(self.CppSelf.solver()) + * return osi # <<<<<<<<<<<<<< +@@ -5282,7 +5464,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_17osiSolverIntefac + __pyx_r = ((PyObject *)__pyx_v_osi); + goto __pyx_L0; + +- /* "cylp/cy/CyCbcModel.pyx":182 ++ /* "cylp/cy/CyCbcModel.pyx":185 + * + * property osiSolverInteface: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -5302,7 +5484,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_17osiSolverIntefac + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":188 ++/* "cylp/cy/CyCbcModel.pyx":191 + * + * property primalVariableSolution: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -5352,7 +5534,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":189 ++ /* "cylp/cy/CyCbcModel.pyx":192 + * property primalVariableSolution: + * def __get__(self): + * ret = self.CppSelf.getPrimalVariableSolution() # <<<<<<<<<<<<<< +@@ -5365,17 +5547,17 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + __pyx_v_ret = __pyx_t_2; + __pyx_t_2 = 0; + +- /* "cylp/cy/CyCbcModel.pyx":190 ++ /* "cylp/cy/CyCbcModel.pyx":193 + * def __get__(self): + * ret = self.CppSelf.getPrimalVariableSolution() + * if self.cyLPModel: # <<<<<<<<<<<<<< + * m = self.cyLPModel + * inds = m.inds + */ +- __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 190, __pyx_L1_error) ++ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 193, __pyx_L1_error) + if (__pyx_t_3) { + +- /* "cylp/cy/CyCbcModel.pyx":191 ++ /* "cylp/cy/CyCbcModel.pyx":194 + * ret = self.CppSelf.getPrimalVariableSolution() + * if self.cyLPModel: + * m = self.cyLPModel # <<<<<<<<<<<<<< +@@ -5387,40 +5569,40 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + __pyx_v_m = __pyx_t_2; + __pyx_t_2 = 0; + +- /* "cylp/cy/CyCbcModel.pyx":192 ++ /* "cylp/cy/CyCbcModel.pyx":195 + * if self.cyLPModel: + * m = self.cyLPModel + * inds = m.inds # <<<<<<<<<<<<<< + * d = {} + * for v in inds.varIndex.keys(): + */ +- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_inds); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 192, __pyx_L1_error) ++ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_inds); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 195, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_inds = __pyx_t_2; + __pyx_t_2 = 0; + +- /* "cylp/cy/CyCbcModel.pyx":193 ++ /* "cylp/cy/CyCbcModel.pyx":196 + * m = self.cyLPModel + * inds = m.inds + * d = {} # <<<<<<<<<<<<<< + * for v in inds.varIndex.keys(): + * d[v] = ret[inds.varIndex[v]] + */ +- __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 193, __pyx_L1_error) ++ __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 196, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_v_d = __pyx_t_2; + __pyx_t_2 = 0; + +- /* "cylp/cy/CyCbcModel.pyx":194 ++ /* "cylp/cy/CyCbcModel.pyx":197 + * inds = m.inds + * d = {} + * for v in inds.varIndex.keys(): # <<<<<<<<<<<<<< + * d[v] = ret[inds.varIndex[v]] + * var = m.getVarByName(v) + */ +- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_varIndex); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 194, __pyx_L1_error) ++ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_varIndex); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); +- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_keys); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 194, __pyx_L1_error) ++ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_keys); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_4 = NULL; +@@ -5435,16 +5617,16 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + } + __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_5); + __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; +- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 194, __pyx_L1_error) ++ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { + __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0; + __pyx_t_7 = NULL; + } else { +- __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 194, __pyx_L1_error) ++ __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); +- __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 194, __pyx_L1_error) ++ __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 197, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + for (;;) { +@@ -5452,17 +5634,17 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + if (likely(PyList_CheckExact(__pyx_t_5))) { + if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_2 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 194, __pyx_L1_error) ++ __pyx_t_2 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 197, __pyx_L1_error) + #else +- __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 194, __pyx_L1_error) ++ __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #endif + } else { + if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 194, __pyx_L1_error) ++ __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 197, __pyx_L1_error) + #else +- __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 194, __pyx_L1_error) ++ __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #endif + } +@@ -5472,7 +5654,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); +- else __PYX_ERR(0, 194, __pyx_L1_error) ++ else __PYX_ERR(0, 197, __pyx_L1_error) + } + break; + } +@@ -5481,32 +5663,32 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_2); + __pyx_t_2 = 0; + +- /* "cylp/cy/CyCbcModel.pyx":195 ++ /* "cylp/cy/CyCbcModel.pyx":198 + * d = {} + * for v in inds.varIndex.keys(): + * d[v] = ret[inds.varIndex[v]] # <<<<<<<<<<<<<< + * var = m.getVarByName(v) + * if var.dims: + */ +- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_varIndex); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 195, __pyx_L1_error) ++ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_varIndex); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_v); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 195, __pyx_L1_error) ++ __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_v); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 195, __pyx_L1_error) ++ __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- if (unlikely(PyObject_SetItem(__pyx_v_d, __pyx_v_v, __pyx_t_2) < 0)) __PYX_ERR(0, 195, __pyx_L1_error) ++ if (unlikely(PyObject_SetItem(__pyx_v_d, __pyx_v_v, __pyx_t_2) < 0)) __PYX_ERR(0, 198, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + +- /* "cylp/cy/CyCbcModel.pyx":196 ++ /* "cylp/cy/CyCbcModel.pyx":199 + * for v in inds.varIndex.keys(): + * d[v] = ret[inds.varIndex[v]] + * var = m.getVarByName(v) # <<<<<<<<<<<<<< + * if var.dims: + * d[v] = CyLPSolution() + */ +- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_getVarByName); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 196, __pyx_L1_error) ++ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_getVarByName); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_8 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { +@@ -5520,33 +5702,33 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + } + __pyx_t_2 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_8, __pyx_v_v) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_v); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 196, __pyx_L1_error) ++ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF_SET(__pyx_v_var, __pyx_t_2); + __pyx_t_2 = 0; + +- /* "cylp/cy/CyCbcModel.pyx":197 ++ /* "cylp/cy/CyCbcModel.pyx":200 + * d[v] = ret[inds.varIndex[v]] + * var = m.getVarByName(v) + * if var.dims: # <<<<<<<<<<<<<< + * d[v] = CyLPSolution() + * dimRanges = [range(i) for i in var.dims] + */ +- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_dims); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error) ++ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_dims); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 200, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 197, __pyx_L1_error) ++ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 200, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__pyx_t_3) { + +- /* "cylp/cy/CyCbcModel.pyx":198 ++ /* "cylp/cy/CyCbcModel.pyx":201 + * var = m.getVarByName(v) + * if var.dims: + * d[v] = CyLPSolution() # <<<<<<<<<<<<<< + * dimRanges = [range(i) for i in var.dims] + * for element in product(*dimRanges): + */ +- __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CyLPSolution); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 198, __pyx_L1_error) ++ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CyLPSolution); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 201, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_8 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { +@@ -5560,30 +5742,30 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + } + __pyx_t_2 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_4); + __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; +- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error) ++ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 201, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- if (unlikely(PyObject_SetItem(__pyx_v_d, __pyx_v_v, __pyx_t_2) < 0)) __PYX_ERR(0, 198, __pyx_L1_error) ++ if (unlikely(PyObject_SetItem(__pyx_v_d, __pyx_v_v, __pyx_t_2) < 0)) __PYX_ERR(0, 201, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + +- /* "cylp/cy/CyCbcModel.pyx":199 ++ /* "cylp/cy/CyCbcModel.pyx":202 + * if var.dims: + * d[v] = CyLPSolution() + * dimRanges = [range(i) for i in var.dims] # <<<<<<<<<<<<<< + * for element in product(*dimRanges): + * d[v][element] = ret[var.__getitem__(element).indices[0]] + */ +- __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 199, __pyx_L1_error) ++ __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_dims); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 199, __pyx_L1_error) ++ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_dims); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { + __pyx_t_8 = __pyx_t_4; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0; + __pyx_t_10 = NULL; + } else { +- __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 199, __pyx_L1_error) ++ __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); +- __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 199, __pyx_L1_error) ++ __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 202, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + for (;;) { +@@ -5591,17 +5773,17 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + if (likely(PyList_CheckExact(__pyx_t_8))) { + if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_4 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 199, __pyx_L1_error) ++ __pyx_t_4 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 202, __pyx_L1_error) + #else +- __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 199, __pyx_L1_error) ++ __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } else { + if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 199, __pyx_L1_error) ++ __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 202, __pyx_L1_error) + #else +- __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 199, __pyx_L1_error) ++ __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } +@@ -5611,7 +5793,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); +- else __PYX_ERR(0, 199, __pyx_L1_error) ++ else __PYX_ERR(0, 202, __pyx_L1_error) + } + break; + } +@@ -5619,27 +5801,27 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + } + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4); + __pyx_t_4 = 0; +- __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_v_i); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 199, __pyx_L1_error) ++ __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_v_i); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); +- if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 199, __pyx_L1_error) ++ if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 202, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + } + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF_SET(__pyx_v_dimRanges, ((PyObject*)__pyx_t_2)); + __pyx_t_2 = 0; + +- /* "cylp/cy/CyCbcModel.pyx":200 ++ /* "cylp/cy/CyCbcModel.pyx":203 + * d[v] = CyLPSolution() + * dimRanges = [range(i) for i in var.dims] + * for element in product(*dimRanges): # <<<<<<<<<<<<<< + * d[v][element] = ret[var.__getitem__(element).indices[0]] + * ret = d + */ +- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_product); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 200, __pyx_L1_error) ++ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_product); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- __pyx_t_8 = PySequence_Tuple(__pyx_v_dimRanges); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 200, __pyx_L1_error) ++ __pyx_t_8 = PySequence_Tuple(__pyx_v_dimRanges); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); +- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 200, __pyx_L1_error) ++ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; +@@ -5647,9 +5829,9 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + __pyx_t_8 = __pyx_t_4; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0; + __pyx_t_10 = NULL; + } else { +- __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 200, __pyx_L1_error) ++ __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); +- __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 200, __pyx_L1_error) ++ __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 203, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + for (;;) { +@@ -5657,17 +5839,17 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + if (likely(PyList_CheckExact(__pyx_t_8))) { + if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_4 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 200, __pyx_L1_error) ++ __pyx_t_4 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 203, __pyx_L1_error) + #else +- __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 200, __pyx_L1_error) ++ __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } else { + if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 200, __pyx_L1_error) ++ __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 203, __pyx_L1_error) + #else +- __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 200, __pyx_L1_error) ++ __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + #endif + } +@@ -5677,7 +5859,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); +- else __PYX_ERR(0, 200, __pyx_L1_error) ++ else __PYX_ERR(0, 203, __pyx_L1_error) + } + break; + } +@@ -5686,14 +5868,14 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + __Pyx_XDECREF_SET(__pyx_v_element, __pyx_t_4); + __pyx_t_4 = 0; + +- /* "cylp/cy/CyCbcModel.pyx":201 ++ /* "cylp/cy/CyCbcModel.pyx":204 + * dimRanges = [range(i) for i in var.dims] + * for element in product(*dimRanges): + * d[v][element] = ret[var.__getitem__(element).indices[0]] # <<<<<<<<<<<<<< + * ret = d + * else: + */ +- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_getitem); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 201, __pyx_L1_error) ++ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_getitem); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_11 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { +@@ -5707,25 +5889,25 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + } + __pyx_t_4 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_11, __pyx_v_element) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_element); + __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; +- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 201, __pyx_L1_error) ++ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_indices); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 201, __pyx_L1_error) ++ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_indices); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 201, __pyx_L1_error) ++ __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; +- __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 201, __pyx_L1_error) ++ __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +- __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_d, __pyx_v_v); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 201, __pyx_L1_error) ++ __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_d, __pyx_v_v); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); +- if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_v_element, __pyx_t_2) < 0)) __PYX_ERR(0, 201, __pyx_L1_error) ++ if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_v_element, __pyx_t_2) < 0)) __PYX_ERR(0, 204, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + +- /* "cylp/cy/CyCbcModel.pyx":200 ++ /* "cylp/cy/CyCbcModel.pyx":203 + * d[v] = CyLPSolution() + * dimRanges = [range(i) for i in var.dims] + * for element in product(*dimRanges): # <<<<<<<<<<<<<< +@@ -5735,7 +5917,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + } + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + +- /* "cylp/cy/CyCbcModel.pyx":197 ++ /* "cylp/cy/CyCbcModel.pyx":200 + * d[v] = ret[inds.varIndex[v]] + * var = m.getVarByName(v) + * if var.dims: # <<<<<<<<<<<<<< +@@ -5744,7 +5926,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + */ + } + +- /* "cylp/cy/CyCbcModel.pyx":194 ++ /* "cylp/cy/CyCbcModel.pyx":197 + * inds = m.inds + * d = {} + * for v in inds.varIndex.keys(): # <<<<<<<<<<<<<< +@@ -5754,7 +5936,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + +- /* "cylp/cy/CyCbcModel.pyx":202 ++ /* "cylp/cy/CyCbcModel.pyx":205 + * for element in product(*dimRanges): + * d[v][element] = ret[var.__getitem__(element).indices[0]] + * ret = d # <<<<<<<<<<<<<< +@@ -5764,7 +5946,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + __Pyx_INCREF(__pyx_v_d); + __Pyx_DECREF_SET(__pyx_v_ret, __pyx_v_d); + +- /* "cylp/cy/CyCbcModel.pyx":190 ++ /* "cylp/cy/CyCbcModel.pyx":193 + * def __get__(self): + * ret = self.CppSelf.getPrimalVariableSolution() + * if self.cyLPModel: # <<<<<<<<<<<<<< +@@ -5774,7 +5956,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + goto __pyx_L3; + } + +- /* "cylp/cy/CyCbcModel.pyx":204 ++ /* "cylp/cy/CyCbcModel.pyx":207 + * ret = d + * else: + * names = self.clpModel.variableNames # <<<<<<<<<<<<<< +@@ -5782,29 +5964,29 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + * d = CyLPSolution() + */ + /*else*/ { +- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->clpModel, __pyx_n_s_variableNames); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 204, __pyx_L1_error) ++ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->clpModel, __pyx_n_s_variableNames); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 207, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __pyx_v_names = __pyx_t_5; + __pyx_t_5 = 0; + +- /* "cylp/cy/CyCbcModel.pyx":205 ++ /* "cylp/cy/CyCbcModel.pyx":208 + * else: + * names = self.clpModel.variableNames + * if names: # <<<<<<<<<<<<<< + * d = CyLPSolution() + * for i in range(len(names)): + */ +- __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_names); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 205, __pyx_L1_error) ++ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_names); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 208, __pyx_L1_error) + if (__pyx_t_3) { + +- /* "cylp/cy/CyCbcModel.pyx":206 ++ /* "cylp/cy/CyCbcModel.pyx":209 + * names = self.clpModel.variableNames + * if names: + * d = CyLPSolution() # <<<<<<<<<<<<<< + * for i in range(len(names)): + * d[names[i]] = ret[i] + */ +- __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_CyLPSolution); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 206, __pyx_L1_error) ++ __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_CyLPSolution); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __pyx_t_2 = NULL; + if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { +@@ -5818,32 +6000,32 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + } + __pyx_t_5 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_8); + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; +- if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 206, __pyx_L1_error) ++ if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + __pyx_v_d = __pyx_t_5; + __pyx_t_5 = 0; + +- /* "cylp/cy/CyCbcModel.pyx":207 ++ /* "cylp/cy/CyCbcModel.pyx":210 + * if names: + * d = CyLPSolution() + * for i in range(len(names)): # <<<<<<<<<<<<<< + * d[names[i]] = ret[i] + * ret = d + */ +- __pyx_t_6 = PyObject_Length(__pyx_v_names); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 207, __pyx_L1_error) +- __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 207, __pyx_L1_error) ++ __pyx_t_6 = PyObject_Length(__pyx_v_names); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 210, __pyx_L1_error) ++ __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); +- __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 207, __pyx_L1_error) ++ __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) { + __pyx_t_5 = __pyx_t_8; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0; + __pyx_t_7 = NULL; + } else { +- __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 207, __pyx_L1_error) ++ __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); +- __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 207, __pyx_L1_error) ++ __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 210, __pyx_L1_error) + } + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + for (;;) { +@@ -5851,17 +6033,17 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + if (likely(PyList_CheckExact(__pyx_t_5))) { + if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_8 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 207, __pyx_L1_error) ++ __pyx_t_8 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 210, __pyx_L1_error) + #else +- __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 207, __pyx_L1_error) ++ __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + #endif + } else { + if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS +- __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 207, __pyx_L1_error) ++ __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 210, __pyx_L1_error) + #else +- __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 207, __pyx_L1_error) ++ __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); + #endif + } +@@ -5871,7 +6053,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + PyObject* exc_type = PyErr_Occurred(); + if (exc_type) { + if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); +- else __PYX_ERR(0, 207, __pyx_L1_error) ++ else __PYX_ERR(0, 210, __pyx_L1_error) + } + break; + } +@@ -5880,22 +6062,22 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_8); + __pyx_t_8 = 0; + +- /* "cylp/cy/CyCbcModel.pyx":208 ++ /* "cylp/cy/CyCbcModel.pyx":211 + * d = CyLPSolution() + * for i in range(len(names)): + * d[names[i]] = ret[i] # <<<<<<<<<<<<<< + * ret = d + * return ret + */ +- __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_v_i); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 208, __pyx_L1_error) ++ __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_v_i); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 211, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_8); +- __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_names, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 208, __pyx_L1_error) ++ __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_names, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 211, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +- if (unlikely(PyObject_SetItem(__pyx_v_d, __pyx_t_2, __pyx_t_8) < 0)) __PYX_ERR(0, 208, __pyx_L1_error) ++ if (unlikely(PyObject_SetItem(__pyx_v_d, __pyx_t_2, __pyx_t_8) < 0)) __PYX_ERR(0, 211, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + +- /* "cylp/cy/CyCbcModel.pyx":207 ++ /* "cylp/cy/CyCbcModel.pyx":210 + * if names: + * d = CyLPSolution() + * for i in range(len(names)): # <<<<<<<<<<<<<< +@@ -5905,7 +6087,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + } + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + +- /* "cylp/cy/CyCbcModel.pyx":209 ++ /* "cylp/cy/CyCbcModel.pyx":212 + * for i in range(len(names)): + * d[names[i]] = ret[i] + * ret = d # <<<<<<<<<<<<<< +@@ -5915,7 +6097,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + __Pyx_INCREF(__pyx_v_d); + __Pyx_DECREF_SET(__pyx_v_ret, __pyx_v_d); + +- /* "cylp/cy/CyCbcModel.pyx":205 ++ /* "cylp/cy/CyCbcModel.pyx":208 + * else: + * names = self.clpModel.variableNames + * if names: # <<<<<<<<<<<<<< +@@ -5926,7 +6108,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + } + __pyx_L3:; + +- /* "cylp/cy/CyCbcModel.pyx":210 ++ /* "cylp/cy/CyCbcModel.pyx":213 + * d[names[i]] = ret[i] + * ret = d + * return ret # <<<<<<<<<<<<<< +@@ -5938,7 +6120,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + __pyx_r = __pyx_v_ret; + goto __pyx_L0; + +- /* "cylp/cy/CyCbcModel.pyx":188 ++ /* "cylp/cy/CyCbcModel.pyx":191 + * + * property primalVariableSolution: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -5971,7 +6153,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":213 ++/* "cylp/cy/CyCbcModel.pyx":216 + * + * property solutionCount: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -6001,7 +6183,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_13solutionCount___ + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":214 ++ /* "cylp/cy/CyCbcModel.pyx":217 + * property solutionCount: + * def __get__(self): + * return self.CppSelf.getSolutionCount() # <<<<<<<<<<<<<< +@@ -6009,13 +6191,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_13solutionCount___ + * property numberHeuristicSolutions: + */ + __Pyx_XDECREF(__pyx_r); +- __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getSolutionCount()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 214, __pyx_L1_error) ++ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getSolutionCount()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + +- /* "cylp/cy/CyCbcModel.pyx":213 ++ /* "cylp/cy/CyCbcModel.pyx":216 + * + * property solutionCount: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -6034,7 +6216,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_13solutionCount___ + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":217 ++/* "cylp/cy/CyCbcModel.pyx":220 + * + * property numberHeuristicSolutions: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -6064,7 +6246,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_24numberHeuristicS + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":218 ++ /* "cylp/cy/CyCbcModel.pyx":221 + * property numberHeuristicSolutions: + * def __get__(self): + * return self.CppSelf.getNumberHeuristicSolutions() # <<<<<<<<<<<<<< +@@ -6072,13 +6254,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_24numberHeuristicS + * property nodeCount: + */ + __Pyx_XDECREF(__pyx_r); +- __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getNumberHeuristicSolutions()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 218, __pyx_L1_error) ++ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getNumberHeuristicSolutions()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + +- /* "cylp/cy/CyCbcModel.pyx":217 ++ /* "cylp/cy/CyCbcModel.pyx":220 + * + * property numberHeuristicSolutions: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -6097,7 +6279,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_24numberHeuristicS + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":221 ++/* "cylp/cy/CyCbcModel.pyx":224 + * + * property nodeCount: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -6127,7 +6309,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_9nodeCount___get__ + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":222 ++ /* "cylp/cy/CyCbcModel.pyx":225 + * property nodeCount: + * def __get__(self): + * return self.CppSelf.getNodeCount() # <<<<<<<<<<<<<< +@@ -6135,13 +6317,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_9nodeCount___get__ + * property objectiveValue: + */ + __Pyx_XDECREF(__pyx_r); +- __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getNodeCount()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 222, __pyx_L1_error) ++ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getNodeCount()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 225, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + +- /* "cylp/cy/CyCbcModel.pyx":221 ++ /* "cylp/cy/CyCbcModel.pyx":224 + * + * property nodeCount: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -6160,7 +6342,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_9nodeCount___get__ + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":225 ++/* "cylp/cy/CyCbcModel.pyx":228 + * + * property objectiveValue: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -6190,7 +6372,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_14objectiveValue__ + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":226 ++ /* "cylp/cy/CyCbcModel.pyx":229 + * property objectiveValue: + * def __get__(self): + * return self.CppSelf.getObjValue() # <<<<<<<<<<<<<< +@@ -6198,13 +6380,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_14objectiveValue__ + * property bestPossibleObjValue: + */ + __Pyx_XDECREF(__pyx_r); +- __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getObjValue()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 226, __pyx_L1_error) ++ __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getObjValue()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 229, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + +- /* "cylp/cy/CyCbcModel.pyx":225 ++ /* "cylp/cy/CyCbcModel.pyx":228 + * + * property objectiveValue: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -6223,7 +6405,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_14objectiveValue__ + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":229 ++/* "cylp/cy/CyCbcModel.pyx":232 + * + * property bestPossibleObjValue: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -6253,7 +6435,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_20bestPossibleObjV + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":230 ++ /* "cylp/cy/CyCbcModel.pyx":233 + * property bestPossibleObjValue: + * def __get__(self): + * return self.CppSelf.getBestPossibleObjValue() # <<<<<<<<<<<<<< +@@ -6261,13 +6443,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_20bestPossibleObjV + * property numberObjects: + */ + __Pyx_XDECREF(__pyx_r); +- __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getBestPossibleObjValue()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 230, __pyx_L1_error) ++ __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getBestPossibleObjValue()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 233, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + +- /* "cylp/cy/CyCbcModel.pyx":229 ++ /* "cylp/cy/CyCbcModel.pyx":232 + * + * property bestPossibleObjValue: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -6286,7 +6468,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_20bestPossibleObjV + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":233 ++/* "cylp/cy/CyCbcModel.pyx":236 + * + * property numberObjects: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -6316,7 +6498,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_13numberObjects___ + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":234 ++ /* "cylp/cy/CyCbcModel.pyx":237 + * property numberObjects: + * def __get__(self): + * return self.CppSelf.numberObjects() # <<<<<<<<<<<<<< +@@ -6324,13 +6506,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_13numberObjects___ + * property integerTolerance: + */ + __Pyx_XDECREF(__pyx_r); +- __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->numberObjects()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error) ++ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->numberObjects()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 237, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + +- /* "cylp/cy/CyCbcModel.pyx":233 ++ /* "cylp/cy/CyCbcModel.pyx":236 + * + * property numberObjects: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -6349,7 +6531,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_13numberObjects___ + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":237 ++/* "cylp/cy/CyCbcModel.pyx":240 + * + * property integerTolerance: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -6379,7 +6561,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16integerTolerance + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":238 ++ /* "cylp/cy/CyCbcModel.pyx":241 + * property integerTolerance: + * def __get__(self): + * return self.CppSelf.getIntegerTolerance() # <<<<<<<<<<<<<< +@@ -6387,13 +6569,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16integerTolerance + * def __set__(self, value): + */ + __Pyx_XDECREF(__pyx_r); +- __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getIntegerTolerance()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 238, __pyx_L1_error) ++ __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getIntegerTolerance()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + +- /* "cylp/cy/CyCbcModel.pyx":237 ++ /* "cylp/cy/CyCbcModel.pyx":240 + * + * property integerTolerance: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -6412,7 +6594,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16integerTolerance + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":240 ++/* "cylp/cy/CyCbcModel.pyx":243 + * return self.CppSelf.getIntegerTolerance() + * + * def __set__(self, value): # <<<<<<<<<<<<<< +@@ -6442,17 +6624,17 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16integerTolerance_2__se + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":241 ++ /* "cylp/cy/CyCbcModel.pyx":244 + * + * def __set__(self, value): + * self.CppSelf.setIntegerTolerance(value) # <<<<<<<<<<<<<< + * + * property maximumSeconds: + */ +- __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 241, __pyx_L1_error) ++ __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 244, __pyx_L1_error) + (void)(__pyx_v_self->CppSelf->setIntegerTolerance(__pyx_t_1)); + +- /* "cylp/cy/CyCbcModel.pyx":240 ++ /* "cylp/cy/CyCbcModel.pyx":243 + * return self.CppSelf.getIntegerTolerance() + * + * def __set__(self, value): # <<<<<<<<<<<<<< +@@ -6471,7 +6653,7 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16integerTolerance_2__se + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":244 ++/* "cylp/cy/CyCbcModel.pyx":247 + * + * property maximumSeconds: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -6501,7 +6683,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_14maximumSeconds__ + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":245 ++ /* "cylp/cy/CyCbcModel.pyx":248 + * property maximumSeconds: + * def __get__(self): + * return self.CppSelf.getMaximumSeconds() # <<<<<<<<<<<<<< +@@ -6509,13 +6691,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_14maximumSeconds__ + * def __set__(self, value): + */ + __Pyx_XDECREF(__pyx_r); +- __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getMaximumSeconds()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 245, __pyx_L1_error) ++ __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getMaximumSeconds()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 248, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + +- /* "cylp/cy/CyCbcModel.pyx":244 ++ /* "cylp/cy/CyCbcModel.pyx":247 + * + * property maximumSeconds: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -6534,7 +6716,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_14maximumSeconds__ + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":247 ++/* "cylp/cy/CyCbcModel.pyx":250 + * return self.CppSelf.getMaximumSeconds() + * + * def __set__(self, value): # <<<<<<<<<<<<<< +@@ -6564,17 +6746,17 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_14maximumSeconds_2__set_ + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":248 ++ /* "cylp/cy/CyCbcModel.pyx":251 + * + * def __set__(self, value): + * self.CppSelf.setMaximumSeconds(value) # <<<<<<<<<<<<<< + * + * property maximumNodes: + */ +- __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 248, __pyx_L1_error) ++ __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 251, __pyx_L1_error) + (void)(__pyx_v_self->CppSelf->setMaximumSeconds(__pyx_t_1)); + +- /* "cylp/cy/CyCbcModel.pyx":247 ++ /* "cylp/cy/CyCbcModel.pyx":250 + * return self.CppSelf.getMaximumSeconds() + * + * def __set__(self, value): # <<<<<<<<<<<<<< +@@ -6593,7 +6775,7 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_14maximumSeconds_2__set_ + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":251 ++/* "cylp/cy/CyCbcModel.pyx":254 + * + * property maximumNodes: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -6623,7 +6805,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12maximumNodes___g + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":252 ++ /* "cylp/cy/CyCbcModel.pyx":255 + * property maximumNodes: + * def __get__(self): + * return self.CppSelf.getMaximumNodes() # <<<<<<<<<<<<<< +@@ -6631,13 +6813,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12maximumNodes___g + * def __set__(self, value): + */ + __Pyx_XDECREF(__pyx_r); +- __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getMaximumNodes()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 252, __pyx_L1_error) ++ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getMaximumNodes()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + +- /* "cylp/cy/CyCbcModel.pyx":251 ++ /* "cylp/cy/CyCbcModel.pyx":254 + * + * property maximumNodes: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -6656,7 +6838,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12maximumNodes___g + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":254 ++/* "cylp/cy/CyCbcModel.pyx":257 + * return self.CppSelf.getMaximumNodes() + * + * def __set__(self, value): # <<<<<<<<<<<<<< +@@ -6686,17 +6868,17 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12maximumNodes_2__set__( + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":255 ++ /* "cylp/cy/CyCbcModel.pyx":258 + * + * def __set__(self, value): + * self.CppSelf.setMaximumNodes(value) # <<<<<<<<<<<<<< + * + * property numberThreads: + */ +- __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 255, __pyx_L1_error) ++ __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 258, __pyx_L1_error) + (void)(__pyx_v_self->CppSelf->setMaximumNodes(__pyx_t_1)); + +- /* "cylp/cy/CyCbcModel.pyx":254 ++ /* "cylp/cy/CyCbcModel.pyx":257 + * return self.CppSelf.getMaximumNodes() + * + * def __set__(self, value): # <<<<<<<<<<<<<< +@@ -6715,7 +6897,7 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12maximumNodes_2__set__( + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":258 ++/* "cylp/cy/CyCbcModel.pyx":261 + * + * property numberThreads: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -6745,7 +6927,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_13numberThreads___ + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":259 ++ /* "cylp/cy/CyCbcModel.pyx":262 + * property numberThreads: + * def __get__(self): + * return self.CppSelf.getNumberThreads() # <<<<<<<<<<<<<< +@@ -6753,13 +6935,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_13numberThreads___ + * def __set__(self, value): + */ + __Pyx_XDECREF(__pyx_r); +- __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getNumberThreads()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 259, __pyx_L1_error) ++ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getNumberThreads()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 262, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + +- /* "cylp/cy/CyCbcModel.pyx":258 ++ /* "cylp/cy/CyCbcModel.pyx":261 + * + * property numberThreads: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -6778,7 +6960,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_13numberThreads___ + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":261 ++/* "cylp/cy/CyCbcModel.pyx":264 + * return self.CppSelf.getNumberThreads() + * + * def __set__(self, value): # <<<<<<<<<<<<<< +@@ -6808,17 +6990,17 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_13numberThreads_2__set__ + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":262 ++ /* "cylp/cy/CyCbcModel.pyx":265 + * + * def __set__(self, value): + * self.CppSelf.setNumberThreads(value) # <<<<<<<<<<<<<< + * + * property allowableGap: + */ +- __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 262, __pyx_L1_error) ++ __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 265, __pyx_L1_error) + __pyx_v_self->CppSelf->setNumberThreads(__pyx_t_1); + +- /* "cylp/cy/CyCbcModel.pyx":261 ++ /* "cylp/cy/CyCbcModel.pyx":264 + * return self.CppSelf.getNumberThreads() + * + * def __set__(self, value): # <<<<<<<<<<<<<< +@@ -6837,7 +7019,7 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_13numberThreads_2__set__ + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":265 ++/* "cylp/cy/CyCbcModel.pyx":268 + * + * property allowableGap: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -6867,7 +7049,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12allowableGap___g + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":266 ++ /* "cylp/cy/CyCbcModel.pyx":269 + * property allowableGap: + * def __get__(self): + * return self.CppSelf.getAllowableGap() # <<<<<<<<<<<<<< +@@ -6875,13 +7057,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12allowableGap___g + * def __set__(self, value): + */ + __Pyx_XDECREF(__pyx_r); +- __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getAllowableGap()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 266, __pyx_L1_error) ++ __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getAllowableGap()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + +- /* "cylp/cy/CyCbcModel.pyx":265 ++ /* "cylp/cy/CyCbcModel.pyx":268 + * + * property allowableGap: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -6900,7 +7082,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12allowableGap___g + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":268 ++/* "cylp/cy/CyCbcModel.pyx":271 + * return self.CppSelf.getAllowableGap() + * + * def __set__(self, value): # <<<<<<<<<<<<<< +@@ -6930,17 +7112,17 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12allowableGap_2__set__( + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":269 ++ /* "cylp/cy/CyCbcModel.pyx":272 + * + * def __set__(self, value): + * self.CppSelf.setAllowableGap(value) # <<<<<<<<<<<<<< + * + * property allowableFractionGap: + */ +- __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 269, __pyx_L1_error) ++ __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 272, __pyx_L1_error) + __pyx_v_self->CppSelf->setAllowableGap(__pyx_t_1); + +- /* "cylp/cy/CyCbcModel.pyx":268 ++ /* "cylp/cy/CyCbcModel.pyx":271 + * return self.CppSelf.getAllowableGap() + * + * def __set__(self, value): # <<<<<<<<<<<<<< +@@ -6959,7 +7141,7 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12allowableGap_2__set__( + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":272 ++/* "cylp/cy/CyCbcModel.pyx":275 + * + * property allowableFractionGap: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -6989,7 +7171,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_20allowableFractio + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":273 ++ /* "cylp/cy/CyCbcModel.pyx":276 + * property allowableFractionGap: + * def __get__(self): + * return self.CppSelf.getAllowableFractionGap() # <<<<<<<<<<<<<< +@@ -6997,13 +7179,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_20allowableFractio + * def __set__(self, value): + */ + __Pyx_XDECREF(__pyx_r); +- __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getAllowableFractionGap()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 273, __pyx_L1_error) ++ __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getAllowableFractionGap()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + +- /* "cylp/cy/CyCbcModel.pyx":272 ++ /* "cylp/cy/CyCbcModel.pyx":275 + * + * property allowableFractionGap: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -7022,7 +7204,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_20allowableFractio + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":275 ++/* "cylp/cy/CyCbcModel.pyx":278 + * return self.CppSelf.getAllowableFractionGap() + * + * def __set__(self, value): # <<<<<<<<<<<<<< +@@ -7052,17 +7234,17 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_20allowableFractionGap_2 + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":276 ++ /* "cylp/cy/CyCbcModel.pyx":279 + * + * def __set__(self, value): + * self.CppSelf.setAllowableFractionGap(value) # <<<<<<<<<<<<<< + * + * property allowablePercentageGap: + */ +- __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 276, __pyx_L1_error) ++ __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 279, __pyx_L1_error) + __pyx_v_self->CppSelf->setAllowableFractionGap(__pyx_t_1); + +- /* "cylp/cy/CyCbcModel.pyx":275 ++ /* "cylp/cy/CyCbcModel.pyx":278 + * return self.CppSelf.getAllowableFractionGap() + * + * def __set__(self, value): # <<<<<<<<<<<<<< +@@ -7081,7 +7263,7 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_20allowableFractionGap_2 + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":279 ++/* "cylp/cy/CyCbcModel.pyx":282 + * + * property allowablePercentageGap: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -7111,7 +7293,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22allowablePercent + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":280 ++ /* "cylp/cy/CyCbcModel.pyx":283 + * property allowablePercentageGap: + * def __get__(self): + * return self.CppSelf.getAllowablePercentageGap() # <<<<<<<<<<<<<< +@@ -7119,13 +7301,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22allowablePercent + * def __set__(self, value): + */ + __Pyx_XDECREF(__pyx_r); +- __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getAllowablePercentageGap()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 280, __pyx_L1_error) ++ __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getAllowablePercentageGap()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 283, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + +- /* "cylp/cy/CyCbcModel.pyx":279 ++ /* "cylp/cy/CyCbcModel.pyx":282 + * + * property allowablePercentageGap: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -7144,7 +7326,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22allowablePercent + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":282 ++/* "cylp/cy/CyCbcModel.pyx":285 + * return self.CppSelf.getAllowablePercentageGap() + * + * def __set__(self, value): # <<<<<<<<<<<<<< +@@ -7174,17 +7356,17 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22allowablePercentageGap + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":283 ++ /* "cylp/cy/CyCbcModel.pyx":286 + * + * def __set__(self, value): + * self.CppSelf.setAllowablePercentageGap(value) # <<<<<<<<<<<<<< + * + * property maximumSolutions: + */ +- __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 283, __pyx_L1_error) ++ __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 286, __pyx_L1_error) + __pyx_v_self->CppSelf->setAllowablePercentageGap(__pyx_t_1); + +- /* "cylp/cy/CyCbcModel.pyx":282 ++ /* "cylp/cy/CyCbcModel.pyx":285 + * return self.CppSelf.getAllowablePercentageGap() + * + * def __set__(self, value): # <<<<<<<<<<<<<< +@@ -7203,7 +7385,7 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22allowablePercentageGap + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":286 ++/* "cylp/cy/CyCbcModel.pyx":289 + * + * property maximumSolutions: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -7233,7 +7415,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16maximumSolutions + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__get__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":287 ++ /* "cylp/cy/CyCbcModel.pyx":290 + * property maximumSolutions: + * def __get__(self): + * return self.CppSelf.getMaximumSolutions() # <<<<<<<<<<<<<< +@@ -7241,13 +7423,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16maximumSolutions + * def __set__(self, value): + */ + __Pyx_XDECREF(__pyx_r); +- __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getMaximumSolutions()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 287, __pyx_L1_error) ++ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getMaximumSolutions()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 290, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + +- /* "cylp/cy/CyCbcModel.pyx":286 ++ /* "cylp/cy/CyCbcModel.pyx":289 + * + * property maximumSolutions: + * def __get__(self): # <<<<<<<<<<<<<< +@@ -7266,7 +7448,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16maximumSolutions + return __pyx_r; + } + +-/* "cylp/cy/CyCbcModel.pyx":289 ++/* "cylp/cy/CyCbcModel.pyx":292 + * return self.CppSelf.getMaximumSolutions() + * + * def __set__(self, value): # <<<<<<<<<<<<<< +@@ -7296,17 +7478,17 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16maximumSolutions_2__se + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__set__", 0); + +- /* "cylp/cy/CyCbcModel.pyx":290 ++ /* "cylp/cy/CyCbcModel.pyx":293 + * + * def __set__(self, value): + * self.CppSelf.setMaximumSolutions(value) # <<<<<<<<<<<<<< + * + * + */ +- __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 290, __pyx_L1_error) ++ __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 293, __pyx_L1_error) + (void)(__pyx_v_self->CppSelf->setMaximumSolutions(__pyx_t_1)); + +- /* "cylp/cy/CyCbcModel.pyx":289 ++ /* "cylp/cy/CyCbcModel.pyx":292 + * return self.CppSelf.getMaximumSolutions() + * + * def __set__(self, value): # <<<<<<<<<<<<<< +@@ -7440,7 +7622,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22__setstate_cytho + return __pyx_r; + } + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":735 + * ctypedef npy_cdouble complex_t + * + * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< +@@ -7457,7 +7639,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":736 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":736 + * + * cdef inline object PyArray_MultiIterNew1(a): + * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< +@@ -7471,7 +7653,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ + __pyx_t_1 = 0; + goto __pyx_L0; + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":735 + * ctypedef npy_cdouble complex_t + * + * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< +@@ -7490,7 +7672,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ + return __pyx_r; + } + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":738 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":738 + * return PyArray_MultiIterNew(1, a) + * + * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< +@@ -7507,7 +7689,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":739 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":739 + * + * cdef inline object PyArray_MultiIterNew2(a, b): + * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< +@@ -7521,7 +7703,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ + __pyx_t_1 = 0; + goto __pyx_L0; + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":738 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":738 + * return PyArray_MultiIterNew(1, a) + * + * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< +@@ -7540,7 +7722,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ + return __pyx_r; + } + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":741 + * return PyArray_MultiIterNew(2, a, b) + * + * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< +@@ -7557,7 +7739,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":742 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":742 + * + * cdef inline object PyArray_MultiIterNew3(a, b, c): + * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< +@@ -7571,7 +7753,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ + __pyx_t_1 = 0; + goto __pyx_L0; + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":741 + * return PyArray_MultiIterNew(2, a, b) + * + * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< +@@ -7590,7 +7772,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ + return __pyx_r; + } + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":744 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":744 + * return PyArray_MultiIterNew(3, a, b, c) + * + * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< +@@ -7607,7 +7789,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":745 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":745 + * + * cdef inline object PyArray_MultiIterNew4(a, b, c, d): + * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< +@@ -7621,7 +7803,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ + __pyx_t_1 = 0; + goto __pyx_L0; + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":744 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":744 + * return PyArray_MultiIterNew(3, a, b, c) + * + * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< +@@ -7640,7 +7822,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ + return __pyx_r; + } + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":747 + * return PyArray_MultiIterNew(4, a, b, c, d) + * + * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< +@@ -7657,7 +7839,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":748 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/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) # <<<<<<<<<<<<<< +@@ -7671,7 +7853,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ + __pyx_t_1 = 0; + goto __pyx_L0; + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":747 + * return PyArray_MultiIterNew(4, a, b, c, d) + * + * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< +@@ -7690,7 +7872,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ + return __pyx_r; + } + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":750 + * return PyArray_MultiIterNew(5, a, b, c, d, e) + * + * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< +@@ -7704,7 +7886,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ + int __pyx_t_1; + __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":751 + * + * cdef inline tuple PyDataType_SHAPE(dtype d): + * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< +@@ -7714,7 +7896,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ + __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); + if (__pyx_t_1) { + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":752 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":752 + * cdef inline tuple PyDataType_SHAPE(dtype d): + * if PyDataType_HASSUBARRAY(d): + * return d.subarray.shape # <<<<<<<<<<<<<< +@@ -7726,7 +7908,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ + __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); + goto __pyx_L0; + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":751 + * + * cdef inline tuple PyDataType_SHAPE(dtype d): + * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< +@@ -7735,7 +7917,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ + */ + } + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":754 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":754 + * return d.subarray.shape + * else: + * return () # <<<<<<<<<<<<<< +@@ -7749,7 +7931,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ + goto __pyx_L0; + } + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":750 + * return PyArray_MultiIterNew(5, a, b, c, d, e) + * + * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< +@@ -7764,7 +7946,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ + return __pyx_r; + } + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":929 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":929 + * int _import_umath() except -1 + * + * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< +@@ -7776,7 +7958,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("set_array_base", 0); + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":930 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/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! # <<<<<<<<<<<<<< +@@ -7785,7 +7967,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a + */ + Py_INCREF(__pyx_v_base); + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":931 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/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) # <<<<<<<<<<<<<< +@@ -7794,7 +7976,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a + */ + (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base)); + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":929 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":929 + * int _import_umath() except -1 + * + * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< +@@ -7806,7 +7988,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a + __Pyx_RefNannyFinishContext(); + } + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":933 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":933 + * PyArray_SetBaseObject(arr, base) + * + * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< +@@ -7821,7 +8003,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py + int __pyx_t_1; + __Pyx_RefNannySetupContext("get_array_base", 0); + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":934 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":934 + * + * cdef inline object get_array_base(ndarray arr): + * base = PyArray_BASE(arr) # <<<<<<<<<<<<<< +@@ -7830,7 +8012,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py + */ + __pyx_v_base = PyArray_BASE(__pyx_v_arr); + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":935 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":935 + * cdef inline object get_array_base(ndarray arr): + * base = PyArray_BASE(arr) + * if base is NULL: # <<<<<<<<<<<<<< +@@ -7840,7 +8022,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) { + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":936 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":936 + * base = PyArray_BASE(arr) + * if base is NULL: + * return None # <<<<<<<<<<<<<< +@@ -7851,7 +8033,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py + __pyx_r = Py_None; __Pyx_INCREF(Py_None); + goto __pyx_L0; + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":935 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":935 + * cdef inline object get_array_base(ndarray arr): + * base = PyArray_BASE(arr) + * if base is NULL: # <<<<<<<<<<<<<< +@@ -7860,7 +8042,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py + */ + } + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":937 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":937 + * if base is NULL: + * return None + * return base # <<<<<<<<<<<<<< +@@ -7872,7 +8054,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py + __pyx_r = ((PyObject *)__pyx_v_base); + goto __pyx_L0; + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":933 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":933 + * PyArray_SetBaseObject(arr, base) + * + * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< +@@ -7887,7 +8069,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py + return __pyx_r; + } + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":941 + * # Versions of the import_* functions which are more suitable for + * # Cython code. + * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< +@@ -7911,7 +8093,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("import_array", 0); + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":942 + * # Cython code. + * cdef inline int import_array() except -1: + * try: # <<<<<<<<<<<<<< +@@ -7927,7 +8109,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { + __Pyx_XGOTREF(__pyx_t_3); + /*try:*/ { + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":943 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":943 + * cdef inline int import_array() except -1: + * try: + * __pyx_import_array() # <<<<<<<<<<<<<< +@@ -7936,7 +8118,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { + */ + __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 943, __pyx_L3_error) + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":942 + * # Cython code. + * cdef inline int import_array() except -1: + * try: # <<<<<<<<<<<<<< +@@ -7950,7 +8132,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { + goto __pyx_L8_try_end; + __pyx_L3_error:; + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":944 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":944 + * try: + * __pyx_import_array() + * except Exception: # <<<<<<<<<<<<<< +@@ -7965,7 +8147,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GOTREF(__pyx_t_7); + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":945 + * __pyx_import_array() + * except Exception: + * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< +@@ -7981,7 +8163,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { + goto __pyx_L5_except_error; + __pyx_L5_except_error:; + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":942 + * # Cython code. + * cdef inline int import_array() except -1: + * try: # <<<<<<<<<<<<<< +@@ -7996,7 +8178,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { + __pyx_L8_try_end:; + } + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":941 + * # Versions of the import_* functions which are more suitable for + * # Cython code. + * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< +@@ -8019,7 +8201,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { + return __pyx_r; + } + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":947 + * raise ImportError("numpy.core.multiarray failed to import") + * + * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< +@@ -8043,7 +8225,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("import_umath", 0); + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":948 + * + * cdef inline int import_umath() except -1: + * try: # <<<<<<<<<<<<<< +@@ -8059,7 +8241,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { + __Pyx_XGOTREF(__pyx_t_3); + /*try:*/ { + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":949 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":949 + * cdef inline int import_umath() except -1: + * try: + * _import_umath() # <<<<<<<<<<<<<< +@@ -8068,7 +8250,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { + */ + __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 949, __pyx_L3_error) + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":948 + * + * cdef inline int import_umath() except -1: + * try: # <<<<<<<<<<<<<< +@@ -8082,7 +8264,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { + goto __pyx_L8_try_end; + __pyx_L3_error:; + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":950 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":950 + * try: + * _import_umath() + * except Exception: # <<<<<<<<<<<<<< +@@ -8097,7 +8279,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GOTREF(__pyx_t_7); + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":951 + * _import_umath() + * except Exception: + * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< +@@ -8113,7 +8295,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { + goto __pyx_L5_except_error; + __pyx_L5_except_error:; + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":948 + * + * cdef inline int import_umath() except -1: + * try: # <<<<<<<<<<<<<< +@@ -8128,7 +8310,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { + __pyx_L8_try_end:; + } + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":947 + * raise ImportError("numpy.core.multiarray failed to import") + * + * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< +@@ -8151,7 +8333,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { + return __pyx_r; + } + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":953 + * raise ImportError("numpy.core.umath failed to import") + * + * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< +@@ -8175,7 +8357,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("import_ufunc", 0); + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":954 + * + * cdef inline int import_ufunc() except -1: + * try: # <<<<<<<<<<<<<< +@@ -8191,7 +8373,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { + __Pyx_XGOTREF(__pyx_t_3); + /*try:*/ { + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":955 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":955 + * cdef inline int import_ufunc() except -1: + * try: + * _import_umath() # <<<<<<<<<<<<<< +@@ -8200,7 +8382,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { + */ + __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 955, __pyx_L3_error) + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":954 + * + * cdef inline int import_ufunc() except -1: + * try: # <<<<<<<<<<<<<< +@@ -8214,7 +8396,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { + goto __pyx_L8_try_end; + __pyx_L3_error:; + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":956 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":956 + * try: + * _import_umath() + * except Exception: # <<<<<<<<<<<<<< +@@ -8229,7 +8411,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GOTREF(__pyx_t_7); + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":957 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":957 + * _import_umath() + * except Exception: + * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< +@@ -8245,7 +8427,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { + goto __pyx_L5_except_error; + __pyx_L5_except_error:; + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":954 + * + * cdef inline int import_ufunc() except -1: + * try: # <<<<<<<<<<<<<< +@@ -8260,7 +8442,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { + __pyx_L8_try_end:; + } + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":953 + * raise ImportError("numpy.core.umath failed to import") + * + * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< +@@ -8283,7 +8465,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { + return __pyx_r; + } + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":967 + * + * + * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< +@@ -8296,7 +8478,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_ + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("is_timedelta64_object", 0); + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":979 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":979 + * bool + * """ + * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<< +@@ -8306,7 +8488,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_ + __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); + goto __pyx_L0; + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":967 + * + * + * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< +@@ -8320,7 +8502,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_ + return __pyx_r; + } + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":982 + * + * + * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< +@@ -8333,7 +8515,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_o + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("is_datetime64_object", 0); + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":994 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":994 + * bool + * """ + * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<< +@@ -8343,7 +8525,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_o + __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); + goto __pyx_L0; + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":982 + * + * + * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< +@@ -8357,7 +8539,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_o + return __pyx_r; + } + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":997 + * + * + * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< +@@ -8368,7 +8550,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_o + static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { + npy_datetime __pyx_r; + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1004 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":1004 + * also needed. That can be found using `get_datetime64_unit`. + * """ + * return (obj).obval # <<<<<<<<<<<<<< +@@ -8378,7 +8560,7 @@ static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject * + __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; + goto __pyx_L0; + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":997 + * + * + * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< +@@ -8391,7 +8573,7 @@ static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject * + return __pyx_r; + } + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":1007 + * + * + * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< +@@ -8402,7 +8584,7 @@ static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject * + static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { + npy_timedelta __pyx_r; + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1011 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":1011 + * returns the int64 value underlying scalar numpy timedelta64 object + * """ + * return (obj).obval # <<<<<<<<<<<<<< +@@ -8412,7 +8594,7 @@ static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject + __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; + goto __pyx_L0; + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":1007 + * + * + * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< +@@ -8425,7 +8607,7 @@ static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject + return __pyx_r; + } + +-/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 ++/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":1014 + * + * + * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< +@@ -8436,7 +8618,7 @@ static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject + static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { + NPY_DATETIMEUNIT __pyx_r; + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1018 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":1018 + * returns the unit part of the dtype for a numpy datetime64 object. + * """ + * return (obj).obmeta.base # <<<<<<<<<<<<<< +@@ -8444,7 +8626,7 @@ static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObjec + __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); + goto __pyx_L0; + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":1014 + * + * + * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< +@@ -8790,14 +8972,14 @@ static PyTypeObject __pyx_type_4cylp_2cy_10CyCbcModel_CyCbcModel = { + #if PY_VERSION_HEX >= 0x030400a1 + 0, /*tp_finalize*/ + #endif +- #if PY_VERSION_HEX >= 0x030800b1 ++ #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) + 0, /*tp_vectorcall*/ + #endif + #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 + 0, /*tp_print*/ + #endif +- #if PY_VERSION_HEX >= 0x030B00A2 +- 0, /*tp_inline_values_offset*/ ++ #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 ++ 0, /*tp_pypy_flags*/ + #endif + }; + +@@ -8876,6 +9058,8 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { + {&__pyx_n_s_indices, __pyx_k_indices, sizeof(__pyx_k_indices), 0, 0, 1, 1}, + {&__pyx_n_s_inds, __pyx_k_inds, sizeof(__pyx_k_inds), 0, 0, 1, 1}, + {&__pyx_n_s_infeasible, __pyx_k_infeasible, sizeof(__pyx_k_infeasible), 0, 0, 1, 1}, ++ {&__pyx_n_s_isRelaxationAbondoned, __pyx_k_isRelaxationAbondoned, sizeof(__pyx_k_isRelaxationAbondoned), 0, 0, 1, 1}, ++ {&__pyx_n_s_isRelaxationInfeasible, __pyx_k_isRelaxationInfeasible, sizeof(__pyx_k_isRelaxationInfeasible), 0, 0, 1, 1}, + {&__pyx_n_s_itertools, __pyx_k_itertools, sizeof(__pyx_k_itertools), 0, 0, 1, 1}, + {&__pyx_n_s_izip, __pyx_k_izip, sizeof(__pyx_k_izip), 0, 0, 1, 1}, + {&__pyx_n_s_keys, __pyx_k_keys, sizeof(__pyx_k_keys), 0, 0, 1, 1}, +@@ -8888,6 +9072,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { + {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0}, + {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0}, + {&__pyx_n_s_problemStatus, __pyx_k_problemStatus, sizeof(__pyx_k_problemStatus), 0, 0, 1, 1}, ++ {&__pyx_kp_s_problem_proven_infeasible, __pyx_k_problem_proven_infeasible, sizeof(__pyx_k_problem_proven_infeasible), 0, 0, 1, 0}, + {&__pyx_n_s_product, __pyx_k_product, sizeof(__pyx_k_product), 0, 0, 1, 1}, + {&__pyx_n_s_pythonCutGeneratorObject, __pyx_k_pythonCutGeneratorObject, sizeof(__pyx_k_pythonCutGeneratorObject), 0, 0, 1, 1}, + {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, +@@ -8895,6 +9080,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { + {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, + {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, + {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, ++ {&__pyx_kp_s_relaxation_abondoned, __pyx_k_relaxation_abondoned, sizeof(__pyx_k_relaxation_abondoned), 0, 0, 1, 0}, + {&__pyx_kp_s_relaxation_infeasible, __pyx_k_relaxation_infeasible, sizeof(__pyx_k_relaxation_infeasible), 0, 0, 1, 0}, + {&__pyx_kp_s_setNodeCompare_argument_should_b, __pyx_k_setNodeCompare_argument_should_b, sizeof(__pyx_k_setNodeCompare_argument_should_b), 0, 0, 1, 0}, + {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, +@@ -8920,7 +9106,7 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { + __pyx_builtin_zip = __Pyx_GetBuiltinName(__pyx_n_s_zip); if (!__pyx_builtin_zip) __PYX_ERR(0, 7, __pyx_L1_error) + __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(0, 99, __pyx_L1_error) + __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 112, __pyx_L1_error) +- __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 199, __pyx_L1_error) ++ __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 202, __pyx_L1_error) + return 0; + __pyx_L1_error:; + return -1; +@@ -8949,7 +9135,7 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { + __Pyx_GOTREF(__pyx_tuple__3); + __Pyx_GIVEREF(__pyx_tuple__3); + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":945 + * __pyx_import_array() + * except Exception: + * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< +@@ -8960,7 +9146,7 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { + __Pyx_GOTREF(__pyx_tuple__4); + __Pyx_GIVEREF(__pyx_tuple__4); + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":951 + * _import_umath() + * except Exception: + * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< +@@ -9665,7 +9851,7 @@ if (!__Pyx_RefNanny) { + if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_7) < 0) __PYX_ERR(0, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + +- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 ++ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":1014 + * + * + * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< From ee48b3c79e60939af78396ce76a52c87d1992e89 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 14 Mar 2022 15:23:27 -0700 Subject: [PATCH 017/249] build/pkgs/cvxpy: Use https://github.com/cvxpy/cvxpy/pull/1707 --- build/pkgs/cvxpy/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/pkgs/cvxpy/requirements.txt b/build/pkgs/cvxpy/requirements.txt index 187142bb93e..4882cefe710 100644 --- a/build/pkgs/cvxpy/requirements.txt +++ b/build/pkgs/cvxpy/requirements.txt @@ -1 +1 @@ -cvxpy +cvxpy @ git+https://github.com/cvxpy/cvxpy.git@refs/pull/1707/head From bc60f6181759cd140cb8bdba355cdbc8cdbcb8b0 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 15 Mar 2022 21:05:38 -0700 Subject: [PATCH 018/249] build/pkgs/cylp: Add another commit from https://github.com/coin-or/CyLP/pull/150 --- build/pkgs/cylp/package-version.txt | 2 +- ...6ccc89a9f6510c8ebf7d54f7a135294dc257.patch | 280 ++++++++++++++++++ 2 files changed, 281 insertions(+), 1 deletion(-) create mode 100644 build/pkgs/cylp/patches/02-bc666ccc89a9f6510c8ebf7d54f7a135294dc257.patch diff --git a/build/pkgs/cylp/package-version.txt b/build/pkgs/cylp/package-version.txt index a242ad0cff8..9568b88b4a3 100644 --- a/build/pkgs/cylp/package-version.txt +++ b/build/pkgs/cylp/package-version.txt @@ -1 +1 @@ -0.91.4.p1 +0.91.4.p2 diff --git a/build/pkgs/cylp/patches/02-bc666ccc89a9f6510c8ebf7d54f7a135294dc257.patch b/build/pkgs/cylp/patches/02-bc666ccc89a9f6510c8ebf7d54f7a135294dc257.patch new file mode 100644 index 00000000000..7d6ccfb8002 --- /dev/null +++ b/build/pkgs/cylp/patches/02-bc666ccc89a9f6510c8ebf7d54f7a135294dc257.patch @@ -0,0 +1,280 @@ +From bc666ccc89a9f6510c8ebf7d54f7a135294dc257 Mon Sep 17 00:00:00 2001 +From: Ted Ralphs +Date: Tue, 15 Mar 2022 15:37:57 -0400 +Subject: [PATCH] Fixing another typo and clarify menaing of status + +--- + cylp/cy/CyCbcModel.cpp | 87 ++++++++++++++++++++++-------------------- + cylp/cy/CyCbcModel.pyx | 4 +- + 2 files changed, 47 insertions(+), 44 deletions(-) + +diff --git a/cylp/cy/CyCbcModel.cpp b/cylp/cy/CyCbcModel.cpp +index 8192e18..cf3e3b8 100644 +--- a/cylp/cy/CyCbcModel.cpp ++++ b/cylp/cy/CyCbcModel.cpp +@@ -2753,10 +2753,11 @@ static const char __pyx_k_NodeCompareBase[] = "NodeCompareBase"; + static const char __pyx_k_addCutGenerator[] = "addCutGenerator"; + static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; + static const char __pyx_k_stopped_on_time[] = "stopped on time"; ++static const char __pyx_k_search_completed[] = "search completed"; + static const char __pyx_k_stopped_on_nodes[] = "stopped on nodes"; + static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; +-static const char __pyx_k_relaxation_abondoned[] = "relaxation abondoned"; +-static const char __pyx_k_isRelaxationAbondoned[] = "isRelaxationAbondoned"; ++static const char __pyx_k_relaxation_abandoned[] = "relaxation abandoned"; ++static const char __pyx_k_isRelaxationAbandoned[] = "isRelaxationAbandoned"; + 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_isRelaxationInfeasible[] = "isRelaxationInfeasible"; +@@ -2797,7 +2798,7 @@ static PyObject *__pyx_n_s_import; + static PyObject *__pyx_n_s_indices; + static PyObject *__pyx_n_s_inds; + static PyObject *__pyx_n_s_infeasible; +-static PyObject *__pyx_n_s_isRelaxationAbondoned; ++static PyObject *__pyx_n_s_isRelaxationAbandoned; + static PyObject *__pyx_n_s_isRelaxationInfeasible; + static PyObject *__pyx_n_s_itertools; + static PyObject *__pyx_n_s_izip; +@@ -2819,8 +2820,9 @@ static PyObject *__pyx_n_s_range; + static PyObject *__pyx_n_s_reduce; + static PyObject *__pyx_n_s_reduce_cython; + static PyObject *__pyx_n_s_reduce_ex; +-static PyObject *__pyx_kp_s_relaxation_abondoned; ++static PyObject *__pyx_kp_s_relaxation_abandoned; + static PyObject *__pyx_kp_s_relaxation_infeasible; ++static PyObject *__pyx_kp_s_search_completed; + static PyObject *__pyx_kp_s_setNodeCompare_argument_should_b; + static PyObject *__pyx_n_s_setstate; + static PyObject *__pyx_n_s_setstate_cython; +@@ -2850,7 +2852,7 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_8logLevel_2__set__(struc + static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12isRelaxationInfeasible(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_v_self); /* proto */ + static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_14isRelaxationDualInfeasible(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_v_self); /* proto */ + static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16isRelaxationOptimal(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_v_self); /* proto */ +-static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbondoned(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_v_self); /* proto */ ++static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbandoned(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_v_self); /* proto */ + static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_17osiSolverInteface___get__(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_v_self); /* proto */ + static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSolution___get__(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_v_self); /* proto */ + static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_13solutionCount___get__(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_v_self); /* proto */ +@@ -4821,7 +4823,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_6status___get__(st + * # secondaryStatus() should be used instead of status() (??) + * if self.isRelaxationInfeasible(): # <<<<<<<<<<<<<< + * return problemStatus[1] +- * if self.isRelaxationAbondoned(): ++ * if self.isRelaxationAbandoned(): + */ + __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_isRelaxationInfeasible); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); +@@ -4848,8 +4850,8 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_6status___get__(st + * # secondaryStatus() should be used instead of status() (??) + * if self.isRelaxationInfeasible(): + * return problemStatus[1] # <<<<<<<<<<<<<< +- * if self.isRelaxationAbondoned(): +- * return 'relaxation abondoned' ++ * if self.isRelaxationAbandoned(): ++ * return 'relaxation abandoned' + */ + __Pyx_XDECREF(__pyx_r); + __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_problemStatus); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 156, __pyx_L1_error) +@@ -4866,18 +4868,18 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_6status___get__(st + * # secondaryStatus() should be used instead of status() (??) + * if self.isRelaxationInfeasible(): # <<<<<<<<<<<<<< + * return problemStatus[1] +- * if self.isRelaxationAbondoned(): ++ * if self.isRelaxationAbandoned(): + */ + } + + /* "cylp/cy/CyCbcModel.pyx":157 + * if self.isRelaxationInfeasible(): + * return problemStatus[1] +- * if self.isRelaxationAbondoned(): # <<<<<<<<<<<<<< +- * return 'relaxation abondoned' ++ * if self.isRelaxationAbandoned(): # <<<<<<<<<<<<<< ++ * return 'relaxation abandoned' + * if self.CppSelf.isProvenInfeasible(): + */ +- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_isRelaxationAbondoned); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 157, __pyx_L1_error) ++ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_isRelaxationAbandoned); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = NULL; + if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { +@@ -4900,28 +4902,28 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_6status___get__(st + + /* "cylp/cy/CyCbcModel.pyx":158 + * return problemStatus[1] +- * if self.isRelaxationAbondoned(): +- * return 'relaxation abondoned' # <<<<<<<<<<<<<< ++ * if self.isRelaxationAbandoned(): ++ * return 'relaxation abandoned' # <<<<<<<<<<<<<< + * if self.CppSelf.isProvenInfeasible(): + * return 'problem proven infeasible' + */ + __Pyx_XDECREF(__pyx_r); +- __Pyx_INCREF(__pyx_kp_s_relaxation_abondoned); +- __pyx_r = __pyx_kp_s_relaxation_abondoned; ++ __Pyx_INCREF(__pyx_kp_s_relaxation_abandoned); ++ __pyx_r = __pyx_kp_s_relaxation_abandoned; + goto __pyx_L0; + + /* "cylp/cy/CyCbcModel.pyx":157 + * if self.isRelaxationInfeasible(): + * return problemStatus[1] +- * if self.isRelaxationAbondoned(): # <<<<<<<<<<<<<< +- * return 'relaxation abondoned' ++ * if self.isRelaxationAbandoned(): # <<<<<<<<<<<<<< ++ * return 'relaxation abandoned' + * if self.CppSelf.isProvenInfeasible(): + */ + } + + /* "cylp/cy/CyCbcModel.pyx":159 +- * if self.isRelaxationAbondoned(): +- * return 'relaxation abondoned' ++ * if self.isRelaxationAbandoned(): ++ * return 'relaxation abandoned' + * if self.CppSelf.isProvenInfeasible(): # <<<<<<<<<<<<<< + * return 'problem proven infeasible' + * if self.CppSelf.isProvenOptimal(): +@@ -4930,7 +4932,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_6status___get__(st + if (__pyx_t_4) { + + /* "cylp/cy/CyCbcModel.pyx":160 +- * return 'relaxation abondoned' ++ * return 'relaxation abandoned' + * if self.CppSelf.isProvenInfeasible(): + * return 'problem proven infeasible' # <<<<<<<<<<<<<< + * if self.CppSelf.isProvenOptimal(): +@@ -4942,8 +4944,8 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_6status___get__(st + goto __pyx_L0; + + /* "cylp/cy/CyCbcModel.pyx":159 +- * if self.isRelaxationAbondoned(): +- * return 'relaxation abondoned' ++ * if self.isRelaxationAbandoned(): ++ * return 'relaxation abandoned' + * if self.CppSelf.isProvenInfeasible(): # <<<<<<<<<<<<<< + * return 'problem proven infeasible' + * if self.CppSelf.isProvenOptimal(): +@@ -5306,7 +5308,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16isRelaxationOpti + * def isRelaxationOptimal(self): + * return self.CppSelf.isInitialSolveProvenOptimal() # <<<<<<<<<<<<<< + * +- * def isRelaxationAbondoned(self): ++ * def isRelaxationAbandoned(self): + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->CppSelf->isInitialSolveProvenOptimal()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 179, __pyx_L1_error) +@@ -5337,37 +5339,37 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16isRelaxationOpti + /* "cylp/cy/CyCbcModel.pyx":181 + * return self.CppSelf.isInitialSolveProvenOptimal() + * +- * def isRelaxationAbondoned(self): # <<<<<<<<<<<<<< ++ * def isRelaxationAbandoned(self): # <<<<<<<<<<<<<< + * return self.CppSelf.isInitialSolveAbandoned() + * + */ + + /* Python wrapper */ +-static PyObject *__pyx_pw_4cylp_2cy_10CyCbcModel_10CyCbcModel_19isRelaxationAbondoned(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ +-static char __pyx_doc_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbondoned[] = "CyCbcModel.isRelaxationAbondoned(self)"; +-static PyObject *__pyx_pw_4cylp_2cy_10CyCbcModel_10CyCbcModel_19isRelaxationAbondoned(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { ++static PyObject *__pyx_pw_4cylp_2cy_10CyCbcModel_10CyCbcModel_19isRelaxationAbandoned(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ ++static char __pyx_doc_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbandoned[] = "CyCbcModel.isRelaxationAbandoned(self)"; ++static PyObject *__pyx_pw_4cylp_2cy_10CyCbcModel_10CyCbcModel_19isRelaxationAbandoned(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations +- __Pyx_RefNannySetupContext("isRelaxationAbondoned (wrapper)", 0); +- __pyx_r = __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbondoned(((struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *)__pyx_v_self)); ++ __Pyx_RefNannySetupContext("isRelaxationAbandoned (wrapper)", 0); ++ __pyx_r = __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbandoned(((struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *)__pyx_v_self)); + + /* function exit code */ + __Pyx_RefNannyFinishContext(); + return __pyx_r; + } + +-static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbondoned(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_v_self) { ++static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbandoned(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_v_self) { + 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("isRelaxationAbondoned", 0); ++ __Pyx_RefNannySetupContext("isRelaxationAbandoned", 0); + + /* "cylp/cy/CyCbcModel.pyx":182 + * +- * def isRelaxationAbondoned(self): ++ * def isRelaxationAbandoned(self): + * return self.CppSelf.isInitialSolveAbandoned() # <<<<<<<<<<<<<< + * + * property osiSolverInteface: +@@ -5382,7 +5384,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbon + /* "cylp/cy/CyCbcModel.pyx":181 + * return self.CppSelf.isInitialSolveProvenOptimal() + * +- * def isRelaxationAbondoned(self): # <<<<<<<<<<<<<< ++ * def isRelaxationAbandoned(self): # <<<<<<<<<<<<<< + * return self.CppSelf.isInitialSolveAbandoned() + * + */ +@@ -5390,7 +5392,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbon + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); +- __Pyx_AddTraceback("cylp.cy.CyCbcModel.CyCbcModel.isRelaxationAbondoned", __pyx_clineno, __pyx_lineno, __pyx_filename); ++ __Pyx_AddTraceback("cylp.cy.CyCbcModel.CyCbcModel.isRelaxationAbandoned", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); +@@ -8883,7 +8885,7 @@ static PyMethodDef __pyx_methods_4cylp_2cy_10CyCbcModel_CyCbcModel[] = { + {"isRelaxationInfeasible", (PyCFunction)__pyx_pw_4cylp_2cy_10CyCbcModel_10CyCbcModel_13isRelaxationInfeasible, METH_NOARGS, __pyx_doc_4cylp_2cy_10CyCbcModel_10CyCbcModel_12isRelaxationInfeasible}, + {"isRelaxationDualInfeasible", (PyCFunction)__pyx_pw_4cylp_2cy_10CyCbcModel_10CyCbcModel_15isRelaxationDualInfeasible, METH_NOARGS, __pyx_doc_4cylp_2cy_10CyCbcModel_10CyCbcModel_14isRelaxationDualInfeasible}, + {"isRelaxationOptimal", (PyCFunction)__pyx_pw_4cylp_2cy_10CyCbcModel_10CyCbcModel_17isRelaxationOptimal, METH_NOARGS, __pyx_doc_4cylp_2cy_10CyCbcModel_10CyCbcModel_16isRelaxationOptimal}, +- {"isRelaxationAbondoned", (PyCFunction)__pyx_pw_4cylp_2cy_10CyCbcModel_10CyCbcModel_19isRelaxationAbondoned, METH_NOARGS, __pyx_doc_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbondoned}, ++ {"isRelaxationAbandoned", (PyCFunction)__pyx_pw_4cylp_2cy_10CyCbcModel_10CyCbcModel_19isRelaxationAbandoned, METH_NOARGS, __pyx_doc_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbandoned}, + {"__reduce_cython__", (PyCFunction)__pyx_pw_4cylp_2cy_10CyCbcModel_10CyCbcModel_21__reduce_cython__, METH_NOARGS, __pyx_doc_4cylp_2cy_10CyCbcModel_10CyCbcModel_20__reduce_cython__}, + {"__setstate_cython__", (PyCFunction)__pyx_pw_4cylp_2cy_10CyCbcModel_10CyCbcModel_23__setstate_cython__, METH_O, __pyx_doc_4cylp_2cy_10CyCbcModel_10CyCbcModel_22__setstate_cython__}, + {0, 0, 0, 0} +@@ -9058,7 +9060,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { + {&__pyx_n_s_indices, __pyx_k_indices, sizeof(__pyx_k_indices), 0, 0, 1, 1}, + {&__pyx_n_s_inds, __pyx_k_inds, sizeof(__pyx_k_inds), 0, 0, 1, 1}, + {&__pyx_n_s_infeasible, __pyx_k_infeasible, sizeof(__pyx_k_infeasible), 0, 0, 1, 1}, +- {&__pyx_n_s_isRelaxationAbondoned, __pyx_k_isRelaxationAbondoned, sizeof(__pyx_k_isRelaxationAbondoned), 0, 0, 1, 1}, ++ {&__pyx_n_s_isRelaxationAbandoned, __pyx_k_isRelaxationAbandoned, sizeof(__pyx_k_isRelaxationAbandoned), 0, 0, 1, 1}, + {&__pyx_n_s_isRelaxationInfeasible, __pyx_k_isRelaxationInfeasible, sizeof(__pyx_k_isRelaxationInfeasible), 0, 0, 1, 1}, + {&__pyx_n_s_itertools, __pyx_k_itertools, sizeof(__pyx_k_itertools), 0, 0, 1, 1}, + {&__pyx_n_s_izip, __pyx_k_izip, sizeof(__pyx_k_izip), 0, 0, 1, 1}, +@@ -9080,8 +9082,9 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { + {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, + {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, + {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, +- {&__pyx_kp_s_relaxation_abondoned, __pyx_k_relaxation_abondoned, sizeof(__pyx_k_relaxation_abondoned), 0, 0, 1, 0}, ++ {&__pyx_kp_s_relaxation_abandoned, __pyx_k_relaxation_abandoned, sizeof(__pyx_k_relaxation_abandoned), 0, 0, 1, 0}, + {&__pyx_kp_s_relaxation_infeasible, __pyx_k_relaxation_infeasible, sizeof(__pyx_k_relaxation_infeasible), 0, 0, 1, 0}, ++ {&__pyx_kp_s_search_completed, __pyx_k_search_completed, sizeof(__pyx_k_search_completed), 0, 0, 1, 0}, + {&__pyx_kp_s_setNodeCompare_argument_should_b, __pyx_k_setNodeCompare_argument_should_b, sizeof(__pyx_k_setNodeCompare_argument_should_b), 0, 0, 1, 0}, + {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, + {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, +@@ -9808,15 +9811,15 @@ if (!__Pyx_RefNanny) { + /* "cylp/cy/CyCbcModel.pyx":33 + * + * # Understandable messages to translate what branchAndBound() returns +- * problemStatus = ['solution', 'relaxation infeasible', # <<<<<<<<<<<<<< ++ * problemStatus = ['search completed', 'relaxation infeasible', # <<<<<<<<<<<<<< + * 'stopped on gap', 'stopped on nodes', 'stopped on time', + * 'stopped on user event', 'stopped on solutions' + */ + __pyx_t_7 = PyList_New(8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 33, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); +- __Pyx_INCREF(__pyx_n_s_solution); +- __Pyx_GIVEREF(__pyx_n_s_solution); +- PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_solution); ++ __Pyx_INCREF(__pyx_kp_s_search_completed); ++ __Pyx_GIVEREF(__pyx_kp_s_search_completed); ++ PyList_SET_ITEM(__pyx_t_7, 0, __pyx_kp_s_search_completed); + __Pyx_INCREF(__pyx_kp_s_relaxation_infeasible); + __Pyx_GIVEREF(__pyx_kp_s_relaxation_infeasible); + PyList_SET_ITEM(__pyx_t_7, 1, __pyx_kp_s_relaxation_infeasible); From 4d0b57b5b7c52109d12b08f7a32fb2bb331afc24 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sun, 20 Mar 2022 11:43:49 -0700 Subject: [PATCH 019/249] src/sage/numerical/backends/cvxpy_backend_test.py: New --- src/sage/numerical/backends/cvxpy_backend_test.py | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 src/sage/numerical/backends/cvxpy_backend_test.py diff --git a/src/sage/numerical/backends/cvxpy_backend_test.py b/src/sage/numerical/backends/cvxpy_backend_test.py new file mode 100644 index 00000000000..6b72d90df91 --- /dev/null +++ b/src/sage/numerical/backends/cvxpy_backend_test.py @@ -0,0 +1,10 @@ +import pytest +from sage.numerical.backends.generic_backend_test import GenericBackendTests +from sage.numerical.backends.generic_backend import GenericBackend +from sage.numerical.mip import MixedIntegerLinearProgram + +class TestCVXPYBackend(GenericBackendTests): + + @pytest.fixture + def backend(self) -> GenericBackend: + return MixedIntegerLinearProgram(solver="CVXPY").get_backend() From 26244793debb0547745a504ec51cd327d6db6ad8 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 26 Mar 2022 19:08:32 -0700 Subject: [PATCH 020/249] build/pkgs/cylp: Update to 0.91.5, remove patches --- build/pkgs/cylp/checksums.ini | 6 +- build/pkgs/cylp/package-version.txt | 2 +- ...c4b94e279e96842da0d38ae657f06f1e9415.patch | 88285 ---------------- ...21ac6bcc290fd60b83bf48741030d9d0abe7.patch | 2888 - ...6ccc89a9f6510c8ebf7d54f7a135294dc257.patch | 280 - 5 files changed, 4 insertions(+), 91457 deletions(-) delete mode 100644 build/pkgs/cylp/patches/00-e619c4b94e279e96842da0d38ae657f06f1e9415.patch delete mode 100644 build/pkgs/cylp/patches/01-7c5b21ac6bcc290fd60b83bf48741030d9d0abe7.patch delete mode 100644 build/pkgs/cylp/patches/02-bc666ccc89a9f6510c8ebf7d54f7a135294dc257.patch 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 9568b88b4a3..1d5e6c02bae 100644 --- a/build/pkgs/cylp/package-version.txt +++ b/build/pkgs/cylp/package-version.txt @@ -1 +1 @@ -0.91.4.p2 +0.91.5 diff --git a/build/pkgs/cylp/patches/00-e619c4b94e279e96842da0d38ae657f06f1e9415.patch b/build/pkgs/cylp/patches/00-e619c4b94e279e96842da0d38ae657f06f1e9415.patch deleted file mode 100644 index 295cae02b2c..00000000000 --- a/build/pkgs/cylp/patches/00-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 base # <<<<<<<<<<<<<< -@@ -9437,7 +7872,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = ((PyObject *)__pyx_v_base); - goto __pyx_L0; - -- /* "../../.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): # <<<<<<<<<<<<<< -@@ -9452,12 +7887,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - return __pyx_r; - } - --/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1033 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { -@@ -9476,11 +7911,11 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_array", 0); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - { -@@ -9492,20 +7927,20 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":943 - * cdef inline int import_array() except -1: - * try: -- * _import_array() # <<<<<<<<<<<<<< -+ * __pyx_import_array() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") - */ -- __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1035, __pyx_L3_error) -+ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 943, __pyx_L3_error) - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - } -@@ -9515,9 +7950,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1036 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":944 - * try: -- * _import_array() -+ * __pyx_import_array() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.multiarray failed to import") - * -@@ -9525,32 +7960,32 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1036, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 944, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1037 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1037, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 945, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1037, __pyx_L5_except_error) -+ __PYX_ERR(2, 945, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - __Pyx_XGIVEREF(__pyx_t_1); -@@ -9561,12 +7996,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_L8_try_end:; - } - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1033 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - /* function exit code */ -@@ -9584,7 +8019,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - return __pyx_r; - } - --/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1039 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -9608,7 +8043,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_umath", 0); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -9624,16 +8059,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":949 - * cdef inline int import_umath() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1041, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 949, __pyx_L3_error) - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -9647,7 +8082,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1042 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":950 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< -@@ -9657,28 +8092,28 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1042, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 950, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1043 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1043, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 951, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1043, __pyx_L5_except_error) -+ __PYX_ERR(2, 951, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -9693,7 +8128,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_L8_try_end:; - } - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1039 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -9716,7 +8151,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - return __pyx_r; - } - --/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1045 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -9740,7 +8175,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_ufunc", 0); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -9756,16 +8191,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":955 - * cdef inline int import_ufunc() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1047, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 955, __pyx_L3_error) - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -9779,69 +8214,246 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1048 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":956 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.umath failed to import") -+ * - */ - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1048, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 956, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1049 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":957 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< -+ * -+ * cdef extern from *: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1049, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 957, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1049, __pyx_L5_except_error) -+ __PYX_ERR(2, 957, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 -+ * -+ * cdef inline int import_ufunc() except -1: -+ * try: # <<<<<<<<<<<<<< -+ * _import_umath() -+ * except Exception: -+ */ -+ __Pyx_XGIVEREF(__pyx_t_1); -+ __Pyx_XGIVEREF(__pyx_t_2); -+ __Pyx_XGIVEREF(__pyx_t_3); -+ __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); -+ goto __pyx_L1_error; -+ __pyx_L8_try_end:; -+ } -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 -+ * raise ImportError("numpy.core.umath failed to import") -+ * -+ * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -+ * try: -+ * _import_umath() -+ */ -+ -+ /* function exit code */ -+ __pyx_r = 0; -+ goto __pyx_L0; -+ __pyx_L1_error:; -+ __Pyx_XDECREF(__pyx_t_5); -+ __Pyx_XDECREF(__pyx_t_6); -+ __Pyx_XDECREF(__pyx_t_7); -+ __Pyx_XDECREF(__pyx_t_8); -+ __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -+ __pyx_r = -1; -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_timedelta64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":979 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_datetime64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":994 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { -+ npy_datetime __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1004 -+ * also needed. That can be found using `get_datetime64_unit`. -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { -+ npy_timedelta __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1011 -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: -- * try: # <<<<<<<<<<<<<< -- * _import_umath() -- * except Exception: -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ -- __Pyx_XGIVEREF(__pyx_t_1); -- __Pyx_XGIVEREF(__pyx_t_2); -- __Pyx_XGIVEREF(__pyx_t_3); -- __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); -- goto __pyx_L1_error; -- __pyx_L8_try_end:; -- } - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1045 -- * raise ImportError("numpy.core.umath failed to import") -+static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { -+ NPY_DATETIMEUNIT __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1018 -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ * """ -+ * return (obj).obmeta.base # <<<<<<<<<<<<<< -+ */ -+ __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -- * try: -- * _import_umath() -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ - - /* function exit code */ -- __pyx_r = 0; -- goto __pyx_L0; -- __pyx_L1_error:; -- __Pyx_XDECREF(__pyx_t_5); -- __Pyx_XDECREF(__pyx_t_6); -- __Pyx_XDECREF(__pyx_t_7); -- __Pyx_XDECREF(__pyx_t_8); -- __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -- __pyx_r = -1; - __pyx_L0:; -- __Pyx_RefNannyFinishContext(); - return __pyx_r; - } - static struct __pyx_vtabstruct_4cylp_2cy_10CyCbcModel_CyCbcModel __pyx_vtable_4cylp_2cy_10CyCbcModel_CyCbcModel; -@@ -10184,6 +8796,9 @@ static PyTypeObject __pyx_type_4cylp_2cy_10CyCbcModel_CyCbcModel = { - #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 - 0, /*tp_print*/ - #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyMethodDef __pyx_methods[] = { -@@ -10236,14 +8851,9 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_AttributeError, __pyx_k_AttributeError, sizeof(__pyx_k_AttributeError), 0, 0, 1, 1}, - {&__pyx_n_s_CyCbcModel, __pyx_k_CyCbcModel, sizeof(__pyx_k_CyCbcModel), 0, 0, 1, 1}, - {&__pyx_n_s_CyLPSolution, __pyx_k_CyLPSolution, sizeof(__pyx_k_CyLPSolution), 0, 0, 1, 1}, -- {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, -- {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, - {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, - {&__pyx_n_s_NodeCompareBase, __pyx_k_NodeCompareBase, sizeof(__pyx_k_NodeCompareBase), 0, 0, 1, 1}, -- {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, -- {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, -- {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_n_s_addCutGenerator, __pyx_k_addCutGenerator, sizeof(__pyx_k_addCutGenerator), 0, 0, 1, 1}, - {&__pyx_n_s_append, __pyx_k_append, sizeof(__pyx_k_append), 0, 0, 1, 1}, - {&__pyx_n_s_atSolution, __pyx_k_atSolution, sizeof(__pyx_k_atSolution), 0, 0, 1, 1}, -@@ -10272,8 +8882,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, - {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1}, -- {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, -- {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, - {&__pyx_n_s_newSolution, __pyx_k_newSolution, sizeof(__pyx_k_newSolution), 0, 0, 1, 1}, - {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0}, - {&__pyx_n_s_normal, __pyx_k_normal, sizeof(__pyx_k_normal), 0, 0, 1, 1}, -@@ -10298,7 +8906,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_kp_s_stopped_on_time, __pyx_k_stopped_on_time, sizeof(__pyx_k_stopped_on_time), 0, 0, 1, 0}, - {&__pyx_kp_s_stopped_on_user_event, __pyx_k_stopped_on_user_event, sizeof(__pyx_k_stopped_on_user_event), 0, 0, 1, 0}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, -- {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, - {&__pyx_n_s_unset, __pyx_k_unset, sizeof(__pyx_k_unset), 0, 0, 1, 1}, - {&__pyx_kp_s_utf_8, __pyx_k_utf_8, sizeof(__pyx_k_utf_8), 0, 0, 1, 0}, - {&__pyx_n_s_varIndex, __pyx_k_varIndex, sizeof(__pyx_k_varIndex), 0, 0, 1, 1}, -@@ -10314,8 +8921,6 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(0, 99, __pyx_L1_error) - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 112, __pyx_L1_error) - __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 199, __pyx_L1_error) -- __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(2, 272, __pyx_L1_error) -- __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(2, 855, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -@@ -10344,82 +8949,27 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_GOTREF(__pyx_tuple__3); - __Pyx_GIVEREF(__pyx_tuple__3); - -- /* "../../.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") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 272, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__4); -- __Pyx_GIVEREF(__pyx_tuple__4); -- -- /* "../../.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") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(2, 276, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__5); -- __Pyx_GIVEREF(__pyx_tuple__5); -- -- /* "../../.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_tuple__6 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(2, 306, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__6); -- __Pyx_GIVEREF(__pyx_tuple__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_tuple__7 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__7); -- __Pyx_GIVEREF(__pyx_tuple__7); -- -- /* "../../.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_tuple__8 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(2, 879, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__8); -- __Pyx_GIVEREF(__pyx_tuple__8); -- -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1037 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(2, 1037, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__9); -- __Pyx_GIVEREF(__pyx_tuple__9); -+ __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 945, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__4); -+ __Pyx_GIVEREF(__pyx_tuple__4); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1043 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(2, 1043, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__10); -- __Pyx_GIVEREF(__pyx_tuple__10); -+ __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(2, 951, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__5); -+ __Pyx_GIVEREF(__pyx_tuple__5); - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; -@@ -10527,18 +9077,38 @@ static int __Pyx_modinit_type_import_code(void) { - __pyx_ptype_7cpython_7complex_complex = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "complex", sizeof(PyComplexObject), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_7cpython_7complex_complex) __PYX_ERR(5, 15, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 206, __pyx_L1_error) -+ __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 206, __pyx_L1_error) -- __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 229, __pyx_L1_error) -- __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 233, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 200, __pyx_L1_error) -+ __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 223, __pyx_L1_error) -+ __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 227, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 242, __pyx_L1_error) -- __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 917, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 239, __pyx_L1_error) -+ __pyx_ptype_5numpy_generic = __Pyx_ImportType(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 771, __pyx_L1_error) -+ __pyx_ptype_5numpy_number = __Pyx_ImportType(__pyx_t_1, "numpy", "number", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 773, __pyx_L1_error) -+ __pyx_ptype_5numpy_integer = __Pyx_ImportType(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 775, __pyx_L1_error) -+ __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 777, __pyx_L1_error) -+ __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 779, __pyx_L1_error) -+ __pyx_ptype_5numpy_inexact = __Pyx_ImportType(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 781, __pyx_L1_error) -+ __pyx_ptype_5numpy_floating = __Pyx_ImportType(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 783, __pyx_L1_error) -+ __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 785, __pyx_L1_error) -+ __pyx_ptype_5numpy_flexible = __Pyx_ImportType(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 787, __pyx_L1_error) -+ __pyx_ptype_5numpy_character = __Pyx_ImportType(__pyx_t_1, "numpy", "character", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 789, __pyx_L1_error) -+ __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 827, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyCgl"); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 103, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); -@@ -10827,11 +9397,9 @@ if (!__Pyx_RefNanny) { - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ -- #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS -- #ifdef WITH_THREAD /* Python build with threading support? */ -+ #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - PyEval_InitThreads(); - #endif -- #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; -@@ -11097,12 +9665,12 @@ if (!__Pyx_RefNanny) { - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_7) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1045 -- * raise ImportError("numpy.core.umath failed to import") -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -- * try: -- * _import_umath() -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ - - /*--- Wrapped vars code ---*/ -@@ -11300,7 +9868,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, - #if CYTHON_COMPILING_IN_CPYTHON - static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; -- ternaryfunc call = func->ob_type->tp_call; -+ ternaryfunc call = Py_TYPE(func)->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -@@ -11672,7 +10240,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec - if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { - return __Pyx_PyObject_CallMethO(func, arg); - #if CYTHON_FAST_PYCCALL -- } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { -+ } else if (__Pyx_PyFastCFunction_Check(func)) { - return __Pyx_PyCFunction_FastCall(func, &arg, 1); - #endif - } -@@ -12142,61 +10710,6 @@ static PyObject *__Pyx_PyObject_GetItem(PyObject *obj, PyObject* key) { - } - #endif - --/* DictGetItem */ --#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY --static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { -- PyObject *value; -- value = PyDict_GetItemWithError(d, key); -- if (unlikely(!value)) { -- if (!PyErr_Occurred()) { -- if (unlikely(PyTuple_Check(key))) { -- PyObject* args = PyTuple_Pack(1, key); -- if (likely(args)) { -- PyErr_SetObject(PyExc_KeyError, args); -- Py_DECREF(args); -- } -- } else { -- PyErr_SetObject(PyExc_KeyError, key); -- } -- } -- return NULL; -- } -- Py_INCREF(value); -- return value; --} --#endif -- --/* RaiseTooManyValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { -- PyErr_Format(PyExc_ValueError, -- "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); --} -- --/* RaiseNeedMoreValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { -- PyErr_Format(PyExc_ValueError, -- "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", -- index, (index == 1) ? "" : "s"); --} -- --/* RaiseNoneIterError */ --static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); --} -- --/* ExtTypeTest */ --static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { -- if (unlikely(!type)) { -- PyErr_SetString(PyExc_SystemError, "Missing type object"); -- return 0; -- } -- if (likely(__Pyx_TypeCheck(obj, type))) -- return 1; -- PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", -- Py_TYPE(obj)->tp_name, type->tp_name); -- return 0; --} -- - /* GetTopmostException */ - #if CYTHON_USE_EXC_INFO_STACK - static _PyErr_StackItem * -@@ -12718,7 +11231,7 @@ static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int - } - if (!use_cline) { - c_line = 0; -- PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); -+ (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; -@@ -12815,30 +11328,31 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { -- PyCodeObject *py_code = 0; -- PyObject *py_srcfile = 0; -- PyObject *py_funcname = 0; -+ PyCodeObject *py_code = NULL; -+ PyObject *py_funcname = NULL; - #if PY_MAJOR_VERSION < 3 -+ PyObject *py_srcfile = NULL; - py_srcfile = PyString_FromString(filename); -- #else -- py_srcfile = PyUnicode_FromString(filename); -- #endif - if (!py_srcfile) goto bad; -+ #endif - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; -+ funcname = PyUnicode_AsUTF8(py_funcname); -+ if (!funcname) goto bad; - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); -- #else -- py_funcname = PyUnicode_FromString(funcname); -+ if (!py_funcname) goto bad; - #endif - } -- if (!py_funcname) goto bad; -+ #if PY_MAJOR_VERSION < 3 - py_code = __Pyx_PyCode_New( - 0, - 0, -@@ -12857,11 +11371,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); -- Py_DECREF(py_funcname); -+ #else -+ py_code = PyCode_NewEmpty(filename, funcname, py_line); -+ #endif -+ Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline - return py_code; - bad: -- Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); -+ #if PY_MAJOR_VERSION < 3 -+ Py_XDECREF(py_srcfile); -+ #endif - return NULL; - } - static void __Pyx_AddTraceback(const char *funcname, int c_line, -@@ -12915,68 +11434,6 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - return (target_type) value;\ - } - --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(int) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(int) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(int) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(int), -- little, !is_unsigned); -- } --} -- --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(long) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(long) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(long) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(long), -- little, !is_unsigned); -- } --} -- - /* Declarations */ - #if CYTHON_CCOMPLEX - #ifdef __cplusplus -@@ -13285,40 +11742,16 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - #endif - #endif - --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { -- const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(enum NPY_TYPES) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(enum NPY_TYPES) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), -- little, !is_unsigned); -- } --} -- - /* CIntFromPy */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -13505,9 +11938,92 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - return (int) -1; - } - -+/* CIntToPy */ -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif -+ const int is_unsigned = neg_one > const_zero; -+ if (is_unsigned) { -+ if (sizeof(int) < sizeof(long)) { -+ return PyInt_FromLong((long) value); -+ } else if (sizeof(int) <= sizeof(unsigned long)) { -+ return PyLong_FromUnsignedLong((unsigned long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -+ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+#endif -+ } -+ } else { -+ if (sizeof(int) <= sizeof(long)) { -+ return PyInt_FromLong((long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -+ return PyLong_FromLongLong((PY_LONG_LONG) value); -+#endif -+ } -+ } -+ { -+ int one = 1; int little = (int)*(unsigned char *)&one; -+ unsigned char *bytes = (unsigned char *)&value; -+ return _PyLong_FromByteArray(bytes, sizeof(int), -+ little, !is_unsigned); -+ } -+} -+ -+/* CIntToPy */ -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif -+ const int is_unsigned = neg_one > const_zero; -+ if (is_unsigned) { -+ if (sizeof(long) < sizeof(long)) { -+ return PyInt_FromLong((long) value); -+ } else if (sizeof(long) <= sizeof(unsigned long)) { -+ return PyLong_FromUnsignedLong((unsigned long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -+ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+#endif -+ } -+ } else { -+ if (sizeof(long) <= sizeof(long)) { -+ return PyInt_FromLong((long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -+ return PyLong_FromLongLong((PY_LONG_LONG) value); -+#endif -+ } -+ } -+ { -+ int one = 1; int little = (int)*(unsigned char *)&one; -+ unsigned char *bytes = (unsigned char *)&value; -+ return _PyLong_FromByteArray(bytes, sizeof(long), -+ little, !is_unsigned); -+ } -+} -+ - /* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -14058,6 +12574,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_DECREF(x); - return ival; - } -+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { -+ if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { -+ return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); -+#if PY_MAJOR_VERSION < 3 -+ } else if (likely(PyInt_CheckExact(o))) { -+ return PyInt_AS_LONG(o); -+#endif -+ } else { -+ Py_ssize_t ival; -+ PyObject *x; -+ x = PyNumber_Index(o); -+ if (!x) return -1; -+ ival = PyInt_AsLong(x); -+ Py_DECREF(x); -+ return ival; -+ } -+} - static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); - } -diff --git a/cylp/cy/CyCbcNode.cpp b/cylp/cy/CyCbcNode.cpp -index a50a01a..c6b7608 100644 ---- a/cylp/cy/CyCbcNode.cpp -+++ b/cylp/cy/CyCbcNode.cpp -@@ -1,14 +1,16 @@ --/* Generated by Cython 0.29.12 */ -+/* 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_12" --#define CYTHON_HEX_VERSION 0x001D0CF0 -+#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) -@@ -449,7 +516,15 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) - #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) -+ #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 - #else - #define CYTHON_PEP393_ENABLED 0 - #define PyUnicode_1BYTE_KIND 1 -@@ -498,8 +573,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact -+#ifndef PyObject_Unicode - #define PyObject_Unicode PyObject_Str - #endif -+#endif - #if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) - #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) -@@ -510,6 +587,13 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #ifndef PySet_CheckExact - #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) - #endif -+#if PY_VERSION_HEX >= 0x030900A4 -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) -+#else -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) -+#endif - #if CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) - #else -@@ -543,13 +627,13 @@ 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) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) -+ #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) - #else - #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) - #endif -@@ -590,11 +674,10 @@ static CYTHON_INLINE float __PYX_NAN() { - #define __Pyx_truncl truncl - #endif - -- -+#define __PYX_MARK_ERR_POS(f_index, lineno) \ -+ { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } - #define __PYX_ERR(f_index, lineno, Ln_error) \ --{ \ -- __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ --} -+ { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } - - #ifndef __PYX_EXTERN_C - #ifdef __cplusplus -@@ -610,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 "ICbcNode.hpp" - #ifdef _OPENMP - #include -@@ -708,6 +797,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 -@@ -843,12 +933,12 @@ static const char *__pyx_filename; - - static const char *__pyx_f[] = { - "stringsource", -- "cylp\\cy\\CyCbcNode.pyx", -+ "cylp/cy/CyCbcNode.pyx", - "__init__.pxd", - "type.pxd", - }; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":776 -+/* "../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 # <<<<<<<<<<<<<< -@@ -857,7 +947,7 @@ static const char *__pyx_f[] = { - */ - typedef npy_int8 __pyx_t_5numpy_int8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":777 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":691 - * - * ctypedef npy_int8 int8_t - * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< -@@ -866,7 +956,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; - */ - typedef npy_int16 __pyx_t_5numpy_int16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":778 -+/* "../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 # <<<<<<<<<<<<<< -@@ -875,7 +965,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; - */ - typedef npy_int32 __pyx_t_5numpy_int32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":779 -+/* "../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 # <<<<<<<<<<<<<< -@@ -884,7 +974,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; - */ - typedef npy_int64 __pyx_t_5numpy_int64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":783 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":697 - * #ctypedef npy_int128 int128_t - * - * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< -@@ -893,7 +983,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; - */ - typedef npy_uint8 __pyx_t_5numpy_uint8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":784 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":698 - * - * ctypedef npy_uint8 uint8_t - * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< -@@ -902,7 +992,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; - */ - typedef npy_uint16 __pyx_t_5numpy_uint16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":785 -+/* "../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 # <<<<<<<<<<<<<< -@@ -911,7 +1001,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; - */ - typedef npy_uint32 __pyx_t_5numpy_uint32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":786 -+/* "../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 # <<<<<<<<<<<<<< -@@ -920,7 +1010,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; - */ - typedef npy_uint64 __pyx_t_5numpy_uint64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":790 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":704 - * #ctypedef npy_uint128 uint128_t - * - * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< -@@ -929,7 +1019,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; - */ - typedef npy_float32 __pyx_t_5numpy_float32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":791 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":705 - * - * ctypedef npy_float32 float32_t - * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< -@@ -938,7 +1028,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; - */ - typedef npy_float64 __pyx_t_5numpy_float64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":800 -+/* "../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 # <<<<<<<<<<<<<< -@@ -947,7 +1037,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; - */ - typedef npy_long __pyx_t_5numpy_int_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":801 -+/* "../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 # <<<<<<<<<<<<<< -@@ -956,7 +1046,7 @@ typedef npy_long __pyx_t_5numpy_int_t; - */ - typedef npy_longlong __pyx_t_5numpy_long_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":802 -+/* "../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 # <<<<<<<<<<<<<< -@@ -965,7 +1055,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; - */ - typedef npy_longlong __pyx_t_5numpy_longlong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":804 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":718 - * ctypedef npy_longlong longlong_t - * - * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< -@@ -974,7 +1064,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; - */ - typedef npy_ulong __pyx_t_5numpy_uint_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":805 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":719 - * - * ctypedef npy_ulong uint_t - * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< -@@ -983,7 +1073,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":806 -+/* "../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 # <<<<<<<<<<<<<< -@@ -992,7 +1082,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":808 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":722 - * ctypedef npy_ulonglong ulonglong_t - * - * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< -@@ -1001,7 +1091,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - */ - typedef npy_intp __pyx_t_5numpy_intp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":809 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":723 - * - * ctypedef npy_intp intp_t - * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< -@@ -1010,7 +1100,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; - */ - typedef npy_uintp __pyx_t_5numpy_uintp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":811 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":725 - * ctypedef npy_uintp uintp_t - * - * ctypedef npy_double float_t # <<<<<<<<<<<<<< -@@ -1019,7 +1109,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; - */ - typedef npy_double __pyx_t_5numpy_float_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":812 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":726 - * - * ctypedef npy_double float_t - * ctypedef npy_double double_t # <<<<<<<<<<<<<< -@@ -1028,7 +1118,7 @@ typedef npy_double __pyx_t_5numpy_float_t; - */ - typedef npy_double __pyx_t_5numpy_double_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":813 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1064,7 +1154,7 @@ static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(do - /*--- Type declarations ---*/ - struct __pyx_obj_4cylp_2cy_9CyCbcNode_CyCbcNode; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":815 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":729 - * ctypedef npy_longdouble longdouble_t - * - * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< -@@ -1073,7 +1163,7 @@ struct __pyx_obj_4cylp_2cy_9CyCbcNode_CyCbcNode; - */ - typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":816 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":730 - * - * ctypedef npy_cfloat cfloat_t - * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< -@@ -1082,7 +1172,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - */ - typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":817 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1091,7 +1181,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - */ - typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":819 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":733 - * ctypedef npy_clongdouble clongdouble_t - * - * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< -@@ -1261,67 +1351,6 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - /* RaiseException.proto */ - static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); - --/* PyCFunctionFastCall.proto */ --#if CYTHON_FAST_PYCCALL --static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); --#else --#define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) --#endif -- --/* PyFunctionFastCall.proto */ --#if CYTHON_FAST_PYCALL --#define __Pyx_PyFunction_FastCall(func, args, nargs)\ -- __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) --#if 1 || PY_VERSION_HEX < 0x030600B1 --static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); --#else --#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) --#endif --#define __Pyx_BUILD_ASSERT_EXPR(cond)\ -- (sizeof(char [1 - 2*!(cond)]) - 1) --#ifndef Py_MEMBER_SIZE --#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) --#endif -- static size_t __pyx_pyframe_localsplus_offset = 0; -- #include "frameobject.h" -- #define __Pxy_PyFrame_Initialize_Offsets()\ -- ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ -- (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) -- #define __Pyx_PyFrame_GetLocalsplus(frame)\ -- (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) --#endif -- --/* PyObjectCallMethO.proto */ --#if CYTHON_COMPILING_IN_CPYTHON --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); --#endif -- --/* PyObjectCallOneArg.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); -- --/* 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); -@@ -1371,6 +1400,9 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam - /* SetVTable.proto */ - static int __Pyx_SetVtable(PyObject *dict, void *vtable); - -+/* PyObjectGetAttrStrNoError.proto */ -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); -+ - /* SetupReduce.proto */ - static int __Pyx_setup_reduce(PyObject* type_obj); - -@@ -1479,8 +1511,10 @@ static void __Pyx_CppExn2PyErr() { - } - #endif - --/* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); -+/* GCCDiagnostics.proto */ -+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -+#define __Pyx_HAS_GCC_DIAGNOSTIC -+#endif - - /* RealImag.proto */ - #if CYTHON_CCOMPLEX -@@ -1581,10 +1615,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); - #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 *); -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); - - /* CIntToPy.proto */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); -@@ -1592,6 +1623,9 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); - /* CIntFromPy.proto */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); - -+/* CIntFromPy.proto */ -+static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); -+ - /* FastTypeChecks.proto */ - #if CYTHON_COMPILING_IN_CPYTHON - #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) -@@ -1639,8 +1673,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.CyCbcNode' */ - static PyTypeObject *__pyx_ptype_4cylp_2cy_9CyCbcNode_CyCbcNode = 0; -@@ -1650,62 +1693,41 @@ int __pyx_module_is_main_cylp__cy__CyCbcNode = 0; - - /* Implementation of 'cylp.cy.CyCbcNode' */ - static PyObject *__pyx_builtin_TypeError; --static PyObject *__pyx_builtin_ValueError; --static PyObject *__pyx_builtin_range; --static PyObject *__pyx_builtin_RuntimeError; - static PyObject *__pyx_builtin_ImportError; - static const char __pyx_k_main[] = "__main__"; - static const char __pyx_k_name[] = "__name__"; - static const char __pyx_k_test[] = "__test__"; --static const char __pyx_k_range[] = "range"; - static const char __pyx_k_reduce[] = "__reduce__"; - static const char __pyx_k_getstate[] = "__getstate__"; - static const char __pyx_k_setstate[] = "__setstate__"; - static const char __pyx_k_CyCbcNode[] = "CyCbcNode"; - static const char __pyx_k_TypeError[] = "TypeError"; - static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; --static const char __pyx_k_ValueError[] = "ValueError"; - static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; - static const char __pyx_k_ImportError[] = "ImportError"; --static const char __pyx_k_RuntimeError[] = "RuntimeError"; - static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; - static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; - static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; --static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; - static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import"; --static const char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%d)"; --static const char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; --static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; --static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; - static const char __pyx_k_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_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; - static PyObject *__pyx_n_s_CyCbcNode; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; - static PyObject *__pyx_n_s_ImportError; --static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; --static PyObject *__pyx_n_s_RuntimeError; - static PyObject *__pyx_n_s_TypeError; --static PyObject *__pyx_n_s_ValueError; - static PyObject *__pyx_n_s_cline_in_traceback; - static PyObject *__pyx_n_s_getstate; - static PyObject *__pyx_n_s_main; - static PyObject *__pyx_n_s_name; --static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous; --static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou; - static PyObject *__pyx_kp_s_no_default___reduce___due_to_non; - static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; - static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; - static PyObject *__pyx_n_s_pyx_vtable; --static PyObject *__pyx_n_s_range; - static PyObject *__pyx_n_s_reduce; - static PyObject *__pyx_n_s_reduce_cython; - static PyObject *__pyx_n_s_reduce_ex; - static PyObject *__pyx_n_s_setstate; - static PyObject *__pyx_n_s_setstate_cython; - static PyObject *__pyx_n_s_test; --static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; - static int __pyx_pf_4cylp_2cy_9CyCbcNode_9CyCbcNode___cinit__(struct __pyx_obj_4cylp_2cy_9CyCbcNode_CyCbcNode *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_9CyCbcNode_9CyCbcNode_5depth___get__(struct __pyx_obj_4cylp_2cy_9CyCbcNode_CyCbcNode *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_9CyCbcNode_9CyCbcNode_17numberUnsatisfied___get__(struct __pyx_obj_4cylp_2cy_9CyCbcNode_CyCbcNode *__pyx_v_self); /* proto */ -@@ -1716,18 +1738,11 @@ static PyObject *__pyx_pf_4cylp_2cy_9CyCbcNode_9CyCbcNode_14objectiveValue___get - static PyObject *__pyx_pf_4cylp_2cy_9CyCbcNode_9CyCbcNode_2breakTie(struct __pyx_obj_4cylp_2cy_9CyCbcNode_CyCbcNode *__pyx_v_self, struct __pyx_obj_4cylp_2cy_9CyCbcNode_CyCbcNode *__pyx_v_y); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_9CyCbcNode_9CyCbcNode_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_9CyCbcNode_CyCbcNode *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_9CyCbcNode_9CyCbcNode_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_9CyCbcNode_CyCbcNode *__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_9CyCbcNode_CyCbcNode(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ - static PyObject *__pyx_tuple_; - static PyObject *__pyx_tuple__2; - static PyObject *__pyx_tuple__3; - static PyObject *__pyx_tuple__4; --static PyObject *__pyx_tuple__5; --static PyObject *__pyx_tuple__6; --static PyObject *__pyx_tuple__7; --static PyObject *__pyx_tuple__8; --static PyObject *__pyx_tuple__9; - /* Late includes */ - - /* "cylp/cy/CyCbcNode.pyx":7 -@@ -1758,6 +1773,9 @@ static int __pyx_pf_4cylp_2cy_9CyCbcNode_9CyCbcNode___cinit__(struct __pyx_obj_4 - int __pyx_r; - __Pyx_RefNannyDeclarations - ICbcNode *__pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 0); - - /* "cylp/cy/CyCbcNode.pyx":8 -@@ -1868,6 +1886,9 @@ static PyObject *__pyx_pf_4cylp_2cy_9CyCbcNode_9CyCbcNode_5depth___get__(struct - 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("__get__", 0); - - /* "cylp/cy/CyCbcNode.pyx":16 -@@ -1928,6 +1949,9 @@ static PyObject *__pyx_pf_4cylp_2cy_9CyCbcNode_9CyCbcNode_17numberUnsatisfied___ - 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("__get__", 0); - - /* "cylp/cy/CyCbcNode.pyx":20 -@@ -1988,6 +2012,9 @@ static PyObject *__pyx_pf_4cylp_2cy_9CyCbcNode_9CyCbcNode_18sumInfeasibilities__ - 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("__get__", 0); - - /* "cylp/cy/CyCbcNode.pyx":24 -@@ -2048,6 +2075,9 @@ static PyObject *__pyx_pf_4cylp_2cy_9CyCbcNode_9CyCbcNode_6active___get__(struct - 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("__get__", 0); - - /* "cylp/cy/CyCbcNode.pyx":28 -@@ -2108,6 +2138,9 @@ static PyObject *__pyx_pf_4cylp_2cy_9CyCbcNode_9CyCbcNode_6onTree___get__(struct - 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("__get__", 0); - - /* "cylp/cy/CyCbcNode.pyx":32 -@@ -2168,6 +2201,9 @@ static PyObject *__pyx_pf_4cylp_2cy_9CyCbcNode_9CyCbcNode_14objectiveValue___get - 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("__get__", 0); - - /* "cylp/cy/CyCbcNode.pyx":36 -@@ -2214,6 +2250,9 @@ static PyObject *__pyx_pf_4cylp_2cy_9CyCbcNode_9CyCbcNode_14objectiveValue___get - static PyObject *__pyx_pw_4cylp_2cy_9CyCbcNode_9CyCbcNode_3breakTie(PyObject *__pyx_v_self, PyObject *__pyx_v_y); /*proto*/ - static char __pyx_doc_4cylp_2cy_9CyCbcNode_9CyCbcNode_2breakTie[] = "CyCbcNode.breakTie(self, CyCbcNode y)"; - static PyObject *__pyx_pw_4cylp_2cy_9CyCbcNode_9CyCbcNode_3breakTie(PyObject *__pyx_v_self, PyObject *__pyx_v_y) { -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("breakTie (wrapper)", 0); -@@ -2233,6 +2272,9 @@ static PyObject *__pyx_pf_4cylp_2cy_9CyCbcNode_9CyCbcNode_2breakTie(struct __pyx - 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("breakTie", 0); - - /* "cylp/cy/CyCbcNode.pyx":39 -@@ -2289,6 +2331,9 @@ static PyObject *__pyx_pf_4cylp_2cy_9CyCbcNode_9CyCbcNode_4__reduce_cython__(CYT - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -2344,6 +2389,9 @@ static PyObject *__pyx_pf_4cylp_2cy_9CyCbcNode_9CyCbcNode_6__setstate_cython__(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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -2374,1084 +2422,243 @@ static PyObject *__pyx_pf_4cylp_2cy_9CyCbcNode_9CyCbcNode_6__setstate_cython__(C - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/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; -- 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); -+ PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; -+ __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":265 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":736 - * -- * cdef int i, ndim -- * cdef int endian_detector = 1 # <<<<<<<<<<<<<< -- * cdef bint little_endian = ((&endian_detector)[0] != 0) -- * -- */ -- __pyx_v_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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); - -- /* "../../../../Users/tkral/Anaconda3/lib/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; -+} - -- /* "../../../../Users/tkral/Anaconda3/lib/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:; - -- /* "../../../../Users/tkral/Anaconda3/lib/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); - -- /* "../../../../Users/tkral/Anaconda3/lib/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__3, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } - -- /* "../../../../Users/tkral/Anaconda3/lib/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:; - -- /* "../../../../Users/tkral/Anaconda3/lib/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); - -- /* "../../../../Users/tkral/Anaconda3/lib/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__4, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)))); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- */ -- (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } - -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- /*else*/ { -- __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); -+ /* 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; -+} - -- /* "../../../../Users/tkral/Anaconda3/lib/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:; - -- /* "../../../../Users/tkral/Anaconda3/lib/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; -+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); - -- /* "../../../../Users/tkral/Anaconda3/lib/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":745 - * -- */ -- __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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_MultiIterNew4(a, b, c, d): -+ * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< - * -- * cdef int t -+ * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): - */ -- __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":296 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":744 -+ * return PyArray_MultiIterNew(3, a, b, c) - * -- * cdef int t -- * cdef char* f = NULL # <<<<<<<<<<<<<< -- * cdef dtype descr = PyArray_DESCR(self) -- * cdef int offset -- */ -- __pyx_v_f = NULL; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":297 -- * cdef int t -- * cdef char* f = NULL -- * cdef dtype descr = PyArray_DESCR(self) # <<<<<<<<<<<<<< -- * cdef int offset -+ * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< -+ * return PyArray_MultiIterNew(4, a, b, c, 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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":300 -- * cdef int offset -+ /* 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; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 -+ * return PyArray_MultiIterNew(4, a, b, c, d) - * -- * info.obj = self # <<<<<<<<<<<<<< -+ * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -+ * return PyArray_MultiIterNew(5, a, b, c, d, e) - * -- * 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -+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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":303 -+ /* "../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) # <<<<<<<<<<<<<< - * -- * if not PyDataType_HASFIELDS(descr): -- * t = descr.type_num # <<<<<<<<<<<<<< -- * if ((descr.byteorder == c'>' and little_endian) or -- * (descr.byteorder == c'<' and not little_endian)): -+ * cdef inline tuple PyDataType_SHAPE(dtype d): - */ -- __pyx_t_4 = __pyx_v_descr->type_num; -- __pyx_v_t = __pyx_t_4; -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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__5, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]) = '^'; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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'; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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): -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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(); --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -- * 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; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":822 -- * -- * 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, 822, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -- * 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -- * 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; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":825 -- * -- * 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, 825, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -- * 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -- * 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; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":828 -- * -- * 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, 828, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -- * 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -- * 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; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":831 -- * -- * 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, 831, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -- * 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -- * 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; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":834 -- * -- * 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, 834, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -- * 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) -- * -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 -+ * 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) -+ * - */ - - /* function exit code */ -@@ -3465,7 +2672,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -@@ -3479,7 +2686,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - int __pyx_t_1; - __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -@@ -3489,7 +2696,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); - if (__pyx_t_1) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":838 -+ /* "../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 # <<<<<<<<<<<<<< -@@ -3501,7 +2708,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -@@ -3510,12 +2717,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":840 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":754 - * 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); -@@ -3524,768 +2731,22 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - goto __pyx_L0; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 - * 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -- * -- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< -- * # Recursive utility function used in __getbuffer__ to get format -- * # string. The new location in the format string is returned. -- */ -- --static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) { -- PyArray_Descr *__pyx_v_child = 0; -- int __pyx_v_endian_detector; -- int __pyx_v_little_endian; -- PyObject *__pyx_v_fields = 0; -- PyObject *__pyx_v_childname = NULL; -- PyObject *__pyx_v_new_offset = NULL; -- PyObject *__pyx_v_t = NULL; -- char *__pyx_r; -- __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- Py_ssize_t __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- PyObject *__pyx_t_4 = NULL; -- int __pyx_t_5; -- int __pyx_t_6; -- int __pyx_t_7; -- long __pyx_t_8; -- char *__pyx_t_9; -- __Pyx_RefNannySetupContext("_util_dtypestring", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":848 -- * 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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- if (unlikely(__pyx_v_descr->names == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -- __PYX_ERR(2, 851, __pyx_L1_error) -- } -- __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; -- for (;;) { -- if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; -- #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, 851, __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, 851, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- #endif -- __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":852 -- * -- * for childname in descr.names: -- * fields = descr.fields[childname] # <<<<<<<<<<<<<< -- * child, new_offset = fields -- * -- */ -- if (unlikely(__pyx_v_descr->fields == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -- __PYX_ERR(2, 852, __pyx_L1_error) -- } -- __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":853 -- * 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, 853, __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, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- #endif -- } else { -- __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 853, __pyx_L1_error) -- } -- if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3)); -- __pyx_t_3 = 0; -- __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 856, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0); -- if (!__pyx_t_7) { -- goto __pyx_L8_next_or; -- } else { -- } -- __pyx_t_7 = (__pyx_v_little_endian != 0); -- if (!__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_L8_next_or:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":859 -- * -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< -- * raise ValueError(u"Non-native byte order not supported") -- * # One could encode it in the format string and have Cython -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0); -- if (__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0); -- __pyx_t_6 = __pyx_t_7; -- __pyx_L7_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":860 -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * # One could encode it in the format string and have Cython -- * # complain instead, BUT: < and > in format strings also imply -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 860, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 860, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":870 -- * -- * # Output padding bytes -- * while offset[0] < new_offset: # <<<<<<<<<<<<<< -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- */ -- while (1) { -- __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (!__pyx_t_6) break; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":871 -- * # Output padding bytes -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< -- * f += 1 -- * offset[0] += 1 -- */ -- (__pyx_v_f[0]) = 0x78; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":872 -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte -- * f += 1 # <<<<<<<<<<<<<< -- * offset[0] += 1 -- * -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":873 -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- * offset[0] += 1 # <<<<<<<<<<<<<< -- * -- * offset[0] += child.itemsize -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":875 -- * offset[0] += 1 -- * -- * offset[0] += child.itemsize # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(child): -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); -- if (__pyx_t_6) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":878 -- * -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num # <<<<<<<<<<<<<< -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") -- */ -- __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 878, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 880, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":883 -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 98; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":884 -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":885 -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x68; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":886 -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 72; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":887 -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x69; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":888 -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 73; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":889 -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x6C; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":890 -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 76; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":891 -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x71; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":892 -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 81; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":893 -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":894 -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x64; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":895 -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x67; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":896 -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x66; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":897 -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x64; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":898 -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x67; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":899 -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (likely(__pyx_t_6)) { -- (__pyx_v_f[0]) = 79; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":901 -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< -- * f += 1 -- * else: -- */ -- /*else*/ { -- __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 901, __pyx_L1_error) -- } -- __pyx_L15:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":902 -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- * f += 1 # <<<<<<<<<<<<<< -- * else: -- * # Cython ignores struct boundary information ("T{...}"), -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- goto __pyx_L13; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":906 -- * # Cython ignores struct boundary information ("T{...}"), -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< -- * return f -- * -- */ -- /*else*/ { -- __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(2, 906, __pyx_L1_error) -- __pyx_v_f = __pyx_t_9; -- } -- __pyx_L13:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- } -- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":907 -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) -- * return f # <<<<<<<<<<<<<< -- * -- * -- */ -- __pyx_r = __pyx_v_f; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -- * -- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< -- * # Recursive utility function used in __getbuffer__ to get format -- * # string. The new location in the format string is returned. -+ * 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; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -+/* "../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): # <<<<<<<<<<<<<< -@@ -4297,7 +2758,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1023 -+ /* "../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! # <<<<<<<<<<<<<< -@@ -4306,7 +2767,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - Py_INCREF(__pyx_v_base); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1024 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -4315,7 +2776,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -4327,7 +2788,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyFinishContext(); - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+/* "../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): # <<<<<<<<<<<<<< -@@ -4342,7 +2803,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - int __pyx_t_1; - __Pyx_RefNannySetupContext("get_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1027 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -4351,7 +2812,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - __pyx_v_base = PyArray_BASE(__pyx_v_arr); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -4361,7 +2822,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) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1029 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":936 - * base = PyArray_BASE(arr) - * if base is NULL: - * return None # <<<<<<<<<<<<<< -@@ -4372,7 +2833,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -4381,7 +2842,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1030 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":937 - * if base is NULL: - * return None - * return base # <<<<<<<<<<<<<< -@@ -4393,7 +2854,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = ((PyObject *)__pyx_v_base); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -4408,12 +2869,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { -@@ -4427,13 +2888,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_array", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - { -@@ -4445,20 +2909,20 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1036 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":943 - * cdef inline int import_array() except -1: - * try: -- * _import_array() # <<<<<<<<<<<<<< -+ * __pyx_import_array() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") - */ -- __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1036, __pyx_L3_error) -+ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 943, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - } -@@ -4468,9 +2932,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1037 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":944 - * try: -- * _import_array() -+ * __pyx_import_array() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.multiarray failed to import") - * -@@ -4478,32 +2942,32 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1037, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 944, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 945, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __PYX_ERR(2, 945, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - __Pyx_XGIVEREF(__pyx_t_1); -@@ -4514,12 +2978,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - /* function exit code */ -@@ -4537,7 +3001,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -4556,9 +3020,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_umath", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -4574,16 +3041,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1042 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":949 - * cdef inline int import_umath() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1042, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 949, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -4597,7 +3064,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1043 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":950 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< -@@ -4607,28 +3074,28 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1043, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 950, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 951, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __PYX_ERR(2, 951, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -4643,7 +3110,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -4666,7 +3133,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -4685,9 +3152,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_ufunc", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -4703,16 +3173,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1048 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":955 - * cdef inline int import_ufunc() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1048, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 955, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -4726,35 +3196,38 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1049 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":956 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.umath failed to import") -+ * - */ - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1049, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 956, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1050 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":957 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< -+ * -+ * cdef extern from *: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 957, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __PYX_ERR(2, 957, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -4769,7 +3242,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -4791,6 +3264,180 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_RefNannyFinishContext(); - return __pyx_r; - } -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_timedelta64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":979 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_datetime64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":994 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { -+ npy_datetime __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1004 -+ * also needed. That can be found using `get_datetime64_unit`. -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { -+ npy_timedelta __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1011 -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { -+ NPY_DATETIMEUNIT __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1018 -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ * """ -+ * return (obj).obmeta.base # <<<<<<<<<<<<<< -+ */ -+ __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} - static struct __pyx_vtabstruct_4cylp_2cy_9CyCbcNode_CyCbcNode __pyx_vtable_4cylp_2cy_9CyCbcNode_CyCbcNode; - - static PyObject *__pyx_tp_new_4cylp_2cy_9CyCbcNode_CyCbcNode(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { -@@ -4867,7 +3514,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_9CyCbcNode_CyCbcNode = { - sizeof(struct __pyx_obj_4cylp_2cy_9CyCbcNode_CyCbcNode), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_9CyCbcNode_CyCbcNode, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -4920,6 +3572,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_9CyCbcNode_CyCbcNode = { - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyMethodDef __pyx_methods[] = { -@@ -4969,39 +3627,27 @@ static struct PyModuleDef __pyx_moduledef = { - - static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_CyCbcNode, __pyx_k_CyCbcNode, sizeof(__pyx_k_CyCbcNode), 0, 0, 1, 1}, -- {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, -- {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, - {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, -- {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, -- {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, -- {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, - {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, -- {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, -- {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, - {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0}, - {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0}, - {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0}, - {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, -- {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, - {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, - {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, -- {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, - {0, 0, 0, 0, 0, 0, 0} - }; - static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 2, __pyx_L1_error) -- __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(2, 272, __pyx_L1_error) -- __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(2, 285, __pyx_L1_error) -- __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(2, 856, __pyx_L1_error) -- __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 1038, __pyx_L1_error) -+ __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 945, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -@@ -5030,82 +3676,27 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_GOTREF(__pyx_tuple__2); - __Pyx_GIVEREF(__pyx_tuple__2); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":272 -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(2, 272, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__3); -- __Pyx_GIVEREF(__pyx_tuple__3); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":276 -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 276, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__4); -- __Pyx_GIVEREF(__pyx_tuple__4); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":306 -- * if ((descr.byteorder == c'>' and little_endian) or -- * (descr.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * if t == NPY_BYTE: f = "b" -- * elif t == NPY_UBYTE: f = "B" -- */ -- __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(2, 306, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__5); -- __Pyx_GIVEREF(__pyx_tuple__5); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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_tuple__6 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__6); -- __Pyx_GIVEREF(__pyx_tuple__6); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__7); -- __Pyx_GIVEREF(__pyx_tuple__7); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(2, 1038, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__8); -- __Pyx_GIVEREF(__pyx_tuple__8); -+ __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(2, 945, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__3); -+ __Pyx_GIVEREF(__pyx_tuple__3); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(2, 1044, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__9); -- __Pyx_GIVEREF(__pyx_tuple__9); -+ __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 951, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__4); -+ __Pyx_GIVEREF(__pyx_tuple__4); - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; -@@ -5154,6 +3745,9 @@ static int __Pyx_modinit_function_export_code(void) { - - static int __Pyx_modinit_type_init_code(void) { - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ - __pyx_vtabptr_4cylp_2cy_9CyCbcNode_CyCbcNode = &__pyx_vtable_4cylp_2cy_9CyCbcNode_CyCbcNode; -@@ -5179,6 +3773,9 @@ static int __Pyx_modinit_type_init_code(void) { - static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error) -@@ -5192,18 +3789,38 @@ static int __Pyx_modinit_type_import_code(void) { - __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(3, 9, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 206, __pyx_L1_error) -+ __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 206, __pyx_L1_error) -- __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 229, __pyx_L1_error) -- __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 233, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 200, __pyx_L1_error) -+ __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 223, __pyx_L1_error) -+ __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 227, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 242, __pyx_L1_error) -- __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 918, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 239, __pyx_L1_error) -+ __pyx_ptype_5numpy_generic = __Pyx_ImportType(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 771, __pyx_L1_error) -+ __pyx_ptype_5numpy_number = __Pyx_ImportType(__pyx_t_1, "numpy", "number", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 773, __pyx_L1_error) -+ __pyx_ptype_5numpy_integer = __Pyx_ImportType(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 775, __pyx_L1_error) -+ __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 777, __pyx_L1_error) -+ __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 779, __pyx_L1_error) -+ __pyx_ptype_5numpy_inexact = __Pyx_ImportType(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 781, __pyx_L1_error) -+ __pyx_ptype_5numpy_floating = __Pyx_ImportType(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 783, __pyx_L1_error) -+ __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 785, __pyx_L1_error) -+ __pyx_ptype_5numpy_flexible = __Pyx_ImportType(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 787, __pyx_L1_error) -+ __pyx_ptype_5numpy_character = __Pyx_ImportType(__pyx_t_1, "numpy", "character", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 789, __pyx_L1_error) -+ __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 827, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_RefNannyFinishContext(); - return 0; -@@ -5230,17 +3847,19 @@ static int __Pyx_modinit_function_import_code(void) { - } - - --#if PY_MAJOR_VERSION < 3 --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC void --#else -+#ifndef CYTHON_NO_PYINIT_EXPORT - #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#elif PY_MAJOR_VERSION < 3 -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" void -+#else -+#define __Pyx_PyMODINIT_FUNC void - #endif - #else --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC PyObject * -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * - #else --#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#define __Pyx_PyMODINIT_FUNC PyObject * - #endif - #endif - -@@ -5322,6 +3941,9 @@ static CYTHON_SMALL_CODE int __pyx_pymod_exec_CyCbcNode(PyObject *__pyx_pyinit_m - #endif - { - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { -@@ -5369,11 +3991,9 @@ if (!__Pyx_RefNanny) { - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ -- #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS -- #ifdef WITH_THREAD /* Python build with threading support? */ -+ #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - PyEval_InitThreads(); - #endif -- #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; -@@ -5410,15 +4030,15 @@ if (!__Pyx_RefNanny) { - } - #endif - /*--- Builtin init code ---*/ -- if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Constants init code ---*/ -- if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(); - (void)__Pyx_modinit_variable_export_code(); - (void)__Pyx_modinit_function_export_code(); -- if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; -- if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; -+ if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) -+ if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) - (void)__Pyx_modinit_variable_import_code(); - (void)__Pyx_modinit_function_import_code(); - /*--- Execution code ---*/ -@@ -5436,12 +4056,12 @@ if (!__Pyx_RefNanny) { - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -- * raise ImportError("numpy.core.umath failed to import") -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -- * try: -- * _import_umath() -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ - - /*--- Wrapped vars code ---*/ -@@ -5605,7 +4225,7 @@ static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *nam - #if CYTHON_COMPILING_IN_CPYTHON - static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; -- ternaryfunc call = func->ob_type->tp_call; -+ ternaryfunc call = Py_TYPE(func)->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -@@ -5804,263 +4424,6 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject - } - #endif - --/* PyCFunctionFastCall */ --#if CYTHON_FAST_PYCCALL --static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { -- PyCFunctionObject *func = (PyCFunctionObject*)func_obj; -- PyCFunction meth = PyCFunction_GET_FUNCTION(func); -- PyObject *self = PyCFunction_GET_SELF(func); -- int flags = PyCFunction_GET_FLAGS(func); -- assert(PyCFunction_Check(func)); -- assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); -- assert(nargs >= 0); -- assert(nargs == 0 || args != NULL); -- /* _PyCFunction_FastCallDict() must not be called with an exception set, -- because it may clear it (directly or indirectly) and so the -- caller loses its exception */ -- assert(!PyErr_Occurred()); -- if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { -- return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); -- } else { -- return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); -- } --} --#endif -- --/* PyFunctionFastCall */ --#if CYTHON_FAST_PYCALL --static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, -- PyObject *globals) { -- PyFrameObject *f; -- PyThreadState *tstate = __Pyx_PyThreadState_Current; -- PyObject **fastlocals; -- Py_ssize_t i; -- PyObject *result; -- assert(globals != NULL); -- /* XXX Perhaps we should create a specialized -- PyFrame_New() that doesn't take locals, but does -- take builtins without sanity checking them. -- */ -- assert(tstate != NULL); -- f = PyFrame_New(tstate, co, globals, NULL); -- if (f == NULL) { -- return NULL; -- } -- fastlocals = __Pyx_PyFrame_GetLocalsplus(f); -- for (i = 0; i < na; i++) { -- Py_INCREF(*args); -- fastlocals[i] = *args++; -- } -- result = PyEval_EvalFrameEx(f,0); -- ++tstate->recursion_depth; -- Py_DECREF(f); -- --tstate->recursion_depth; -- return result; --} --#if 1 || PY_VERSION_HEX < 0x030600B1 --static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { -- PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); -- PyObject *globals = PyFunction_GET_GLOBALS(func); -- PyObject *argdefs = PyFunction_GET_DEFAULTS(func); -- PyObject *closure; --#if PY_MAJOR_VERSION >= 3 -- PyObject *kwdefs; --#endif -- PyObject *kwtuple, **k; -- PyObject **d; -- Py_ssize_t nd; -- Py_ssize_t nk; -- PyObject *result; -- assert(kwargs == NULL || PyDict_Check(kwargs)); -- nk = kwargs ? PyDict_Size(kwargs) : 0; -- if (Py_EnterRecursiveCall((char*)" while calling a Python object")) { -- return NULL; -- } -- if ( --#if PY_MAJOR_VERSION >= 3 -- co->co_kwonlyargcount == 0 && --#endif -- likely(kwargs == NULL || nk == 0) && -- co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { -- if (argdefs == NULL && co->co_argcount == nargs) { -- result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); -- goto done; -- } -- else if (nargs == 0 && argdefs != NULL -- && co->co_argcount == Py_SIZE(argdefs)) { -- /* function called with no arguments, but all parameters have -- a default value: use default values as arguments .*/ -- args = &PyTuple_GET_ITEM(argdefs, 0); -- result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); -- goto done; -- } -- } -- if (kwargs != NULL) { -- Py_ssize_t pos, i; -- kwtuple = PyTuple_New(2 * nk); -- if (kwtuple == NULL) { -- result = NULL; -- goto done; -- } -- k = &PyTuple_GET_ITEM(kwtuple, 0); -- pos = i = 0; -- while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { -- Py_INCREF(k[i]); -- Py_INCREF(k[i+1]); -- i += 2; -- } -- nk = i / 2; -- } -- else { -- kwtuple = NULL; -- k = NULL; -- } -- closure = PyFunction_GET_CLOSURE(func); --#if PY_MAJOR_VERSION >= 3 -- kwdefs = PyFunction_GET_KW_DEFAULTS(func); --#endif -- if (argdefs != NULL) { -- d = &PyTuple_GET_ITEM(argdefs, 0); -- nd = Py_SIZE(argdefs); -- } -- else { -- d = NULL; -- nd = 0; -- } --#if PY_MAJOR_VERSION >= 3 -- result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, -- args, (int)nargs, -- k, (int)nk, -- d, (int)nd, kwdefs, closure); --#else -- result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, -- args, (int)nargs, -- k, (int)nk, -- d, (int)nd, closure); --#endif -- Py_XDECREF(kwtuple); --done: -- Py_LeaveRecursiveCall(); -- return result; --} --#endif --#endif -- --/* PyObjectCallMethO */ --#if CYTHON_COMPILING_IN_CPYTHON --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { -- PyObject *self, *result; -- PyCFunction cfunc; -- cfunc = PyCFunction_GET_FUNCTION(func); -- self = PyCFunction_GET_SELF(func); -- if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -- return NULL; -- result = cfunc(self, arg); -- Py_LeaveRecursiveCall(); -- if (unlikely(!result) && unlikely(!PyErr_Occurred())) { -- PyErr_SetString( -- PyExc_SystemError, -- "NULL result without error in PyObject_Call"); -- } -- return result; --} --#endif -- --/* PyObjectCallOneArg */ --#if CYTHON_COMPILING_IN_CPYTHON --static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { -- PyObject *result; -- PyObject *args = PyTuple_New(1); -- if (unlikely(!args)) return NULL; -- Py_INCREF(arg); -- PyTuple_SET_ITEM(args, 0, arg); -- result = __Pyx_PyObject_Call(func, args, NULL); -- Py_DECREF(args); -- return result; --} --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { --#if CYTHON_FAST_PYCALL -- if (PyFunction_Check(func)) { -- return __Pyx_PyFunction_FastCall(func, &arg, 1); -- } --#endif -- if (likely(PyCFunction_Check(func))) { -- if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { -- return __Pyx_PyObject_CallMethO(func, arg); --#if CYTHON_FAST_PYCCALL -- } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { -- return __Pyx_PyCFunction_FastCall(func, &arg, 1); --#endif -- } -- } -- return __Pyx__PyObject_CallOneArg(func, arg); --} --#else --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { -- PyObject *result; -- PyObject *args = PyTuple_Pack(1, arg); -- if (unlikely(!args)) return NULL; -- result = __Pyx_PyObject_Call(func, args, NULL); -- Py_DECREF(args); -- return result; --} --#endif -- --/* DictGetItem */ --#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY --static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { -- PyObject *value; -- value = PyDict_GetItemWithError(d, key); -- if (unlikely(!value)) { -- if (!PyErr_Occurred()) { -- if (unlikely(PyTuple_Check(key))) { -- PyObject* args = PyTuple_Pack(1, key); -- if (likely(args)) { -- PyErr_SetObject(PyExc_KeyError, args); -- Py_DECREF(args); -- } -- } else { -- PyErr_SetObject(PyExc_KeyError, key); -- } -- } -- return NULL; -- } -- Py_INCREF(value); -- return value; --} --#endif -- --/* RaiseTooManyValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { -- PyErr_Format(PyExc_ValueError, -- "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); --} -- --/* RaiseNeedMoreValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { -- PyErr_Format(PyExc_ValueError, -- "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", -- index, (index == 1) ? "" : "s"); --} -- --/* RaiseNoneIterError */ --static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); --} -- --/* ExtTypeTest */ --static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { -- if (unlikely(!type)) { -- PyErr_SetString(PyExc_SystemError, "Missing type object"); -- return 0; -- } -- if (likely(__Pyx_TypeCheck(obj, type))) -- return 1; -- PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", -- Py_TYPE(obj)->tp_name, type->tp_name); -- return 0; --} -- - /* GetTopmostException */ - #if CYTHON_USE_EXC_INFO_STACK - static _PyErr_StackItem * -@@ -6284,6 +4647,28 @@ static int __Pyx_SetVtable(PyObject *dict, void *vtable) { - return -1; - } - -+/* PyObjectGetAttrStrNoError */ -+static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { -+ __Pyx_PyThreadState_declare -+ __Pyx_PyThreadState_assign -+ if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) -+ __Pyx_PyErr_Clear(); -+} -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { -+ PyObject *result; -+#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 -+ PyTypeObject* tp = Py_TYPE(obj); -+ if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { -+ return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); -+ } -+#endif -+ result = __Pyx_PyObject_GetAttrStr(obj, attr_name); -+ if (unlikely(!result)) { -+ __Pyx_PyObject_GetAttrStr_ClearAttributeError(); -+ } -+ return result; -+} -+ - /* SetupReduce */ - static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { - int ret; -@@ -6311,43 +4696,51 @@ static int __Pyx_setup_reduce(PyObject* type_obj) { - PyObject *setstate = NULL; - PyObject *setstate_cython = NULL; - #if CYTHON_USE_PYTYPE_LOOKUP -- if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #else -- if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #endif - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #else -- object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #endif -- reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; -+ reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; - if (reduce_ex == object_reduce_ex) { - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #else -- object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #endif -- reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; -+ reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; - if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { -- reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; -+ reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); -+ if (likely(reduce_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (reduce == object_reduce || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); - if (!setstate) PyErr_Clear(); - if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { -- setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; -+ setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); -+ if (likely(setstate_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (!setstate || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - } - PyType_Modified((PyTypeObject*)type_obj); - } - } -- goto GOOD; --BAD: -+ goto __PYX_GOOD; -+__PYX_BAD: - if (!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); - ret = -1; --GOOD: -+__PYX_GOOD: - #if !CYTHON_USE_PYTYPE_LOOKUP - Py_XDECREF(object_reduce); - Py_XDECREF(object_reduce_ex); -@@ -6449,7 +4842,7 @@ static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UIN - - /* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK --static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { -+static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) { - PyObject *use_cline; - PyObject *ptype, *pvalue, *ptraceback; - #if CYTHON_COMPILING_IN_CPYTHON -@@ -6479,7 +4872,7 @@ static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { - } - if (!use_cline) { - c_line = 0; -- PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); -+ (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; -@@ -6553,7 +4946,7 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - if (__pyx_code_cache.count == __pyx_code_cache.max_count) { - int new_max = __pyx_code_cache.max_count + 64; - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( -- __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); -+ __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); - if (unlikely(!entries)) { - return; - } -@@ -6576,30 +4969,31 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { -- PyCodeObject *py_code = 0; -- PyObject *py_srcfile = 0; -- PyObject *py_funcname = 0; -+ PyCodeObject *py_code = NULL; -+ PyObject *py_funcname = NULL; - #if PY_MAJOR_VERSION < 3 -+ PyObject *py_srcfile = NULL; - py_srcfile = PyString_FromString(filename); -- #else -- py_srcfile = PyUnicode_FromString(filename); -- #endif - if (!py_srcfile) goto bad; -+ #endif - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; -+ funcname = PyUnicode_AsUTF8(py_funcname); -+ if (!funcname) goto bad; - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); -- #else -- py_funcname = PyUnicode_FromString(funcname); -+ if (!py_funcname) goto bad; - #endif - } -- if (!py_funcname) goto bad; -+ #if PY_MAJOR_VERSION < 3 - py_code = __Pyx_PyCode_New( - 0, - 0, -@@ -6618,11 +5012,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); -- Py_DECREF(py_funcname); -+ #else -+ py_code = PyCode_NewEmpty(filename, funcname, py_line); -+ #endif -+ Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline - return py_code; - bad: -- Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); -+ #if PY_MAJOR_VERSION < 3 -+ Py_XDECREF(py_srcfile); -+ #endif - return NULL; - } - static void __Pyx_AddTraceback(const char *funcname, int c_line, -@@ -6654,37 +5053,6 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - Py_XDECREF(py_frame); - } - --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(int) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(int) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(int) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(int), -- little, !is_unsigned); -- } --} -- - /* Declarations */ - #if CYTHON_CCOMPLEX - #ifdef __cplusplus -@@ -6802,7 +5170,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_float(a, a); - return __Pyx_c_prod_float(a, a); - case 3: - z = __Pyx_c_prod_float(a, a); -@@ -6957,7 +5324,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_double(a, a); - return __Pyx_c_prod_double(a, a); - case 3: - z = __Pyx_c_prod_double(a, a); -@@ -6995,251 +5361,54 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - #endif - #endif - --/* CIntFromPyVerify */ --#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ -- __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) --#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ -- __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) --#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ -- {\ -- func_type value = func_value;\ -- if (sizeof(target_type) < sizeof(func_type)) {\ -- if (unlikely(value != (func_type) (target_type) value)) {\ -- func_type zero = 0;\ -- if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ -- return (target_type) -1;\ -- if (is_unsigned && unlikely(value < zero))\ -- goto raise_neg_overflow;\ -- else\ -- goto raise_overflow;\ -- }\ -- }\ -- return (target_type) value;\ -- } -- - /* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { -- const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(enum NPY_TYPES) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" - #endif -- } -- } else { -- if (sizeof(enum NPY_TYPES) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop - #endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), -- little, !is_unsigned); -- } --} -- --/* CIntFromPy */ --static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; - const int is_unsigned = neg_one > const_zero; --#if PY_MAJOR_VERSION < 3 -- if (likely(PyInt_Check(x))) { -+ if (is_unsigned) { - if (sizeof(int) < sizeof(long)) { -- __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) -- } else { -- long val = PyInt_AS_LONG(x); -- if (is_unsigned && unlikely(val < 0)) { -- goto raise_neg_overflow; -- } -- return (int) val; -- } -- } else --#endif -- if (likely(PyLong_Check(x))) { -- if (is_unsigned) { --#if CYTHON_USE_PYLONG_INTERNALS -- const digit* digits = ((PyLongObject*)x)->ob_digit; -- switch (Py_SIZE(x)) { -- case 0: return (int) 0; -- case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) -- case 2: -- if (8 * sizeof(int) > 1 * PyLong_SHIFT) { -- if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { -- return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -- } -- } -- break; -- case 3: -- if (8 * sizeof(int) > 2 * PyLong_SHIFT) { -- if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { -- return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -- } -- } -- break; -- case 4: -- if (8 * sizeof(int) > 3 * PyLong_SHIFT) { -- if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { -- return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -- } -- } -- break; -- } --#endif --#if CYTHON_COMPILING_IN_CPYTHON -- if (unlikely(Py_SIZE(x) < 0)) { -- goto raise_neg_overflow; -- } --#else -- { -- int result = PyObject_RichCompareBool(x, Py_False, Py_LT); -- if (unlikely(result < 0)) -- return (int) -1; -- if (unlikely(result == 1)) -- goto raise_neg_overflow; -- } --#endif -- if (sizeof(int) <= sizeof(unsigned long)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) --#endif -- } -- } else { --#if CYTHON_USE_PYLONG_INTERNALS -- const digit* digits = ((PyLongObject*)x)->ob_digit; -- switch (Py_SIZE(x)) { -- case 0: return (int) 0; -- case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) -- case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) -- case -2: -- if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { -- if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -- return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -- } -- } -- break; -- case 2: -- if (8 * sizeof(int) > 1 * PyLong_SHIFT) { -- if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -- return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -- } -- } -- break; -- case -3: -- if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -- if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -- return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -- } -- } -- break; -- case 3: -- if (8 * sizeof(int) > 2 * PyLong_SHIFT) { -- if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -- return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -- } -- } -- break; -- case -4: -- if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -- if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -- return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -- } -- } -- break; -- case 4: -- if (8 * sizeof(int) > 3 * PyLong_SHIFT) { -- if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -- return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -- } -- } -- break; -- } --#endif -- if (sizeof(int) <= sizeof(long)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) --#endif -- } -- } -- { --#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) -- PyErr_SetString(PyExc_RuntimeError, -- "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); --#else -- int val; -- PyObject *v = __Pyx_PyNumber_IntOrLong(x); -- #if PY_MAJOR_VERSION < 3 -- if (likely(v) && !PyLong_Check(v)) { -- PyObject *tmp = v; -- v = PyNumber_Long(tmp); -- Py_DECREF(tmp); -- } -- #endif -- if (likely(v)) { -- int one = 1; int is_little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&val; -- int ret = _PyLong_AsByteArray((PyLongObject *)v, -- bytes, sizeof(val), -- is_little, !is_unsigned); -- Py_DECREF(v); -- if (likely(!ret)) -- return val; -- } -+ return PyInt_FromLong((long) value); -+ } else if (sizeof(int) <= sizeof(unsigned long)) { -+ return PyLong_FromUnsignedLong((unsigned long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -+ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); - #endif -- return (int) -1; - } - } else { -- int val; -- PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); -- if (!tmp) return (int) -1; -- val = __Pyx_PyInt_As_int(tmp); -- Py_DECREF(tmp); -- return val; -+ if (sizeof(int) <= sizeof(long)) { -+ return PyInt_FromLong((long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -+ return PyLong_FromLongLong((PY_LONG_LONG) value); -+#endif -+ } -+ } -+ { -+ int one = 1; int little = (int)*(unsigned char *)&one; -+ unsigned char *bytes = (unsigned char *)&value; -+ return _PyLong_FromByteArray(bytes, sizeof(int), -+ little, !is_unsigned); - } --raise_overflow: -- PyErr_SetString(PyExc_OverflowError, -- "value too large to convert to int"); -- return (int) -1; --raise_neg_overflow: -- PyErr_SetString(PyExc_OverflowError, -- "can't convert negative value to int"); -- return (int) -1; - } - - /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(long) < sizeof(long)) { -@@ -7268,9 +5437,38 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - } - } - -+/* CIntFromPyVerify */ -+#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ -+ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) -+#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ -+ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) -+#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ -+ {\ -+ func_type value = func_value;\ -+ if (sizeof(target_type) < sizeof(func_type)) {\ -+ if (unlikely(value != (func_type) (target_type) value)) {\ -+ func_type zero = 0;\ -+ if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ -+ return (target_type) -1;\ -+ if (is_unsigned && unlikely(value < zero))\ -+ goto raise_neg_overflow;\ -+ else\ -+ goto raise_overflow;\ -+ }\ -+ }\ -+ return (target_type) value;\ -+ } -+ - /* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -7457,6 +5655,202 @@ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - return (long) -1; - } - -+/* CIntFromPy */ -+static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif -+ const int is_unsigned = neg_one > const_zero; -+#if PY_MAJOR_VERSION < 3 -+ if (likely(PyInt_Check(x))) { -+ if (sizeof(int) < sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) -+ } else { -+ long val = PyInt_AS_LONG(x); -+ if (is_unsigned && unlikely(val < 0)) { -+ goto raise_neg_overflow; -+ } -+ return (int) val; -+ } -+ } else -+#endif -+ if (likely(PyLong_Check(x))) { -+ if (is_unsigned) { -+#if CYTHON_USE_PYLONG_INTERNALS -+ const digit* digits = ((PyLongObject*)x)->ob_digit; -+ switch (Py_SIZE(x)) { -+ case 0: return (int) 0; -+ case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) -+ case 2: -+ if (8 * sizeof(int) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { -+ return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -+ } -+ } -+ break; -+ case 3: -+ if (8 * sizeof(int) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { -+ return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -+ } -+ } -+ break; -+ case 4: -+ if (8 * sizeof(int) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { -+ return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -+ } -+ } -+ break; -+ } -+#endif -+#if CYTHON_COMPILING_IN_CPYTHON -+ if (unlikely(Py_SIZE(x) < 0)) { -+ goto raise_neg_overflow; -+ } -+#else -+ { -+ int result = PyObject_RichCompareBool(x, Py_False, Py_LT); -+ if (unlikely(result < 0)) -+ return (int) -1; -+ if (unlikely(result == 1)) -+ goto raise_neg_overflow; -+ } -+#endif -+ if (sizeof(int) <= sizeof(unsigned long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -+#endif -+ } -+ } else { -+#if CYTHON_USE_PYLONG_INTERNALS -+ const digit* digits = ((PyLongObject*)x)->ob_digit; -+ switch (Py_SIZE(x)) { -+ case 0: return (int) 0; -+ case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) -+ case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) -+ case -2: -+ if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -+ __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -+ return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ } -+ } -+ break; -+ case 2: -+ if (8 * sizeof(int) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -+ return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ } -+ } -+ break; -+ case -3: -+ if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -+ __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -+ return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ } -+ } -+ break; -+ case 3: -+ if (8 * sizeof(int) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -+ return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ } -+ } -+ break; -+ case -4: -+ if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -+ __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -+ return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ } -+ } -+ break; -+ case 4: -+ if (8 * sizeof(int) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -+ return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ } -+ } -+ break; -+ } -+#endif -+ if (sizeof(int) <= sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) -+#endif -+ } -+ } -+ { -+#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) -+ PyErr_SetString(PyExc_RuntimeError, -+ "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); -+#else -+ int val; -+ PyObject *v = __Pyx_PyNumber_IntOrLong(x); -+ #if PY_MAJOR_VERSION < 3 -+ if (likely(v) && !PyLong_Check(v)) { -+ PyObject *tmp = v; -+ v = PyNumber_Long(tmp); -+ Py_DECREF(tmp); -+ } -+ #endif -+ if (likely(v)) { -+ int one = 1; int is_little = (int)*(unsigned char *)&one; -+ unsigned char *bytes = (unsigned char *)&val; -+ int ret = _PyLong_AsByteArray((PyLongObject *)v, -+ bytes, sizeof(val), -+ is_little, !is_unsigned); -+ Py_DECREF(v); -+ if (likely(!ret)) -+ return val; -+ } -+#endif -+ return (int) -1; -+ } -+ } else { -+ int val; -+ PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); -+ if (!tmp) return (int) -1; -+ val = __Pyx_PyInt_As_int(tmp); -+ Py_DECREF(tmp); -+ return val; -+ } -+raise_overflow: -+ PyErr_SetString(PyExc_OverflowError, -+ "value too large to convert to int"); -+ return (int) -1; -+raise_neg_overflow: -+ PyErr_SetString(PyExc_OverflowError, -+ "can't convert negative value to int"); -+ return (int) -1; -+} -+ - /* FastTypeChecks */ - #if CYTHON_COMPILING_IN_CPYTHON - static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { -@@ -7821,6 +6215,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_DECREF(x); - return ival; - } -+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { -+ if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { -+ return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); -+#if PY_MAJOR_VERSION < 3 -+ } else if (likely(PyInt_CheckExact(o))) { -+ return PyInt_AS_LONG(o); -+#endif -+ } else { -+ Py_ssize_t ival; -+ PyObject *x; -+ x = PyNumber_Index(o); -+ if (!x) return -1; -+ ival = PyInt_AsLong(x); -+ Py_DECREF(x); -+ return ival; -+ } -+} - static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); - } -diff --git a/cylp/cy/CyCgl.cpp b/cylp/cy/CyCgl.cpp -index c210ec9..0e19d5e 100644 ---- a/cylp/cy/CyCgl.cpp -+++ b/cylp/cy/CyCgl.cpp -@@ -1,14 +1,16 @@ --/* Generated by Cython 0.29.12 */ -+/* 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_12" --#define CYTHON_HEX_VERSION 0x001D0CF0 -+#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) -@@ -449,7 +516,15 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) - #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) -+ #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 - #else - #define CYTHON_PEP393_ENABLED 0 - #define PyUnicode_1BYTE_KIND 1 -@@ -498,8 +573,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact -+#ifndef PyObject_Unicode - #define PyObject_Unicode PyObject_Str - #endif -+#endif - #if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) - #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) -@@ -510,6 +587,13 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #ifndef PySet_CheckExact - #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) - #endif -+#if PY_VERSION_HEX >= 0x030900A4 -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) -+#else -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) -+#endif - #if CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) - #else -@@ -543,13 +627,13 @@ 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) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) -+ #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) - #else - #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) - #endif -@@ -590,11 +674,10 @@ static CYTHON_INLINE float __PYX_NAN() { - #define __Pyx_truncl truncl - #endif - -- -+#define __PYX_MARK_ERR_POS(f_index, lineno) \ -+ { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } - #define __PYX_ERR(f_index, lineno, Ln_error) \ --{ \ -- __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ --} -+ { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } - - #ifndef __PYX_EXTERN_C - #ifdef __cplusplus -@@ -610,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" -@@ -724,6 +813,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 -@@ -859,12 +949,12 @@ static const char *__pyx_filename; - - static const char *__pyx_f[] = { - "stringsource", -- "cylp\\cy\\CyCgl.pyx", -+ "cylp/cy/CyCgl.pyx", - "__init__.pxd", - "type.pxd", - }; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":776 -+/* "../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 # <<<<<<<<<<<<<< -@@ -873,7 +963,7 @@ static const char *__pyx_f[] = { - */ - typedef npy_int8 __pyx_t_5numpy_int8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":777 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":691 - * - * ctypedef npy_int8 int8_t - * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< -@@ -882,7 +972,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; - */ - typedef npy_int16 __pyx_t_5numpy_int16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":778 -+/* "../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 # <<<<<<<<<<<<<< -@@ -891,7 +981,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; - */ - typedef npy_int32 __pyx_t_5numpy_int32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":779 -+/* "../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 # <<<<<<<<<<<<<< -@@ -900,7 +990,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; - */ - typedef npy_int64 __pyx_t_5numpy_int64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":783 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":697 - * #ctypedef npy_int128 int128_t - * - * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< -@@ -909,7 +999,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; - */ - typedef npy_uint8 __pyx_t_5numpy_uint8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":784 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":698 - * - * ctypedef npy_uint8 uint8_t - * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< -@@ -918,7 +1008,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; - */ - typedef npy_uint16 __pyx_t_5numpy_uint16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":785 -+/* "../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 # <<<<<<<<<<<<<< -@@ -927,7 +1017,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; - */ - typedef npy_uint32 __pyx_t_5numpy_uint32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":786 -+/* "../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 # <<<<<<<<<<<<<< -@@ -936,7 +1026,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; - */ - typedef npy_uint64 __pyx_t_5numpy_uint64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":790 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":704 - * #ctypedef npy_uint128 uint128_t - * - * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< -@@ -945,7 +1035,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; - */ - typedef npy_float32 __pyx_t_5numpy_float32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":791 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":705 - * - * ctypedef npy_float32 float32_t - * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< -@@ -954,7 +1044,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; - */ - typedef npy_float64 __pyx_t_5numpy_float64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":800 -+/* "../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 # <<<<<<<<<<<<<< -@@ -963,7 +1053,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; - */ - typedef npy_long __pyx_t_5numpy_int_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":801 -+/* "../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 # <<<<<<<<<<<<<< -@@ -972,7 +1062,7 @@ typedef npy_long __pyx_t_5numpy_int_t; - */ - typedef npy_longlong __pyx_t_5numpy_long_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":802 -+/* "../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 # <<<<<<<<<<<<<< -@@ -981,7 +1071,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; - */ - typedef npy_longlong __pyx_t_5numpy_longlong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":804 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":718 - * ctypedef npy_longlong longlong_t - * - * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< -@@ -990,7 +1080,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; - */ - typedef npy_ulong __pyx_t_5numpy_uint_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":805 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":719 - * - * ctypedef npy_ulong uint_t - * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< -@@ -999,7 +1089,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":806 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1008,7 +1098,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":808 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":722 - * ctypedef npy_ulonglong ulonglong_t - * - * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< -@@ -1017,7 +1107,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - */ - typedef npy_intp __pyx_t_5numpy_intp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":809 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":723 - * - * ctypedef npy_intp intp_t - * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< -@@ -1026,7 +1116,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; - */ - typedef npy_uintp __pyx_t_5numpy_uintp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":811 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":725 - * ctypedef npy_uintp uintp_t - * - * ctypedef npy_double float_t # <<<<<<<<<<<<<< -@@ -1035,7 +1125,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; - */ - typedef npy_double __pyx_t_5numpy_float_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":812 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":726 - * - * ctypedef npy_double float_t - * ctypedef npy_double double_t # <<<<<<<<<<<<<< -@@ -1044,7 +1134,7 @@ typedef npy_double __pyx_t_5numpy_float_t; - */ - typedef npy_double __pyx_t_5numpy_double_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":813 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1096,7 +1186,7 @@ struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglPreProcess; - struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglProbing; - struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglSimpleRounding; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":815 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":729 - * ctypedef npy_longdouble longdouble_t - * - * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< -@@ -1105,7 +1195,7 @@ struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglSimpleRounding; - */ - typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":816 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":730 - * - * ctypedef npy_cfloat cfloat_t - * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< -@@ -1114,7 +1204,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - */ - typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":817 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1123,7 +1213,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - */ - typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":819 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":733 - * ctypedef npy_clongdouble clongdouble_t - * - * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< -@@ -1511,67 +1601,6 @@ static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr - #define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v) - #endif - --/* PyCFunctionFastCall.proto */ --#if CYTHON_FAST_PYCCALL --static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); --#else --#define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) --#endif -- --/* PyFunctionFastCall.proto */ --#if CYTHON_FAST_PYCALL --#define __Pyx_PyFunction_FastCall(func, args, nargs)\ -- __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) --#if 1 || PY_VERSION_HEX < 0x030600B1 --static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); --#else --#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) --#endif --#define __Pyx_BUILD_ASSERT_EXPR(cond)\ -- (sizeof(char [1 - 2*!(cond)]) - 1) --#ifndef Py_MEMBER_SIZE --#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) --#endif -- static size_t __pyx_pyframe_localsplus_offset = 0; -- #include "frameobject.h" -- #define __Pxy_PyFrame_Initialize_Offsets()\ -- ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ -- (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) -- #define __Pyx_PyFrame_GetLocalsplus(frame)\ -- (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) --#endif -- --/* PyObjectCallMethO.proto */ --#if CYTHON_COMPILING_IN_CPYTHON --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); --#endif -- --/* PyObjectCallOneArg.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); -- --/* 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); -@@ -1618,6 +1647,9 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam - #define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr - #endif - -+/* PyObjectGetAttrStrNoError.proto */ -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); -+ - /* SetupReduce.proto */ - static int __Pyx_setup_reduce(PyObject* type_obj); - -@@ -1729,8 +1761,10 @@ static void __Pyx_CppExn2PyErr() { - } - #endif - --/* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); -+/* GCCDiagnostics.proto */ -+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -+#define __Pyx_HAS_GCC_DIAGNOSTIC -+#endif - - /* RealImag.proto */ - #if CYTHON_CCOMPLEX -@@ -1831,7 +1865,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); - #endif - - /* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value); -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); - - /* CIntFromPy.proto */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); -@@ -1890,8 +1924,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; -@@ -1917,22 +1960,17 @@ int __pyx_module_is_main_cylp__cy__CyCgl = 0; - - /* Implementation of 'cylp.cy.CyCgl' */ - static PyObject *__pyx_builtin_TypeError; --static PyObject *__pyx_builtin_ValueError; --static PyObject *__pyx_builtin_range; --static PyObject *__pyx_builtin_RuntimeError; - static PyObject *__pyx_builtin_ImportError; - static const char __pyx_k_main[] = "__main__"; - static const char __pyx_k_name[] = "__name__"; - static const char __pyx_k_test[] = "__test__"; - static const char __pyx_k_limit[] = "limit"; --static const char __pyx_k_range[] = "range"; - static const char __pyx_k_reduce[] = "__reduce__"; - static const char __pyx_k_getstate[] = "__getstate__"; - static const char __pyx_k_setstate[] = "__setstate__"; - static const char __pyx_k_TypeError[] = "TypeError"; - static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; - static const char __pyx_k_CyCglLandP[] = "CyCglLandP"; --static const char __pyx_k_ValueError[] = "ValueError"; - static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; - static const char __pyx_k_CyCglClique[] = "CyCglClique"; - static const char __pyx_k_CyCglGomory[] = "CyCglGomory"; -@@ -1940,7 +1978,6 @@ static const char __pyx_k_CyCglTwomir[] = "CyCglTwomir"; - static const char __pyx_k_ImportError[] = "ImportError"; - static const char __pyx_k_CyCglOddHole[] = "CyCglOddHole"; - static const char __pyx_k_CyCglProbing[] = "CyCglProbing"; --static const char __pyx_k_RuntimeError[] = "RuntimeError"; - static const char __pyx_k_CyCglRedSplit[] = "CyCglRedSplit"; - static const char __pyx_k_maxInKnapsack[] = "maxInKnapsack"; - static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; -@@ -1956,16 +1993,10 @@ static const char __pyx_k_CyCglSimpleRounding[] = "CyCglSimpleRounding"; - static const char __pyx_k_CyCglResidualCapacity[] = "CyCglResidualCapacity"; - static const char __pyx_k_CyCglMixedIntegerRounding[] = "CyCglMixedIntegerRounding"; - static const char __pyx_k_CyCglMixedIntegerRounding2[] = "CyCglMixedIntegerRounding2"; --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_self_CppSelf_cannot_be_converted[] = "self.CppSelf cannot be converted to a Python object for pickling"; --static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; - static PyObject *__pyx_n_s_CyCglAllDifferent; - static PyObject *__pyx_n_s_CyCglClique; - static PyObject *__pyx_n_s_CyCglCutGenerator; -@@ -1983,26 +2014,18 @@ static PyObject *__pyx_n_s_CyCglRedSplit; - static PyObject *__pyx_n_s_CyCglResidualCapacity; - static PyObject *__pyx_n_s_CyCglSimpleRounding; - static PyObject *__pyx_n_s_CyCglTwomir; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; - static PyObject *__pyx_n_s_ImportError; --static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; --static PyObject *__pyx_n_s_RuntimeError; - static PyObject *__pyx_n_s_TypeError; --static PyObject *__pyx_n_s_ValueError; - static PyObject *__pyx_n_s_cline_in_traceback; - static PyObject *__pyx_n_s_getstate; - static PyObject *__pyx_n_s_limit; - static PyObject *__pyx_n_s_main; - static PyObject *__pyx_n_s_maxInKnapsack; - static PyObject *__pyx_n_s_name; --static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous; --static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou; - static PyObject *__pyx_kp_s_no_default___reduce___due_to_non; - static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; - static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; - static PyObject *__pyx_n_s_pyx_vtable; --static PyObject *__pyx_n_s_range; - static PyObject *__pyx_n_s_reduce; - static PyObject *__pyx_n_s_reduce_cython; - static PyObject *__pyx_n_s_reduce_ex; -@@ -2010,7 +2033,6 @@ static PyObject *__pyx_kp_s_self_CppSelf_cannot_be_converted; - static PyObject *__pyx_n_s_setstate; - static PyObject *__pyx_n_s_setstate_cython; - static PyObject *__pyx_n_s_test; --static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; - static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_17CyCglCutGenerator___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_17CyCglCutGenerator_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ - static int __pyx_pf_4cylp_2cy_5CyCgl_17CyCglAllDifferent___cinit__(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglAllDifferent *__pyx_v_self); /* proto */ -@@ -2065,8 +2087,6 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_12CyCglProbing_4__setstate_cython__(C - static int __pyx_pf_4cylp_2cy_5CyCgl_19CyCglSimpleRounding___cinit__(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglSimpleRounding *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_19CyCglSimpleRounding_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglSimpleRounding *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_19CyCglSimpleRounding_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglSimpleRounding *__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_5CyCgl_CyCglCutGenerator(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ - static PyObject *__pyx_tp_new_4cylp_2cy_5CyCgl_CyCglAllDifferent(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ - static PyObject *__pyx_tp_new_4cylp_2cy_5CyCgl_CyCglClique(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ -@@ -2121,11 +2141,6 @@ static PyObject *__pyx_tuple__33; - static PyObject *__pyx_tuple__34; - static PyObject *__pyx_tuple__35; - static PyObject *__pyx_tuple__36; --static PyObject *__pyx_tuple__37; --static PyObject *__pyx_tuple__38; --static PyObject *__pyx_tuple__39; --static PyObject *__pyx_tuple__40; --static PyObject *__pyx_tuple__41; - /* Late includes */ - - /* "(tree fragment)":1 -@@ -2151,6 +2166,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_17CyCglCutGenerator___reduce_cython__ - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -2205,6 +2223,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_17CyCglCutGenerator_2__setstate_cytho - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -2263,6 +2284,9 @@ static int __pyx_pf_4cylp_2cy_5CyCgl_17CyCglAllDifferent___cinit__(struct __pyx_ - int __pyx_r; - __Pyx_RefNannyDeclarations - CglAllDifferent *__pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 0); - - /* "cylp/cy/CyCgl.pyx":9 -@@ -2322,6 +2346,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_17CyCglAllDifferent_2__reduce_cython_ - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -2376,6 +2403,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_17CyCglAllDifferent_4__setstate_cytho - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -2434,6 +2464,9 @@ static int __pyx_pf_4cylp_2cy_5CyCgl_11CyCglClique___cinit__(struct __pyx_obj_4c - int __pyx_r; - __Pyx_RefNannyDeclarations - CglClique *__pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 0); - - /* "cylp/cy/CyCgl.pyx":13 -@@ -2493,6 +2526,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_11CyCglClique_2__reduce_cython__(CYTH - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -2547,6 +2583,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_11CyCglClique_4__setstate_cython__(CY - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -2589,6 +2628,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_11CyCglClique_4__setstate_cython__(CY - static int __pyx_pw_4cylp_2cy_5CyCgl_18CyCglKnapsackCover_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ - static int __pyx_pw_4cylp_2cy_5CyCgl_18CyCglKnapsackCover_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_maxInKnapsack = 0; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); -@@ -2645,6 +2687,9 @@ static int __pyx_pf_4cylp_2cy_5CyCgl_18CyCglKnapsackCover___cinit__(struct __pyx - int __pyx_r; - __Pyx_RefNannyDeclarations - CglKnapsackCover *__pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 0); - - /* "cylp/cy/CyCgl.pyx":17 -@@ -2752,6 +2797,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_18CyCglKnapsackCover_13maxInKnapsack_ - 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("__get__", 0); - - /* "cylp/cy/CyCgl.pyx":25 -@@ -2812,6 +2860,9 @@ static int __pyx_pf_4cylp_2cy_5CyCgl_18CyCglKnapsackCover_13maxInKnapsack_2__set - int __pyx_r; - __Pyx_RefNannyDeclarations - int __pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__set__", 0); - - /* "cylp/cy/CyCgl.pyx":28 -@@ -2866,6 +2917,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_18CyCglKnapsackCover_2__reduce_cython - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -2920,6 +2974,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_18CyCglKnapsackCover_4__setstate_cyth - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -2978,6 +3035,9 @@ static int __pyx_pf_4cylp_2cy_5CyCgl_12CyCglOddHole___cinit__(struct __pyx_obj_4 - int __pyx_r; - __Pyx_RefNannyDeclarations - CglOddHole *__pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 0); - - /* "cylp/cy/CyCgl.pyx":32 -@@ -3037,6 +3097,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_12CyCglOddHole_2__reduce_cython__(CYT - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -3091,6 +3154,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_12CyCglOddHole_4__setstate_cython__(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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -3149,6 +3215,9 @@ static int __pyx_pf_4cylp_2cy_5CyCgl_14CyCglFlowCover___cinit__(struct __pyx_obj - int __pyx_r; - __Pyx_RefNannyDeclarations - CglFlowCover *__pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 0); - - /* "cylp/cy/CyCgl.pyx":38 -@@ -3208,6 +3277,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_14CyCglFlowCover_2__reduce_cython__(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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -3262,6 +3334,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_14CyCglFlowCover_4__setstate_cython__ - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -3304,6 +3379,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_14CyCglFlowCover_4__setstate_cython__ - static int __pyx_pw_4cylp_2cy_5CyCgl_11CyCglGomory_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ - static int __pyx_pw_4cylp_2cy_5CyCgl_11CyCglGomory_1__cinit__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_limit = 0; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); -@@ -3360,6 +3438,9 @@ static int __pyx_pf_4cylp_2cy_5CyCgl_11CyCglGomory___cinit__(struct __pyx_obj_4c - int __pyx_r; - __Pyx_RefNannyDeclarations - CglGomory *__pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 0); - - /* "cylp/cy/CyCgl.pyx":44 -@@ -3467,6 +3548,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_11CyCglGomory_5limit___get__(struct _ - 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("__get__", 0); - - /* "cylp/cy/CyCgl.pyx":52 -@@ -3527,6 +3611,9 @@ static int __pyx_pf_4cylp_2cy_5CyCgl_11CyCglGomory_5limit_2__set__(struct __pyx_ - int __pyx_r; - __Pyx_RefNannyDeclarations - int __pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__set__", 0); - - /* "cylp/cy/CyCgl.pyx":55 -@@ -3581,6 +3668,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_11CyCglGomory_2__reduce_cython__(CYTH - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -3635,6 +3725,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_11CyCglGomory_4__setstate_cython__(CY - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -3693,6 +3786,9 @@ static int __pyx_pf_4cylp_2cy_5CyCgl_13CyCglRedSplit___cinit__(struct __pyx_obj_ - int __pyx_r; - __Pyx_RefNannyDeclarations - CglRedSplit *__pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 0); - - /* "cylp/cy/CyCgl.pyx":59 -@@ -3752,6 +3848,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_13CyCglRedSplit_2__reduce_cython__(CY - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -3806,6 +3905,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_13CyCglRedSplit_4__setstate_cython__( - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -3864,6 +3966,9 @@ static int __pyx_pf_4cylp_2cy_5CyCgl_19CyCglLiftAndProject___cinit__(struct __py - int __pyx_r; - __Pyx_RefNannyDeclarations - CglLiftAndProject *__pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 0); - - /* "cylp/cy/CyCgl.pyx":65 -@@ -3923,6 +4028,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_19CyCglLiftAndProject_2__reduce_cytho - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -3977,6 +4085,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_19CyCglLiftAndProject_4__setstate_cyt - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -4035,6 +4146,9 @@ static int __pyx_pf_4cylp_2cy_5CyCgl_10CyCglLandP___cinit__(struct __pyx_obj_4cy - int __pyx_r; - __Pyx_RefNannyDeclarations - CglLandP *__pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 0); - - /* "cylp/cy/CyCgl.pyx":69 -@@ -4094,6 +4208,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_10CyCglLandP_2__reduce_cython__(CYTHO - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -4148,6 +4265,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_10CyCglLandP_4__setstate_cython__(CYT - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -4206,6 +4326,9 @@ static int __pyx_pf_4cylp_2cy_5CyCgl_25CyCglMixedIntegerRounding___cinit__(struc - int __pyx_r; - __Pyx_RefNannyDeclarations - CglMixedIntegerRounding *__pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 0); - - /* "cylp/cy/CyCgl.pyx":75 -@@ -4265,6 +4388,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_25CyCglMixedIntegerRounding_2__reduce - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -4319,6 +4445,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_25CyCglMixedIntegerRounding_4__setsta - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -4377,6 +4506,9 @@ static int __pyx_pf_4cylp_2cy_5CyCgl_26CyCglMixedIntegerRounding2___cinit__(stru - int __pyx_r; - __Pyx_RefNannyDeclarations - CglMixedIntegerRounding2 *__pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 0); - - /* "cylp/cy/CyCgl.pyx":79 -@@ -4436,6 +4568,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_26CyCglMixedIntegerRounding2_2__reduc - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -4490,6 +4625,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_26CyCglMixedIntegerRounding2_4__setst - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -4548,6 +4686,9 @@ static int __pyx_pf_4cylp_2cy_5CyCgl_11CyCglTwomir___cinit__(struct __pyx_obj_4c - int __pyx_r; - __Pyx_RefNannyDeclarations - CglTwomir *__pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 0); - - /* "cylp/cy/CyCgl.pyx":83 -@@ -4607,6 +4748,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_11CyCglTwomir_2__reduce_cython__(CYTH - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -4661,6 +4805,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_11CyCglTwomir_4__setstate_cython__(CY - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -4719,6 +4866,9 @@ static int __pyx_pf_4cylp_2cy_5CyCgl_21CyCglResidualCapacity___cinit__(struct __ - int __pyx_r; - __Pyx_RefNannyDeclarations - CglResidualCapacity *__pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 0); - - /* "cylp/cy/CyCgl.pyx":88 -@@ -4778,6 +4928,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_21CyCglResidualCapacity_2__reduce_cyt - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -4832,6 +4985,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_21CyCglResidualCapacity_4__setstate_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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -4890,6 +5046,9 @@ static int __pyx_pf_4cylp_2cy_5CyCgl_15CyCglPreProcess___cinit__(struct __pyx_ob - int __pyx_r; - __Pyx_RefNannyDeclarations - CglPreProcess *__pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 0); - - /* "cylp/cy/CyCgl.pyx":100 -@@ -4949,6 +5108,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_15CyCglPreProcess_2__reduce_cython__( - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -5003,6 +5165,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_15CyCglPreProcess_4__setstate_cython_ - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -5061,6 +5226,9 @@ static int __pyx_pf_4cylp_2cy_5CyCgl_12CyCglProbing___cinit__(struct __pyx_obj_4 - int __pyx_r; - __Pyx_RefNannyDeclarations - CglProbing *__pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 0); - - /* "cylp/cy/CyCgl.pyx":104 -@@ -5120,6 +5288,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_12CyCglProbing_2__reduce_cython__(CYT - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -5174,6 +5345,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_12CyCglProbing_4__setstate_cython__(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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -5232,6 +5406,9 @@ static int __pyx_pf_4cylp_2cy_5CyCgl_19CyCglSimpleRounding___cinit__(struct __py - int __pyx_r; - __Pyx_RefNannyDeclarations - CglSimpleRounding *__pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 0); - - /* "cylp/cy/CyCgl.pyx":108 -@@ -5291,6 +5468,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_19CyCglSimpleRounding_2__reduce_cytho - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -5345,6 +5525,9 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_19CyCglSimpleRounding_4__setstate_cyt - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -5375,863 +5558,7 @@ static PyObject *__pyx_pf_4cylp_2cy_5CyCgl_19CyCglSimpleRounding_4__setstate_cyt - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":258 -- * # experimental exception made for __getbuffer__ and __releasebuffer__ -- * # -- the details of this may change. -- * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< -- * # This implementation of getbuffer is geared towards Cython -- * # requirements, and does not yet fulfill the PEP. -- */ -- --/* Python wrapper */ --static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ --static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { -- int __pyx_r; -- __Pyx_RefNannyDeclarations -- __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); -- __pyx_r = __pyx_pf_5numpy_7ndarray___getbuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); -- -- /* function exit code */ -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { -- int __pyx_v_i; -- int __pyx_v_ndim; -- int __pyx_v_endian_detector; -- int __pyx_v_little_endian; -- int __pyx_v_t; -- char *__pyx_v_f; -- PyArray_Descr *__pyx_v_descr = 0; -- int __pyx_v_offset; -- int __pyx_r; -- __Pyx_RefNannyDeclarations -- int __pyx_t_1; -- int __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- int __pyx_t_4; -- int __pyx_t_5; -- int __pyx_t_6; -- PyArray_Descr *__pyx_t_7; -- PyObject *__pyx_t_8 = NULL; -- char *__pyx_t_9; -- if (__pyx_v_info == NULL) { -- PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); -- return -1; -- } -- __Pyx_RefNannySetupContext("__getbuffer__", 0); -- __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); -- __Pyx_GIVEREF(__pyx_v_info->obj); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- * -- */ -- __pyx_v_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) # <<<<<<<<<<<<<< -- * -- * ndim = PyArray_NDIM(self) -- */ -- __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":268 -- * cdef bint little_endian = ((&endian_detector)[0] != 0) -- * -- * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- */ -- __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":271 -- * -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< -- * raise ValueError(u"ndarray is not C contiguous") -- * -- */ -- __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_C_CONTIGUOUS) != 0)) != 0); -- __pyx_t_1 = __pyx_t_2; -- __pyx_L4_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":272 -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__35, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":274 -- * raise ValueError(u"ndarray is not C contiguous") -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") -- */ -- __pyx_t_2 = (((__pyx_v_flags & PyBUF_F_CONTIGUOUS) == PyBUF_F_CONTIGUOUS) != 0); -- if (__pyx_t_2) { -- } else { -- __pyx_t_1 = __pyx_t_2; -- goto __pyx_L7_bool_binop_done; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":275 -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< -- * raise ValueError(u"ndarray is not Fortran contiguous") -- * -- */ -- __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_F_CONTIGUOUS) != 0)) != 0); -- __pyx_t_1 = __pyx_t_2; -- __pyx_L7_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":276 -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__36, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":278 -- * raise ValueError(u"ndarray is not Fortran contiguous") -- * -- * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< -- * info.ndim = ndim -- * if sizeof(npy_intp) != sizeof(Py_ssize_t): -- */ -- __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":279 -- * -- * info.buf = PyArray_DATA(self) -- * info.ndim = ndim # <<<<<<<<<<<<<< -- * if sizeof(npy_intp) != sizeof(Py_ssize_t): -- * # Allocate new buffer for strides and shape info. -- */ -- __pyx_v_info->ndim = __pyx_v_ndim; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)))); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- */ -- (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- /*else*/ { -- __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- */ -- __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(__pyx_v_self)); -- } -- __pyx_L9:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- * -- */ -- __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":293 -- * info.suboffsets = NULL -- * info.itemsize = PyArray_ITEMSIZE(self) -- * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< -- * -- * cdef int t -- */ -- __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":297 -- * cdef int t -- * cdef char* f = NULL -- * cdef dtype descr = PyArray_DESCR(self) # <<<<<<<<<<<<<< -- * cdef int offset -- * -- */ -- __pyx_t_7 = PyArray_DESCR(__pyx_v_self); -- __pyx_t_3 = ((PyObject *)__pyx_t_7); -- __Pyx_INCREF(__pyx_t_3); -- __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":300 -- * cdef int offset -- * -- * info.obj = self # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(descr): -- */ -- __Pyx_INCREF(((PyObject *)__pyx_v_self)); -- __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); -- __Pyx_GOTREF(__pyx_v_info->obj); -- __Pyx_DECREF(__pyx_v_info->obj); -- __pyx_v_info->obj = ((PyObject *)__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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__37, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]) = '^'; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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'; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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): -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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(); --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735 - * ctypedef npy_cdouble complex_t - * - * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< -@@ -6243,9 +5570,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":822 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":736 - * - * cdef inline object PyArray_MultiIterNew1(a): - * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< -@@ -6253,13 +5583,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - * 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, 822, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735 - * ctypedef npy_cdouble complex_t - * - * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< -@@ -6278,7 +5608,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -+/* "../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): # <<<<<<<<<<<<<< -@@ -6290,9 +5620,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":825 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":739 - * - * cdef inline object PyArray_MultiIterNew2(a, b): - * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< -@@ -6300,13 +5633,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - * 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, 825, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -6325,7 +5658,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741 - * return PyArray_MultiIterNew(2, a, b) - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< -@@ -6337,9 +5670,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":828 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":742 - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): - * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< -@@ -6347,13 +5683,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - * 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, 828, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741 - * return PyArray_MultiIterNew(2, a, b) - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< -@@ -6372,7 +5708,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -+/* "../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): # <<<<<<<<<<<<<< -@@ -6384,9 +5720,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":831 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -6394,13 +5733,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - * 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, 831, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -6419,7 +5758,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 - * return PyArray_MultiIterNew(4, a, b, c, d) - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -@@ -6431,9 +5770,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":834 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -6441,13 +5783,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - * 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, 834, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 - * return PyArray_MultiIterNew(4, a, b, c, d) - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -@@ -6466,7 +5808,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -@@ -6480,7 +5822,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - int __pyx_t_1; - __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -@@ -6490,7 +5832,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); - if (__pyx_t_1) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":838 -+ /* "../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 # <<<<<<<<<<<<<< -@@ -6502,7 +5844,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -@@ -6511,12 +5853,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":840 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":754 - * 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); -@@ -6525,7 +5867,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - goto __pyx_L0; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -@@ -6540,754 +5882,8 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -- * -- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< -- * # Recursive utility function used in __getbuffer__ to get format -- * # string. The new location in the format string is returned. -- */ -- --static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) { -- PyArray_Descr *__pyx_v_child = 0; -- int __pyx_v_endian_detector; -- int __pyx_v_little_endian; -- PyObject *__pyx_v_fields = 0; -- PyObject *__pyx_v_childname = NULL; -- PyObject *__pyx_v_new_offset = NULL; -- PyObject *__pyx_v_t = NULL; -- char *__pyx_r; -- __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- Py_ssize_t __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- PyObject *__pyx_t_4 = NULL; -- int __pyx_t_5; -- int __pyx_t_6; -- int __pyx_t_7; -- long __pyx_t_8; -- char *__pyx_t_9; -- __Pyx_RefNannySetupContext("_util_dtypestring", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":848 -- * 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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- if (unlikely(__pyx_v_descr->names == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -- __PYX_ERR(2, 851, __pyx_L1_error) -- } -- __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; -- for (;;) { -- if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; -- #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, 851, __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, 851, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- #endif -- __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":852 -- * -- * for childname in descr.names: -- * fields = descr.fields[childname] # <<<<<<<<<<<<<< -- * child, new_offset = fields -- * -- */ -- if (unlikely(__pyx_v_descr->fields == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -- __PYX_ERR(2, 852, __pyx_L1_error) -- } -- __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":853 -- * 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, 853, __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, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- #endif -- } else { -- __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 853, __pyx_L1_error) -- } -- if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3)); -- __pyx_t_3 = 0; -- __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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__38, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 856, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0); -- if (!__pyx_t_7) { -- goto __pyx_L8_next_or; -- } else { -- } -- __pyx_t_7 = (__pyx_v_little_endian != 0); -- if (!__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_L8_next_or:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":859 -- * -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< -- * raise ValueError(u"Non-native byte order not supported") -- * # One could encode it in the format string and have Cython -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0); -- if (__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0); -- __pyx_t_6 = __pyx_t_7; -- __pyx_L7_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":860 -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * # One could encode it in the format string and have Cython -- * # complain instead, BUT: < and > in format strings also imply -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__37, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 860, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 860, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":870 -- * -- * # Output padding bytes -- * while offset[0] < new_offset: # <<<<<<<<<<<<<< -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- */ -- while (1) { -- __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (!__pyx_t_6) break; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":871 -- * # Output padding bytes -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< -- * f += 1 -- * offset[0] += 1 -- */ -- (__pyx_v_f[0]) = 0x78; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":872 -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte -- * f += 1 # <<<<<<<<<<<<<< -- * offset[0] += 1 -- * -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":873 -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- * offset[0] += 1 # <<<<<<<<<<<<<< -- * -- * offset[0] += child.itemsize -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":875 -- * offset[0] += 1 -- * -- * offset[0] += child.itemsize # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(child): -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); -- if (__pyx_t_6) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":878 -- * -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num # <<<<<<<<<<<<<< -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") -- */ -- __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 878, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__39, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 880, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":883 -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 98; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":884 -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":885 -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x68; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":886 -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 72; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":887 -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x69; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":888 -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 73; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":889 -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x6C; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":890 -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 76; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":891 -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x71; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":892 -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 81; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":893 -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":894 -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x64; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":895 -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x67; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":896 -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x66; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":897 -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x64; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":898 -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x67; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":899 -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (likely(__pyx_t_6)) { -- (__pyx_v_f[0]) = 79; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":901 -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< -- * f += 1 -- * else: -- */ -- /*else*/ { -- __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 901, __pyx_L1_error) -- } -- __pyx_L15:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":902 -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- * f += 1 # <<<<<<<<<<<<<< -- * else: -- * # Cython ignores struct boundary information ("T{...}"), -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- goto __pyx_L13; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":906 -- * # Cython ignores struct boundary information ("T{...}"), -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< -- * return f -- * -- */ -- /*else*/ { -- __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(2, 906, __pyx_L1_error) -- __pyx_v_f = __pyx_t_9; -- } -- __pyx_L13:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- } -- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":907 -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) -- * return f # <<<<<<<<<<<<<< -- * -- * -- */ -- __pyx_r = __pyx_v_f; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -- * -- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< -- * # Recursive utility function used in __getbuffer__ to get format -- * # string. The new location in the format string is returned. -- */ -- -- /* function exit code */ -- __pyx_L1_error:; -- __Pyx_XDECREF(__pyx_t_1); -- __Pyx_XDECREF(__pyx_t_3); -- __Pyx_XDECREF(__pyx_t_4); -- __Pyx_AddTraceback("numpy._util_dtypestring", __pyx_clineno, __pyx_lineno, __pyx_filename); -- __pyx_r = NULL; -- __pyx_L0:; -- __Pyx_XDECREF((PyObject *)__pyx_v_child); -- __Pyx_XDECREF(__pyx_v_fields); -- __Pyx_XDECREF(__pyx_v_childname); -- __Pyx_XDECREF(__pyx_v_new_offset); -- __Pyx_XDECREF(__pyx_v_t); -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -- * int _import_umath() except -1 -+/* "../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): # <<<<<<<<<<<<<< - * Py_INCREF(base) # important to do this before stealing the reference below! -@@ -7298,7 +5894,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1023 -+ /* "../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! # <<<<<<<<<<<<<< -@@ -7307,7 +5903,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - Py_INCREF(__pyx_v_base); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1024 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -7316,7 +5912,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -7328,7 +5924,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyFinishContext(); - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+/* "../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): # <<<<<<<<<<<<<< -@@ -7343,7 +5939,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - int __pyx_t_1; - __Pyx_RefNannySetupContext("get_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1027 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -7352,7 +5948,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - __pyx_v_base = PyArray_BASE(__pyx_v_arr); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -7362,7 +5958,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) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1029 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":936 - * base = PyArray_BASE(arr) - * if base is NULL: - * return None # <<<<<<<<<<<<<< -@@ -7373,7 +5969,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -7382,7 +5978,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1030 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":937 - * if base is NULL: - * return None - * return base # <<<<<<<<<<<<<< -@@ -7394,7 +5990,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = ((PyObject *)__pyx_v_base); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -7409,12 +6005,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { -@@ -7428,13 +6024,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_array", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - { -@@ -7446,20 +6045,20 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1036 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":943 - * cdef inline int import_array() except -1: - * try: -- * _import_array() # <<<<<<<<<<<<<< -+ * __pyx_import_array() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") - */ -- __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1036, __pyx_L3_error) -+ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 943, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - } -@@ -7469,9 +6068,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1037 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":944 - * try: -- * _import_array() -+ * __pyx_import_array() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.multiarray failed to import") - * -@@ -7479,32 +6078,32 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1037, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 944, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__40, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 945, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __PYX_ERR(2, 945, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - __Pyx_XGIVEREF(__pyx_t_1); -@@ -7515,12 +6114,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - /* function exit code */ -@@ -7538,7 +6137,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -7557,9 +6156,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_umath", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -7575,16 +6177,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1042 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":949 - * cdef inline int import_umath() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1042, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 949, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -7598,7 +6200,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1043 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":950 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< -@@ -7608,28 +6210,28 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1043, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 950, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__41, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__36, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 951, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __PYX_ERR(2, 951, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -7644,7 +6246,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -7667,7 +6269,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -7686,9 +6288,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_ufunc", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -7704,16 +6309,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1048 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":955 - * cdef inline int import_ufunc() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1048, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 955, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -7727,35 +6332,38 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1049 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":956 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.umath failed to import") -+ * - */ - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1049, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 956, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1050 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":957 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< -+ * -+ * cdef extern from *: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__41, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__36, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 957, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __PYX_ERR(2, 957, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -7770,7 +6378,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -7793,6 +6401,180 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - return __pyx_r; - } - -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_timedelta64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":979 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_datetime64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":994 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { -+ npy_datetime __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1004 -+ * also needed. That can be found using `get_datetime64_unit`. -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { -+ npy_timedelta __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1011 -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { -+ NPY_DATETIMEUNIT __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1018 -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ * """ -+ * return (obj).obmeta.base # <<<<<<<<<<<<<< -+ */ -+ __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ - static PyObject *__pyx_tp_new_4cylp_2cy_5CyCgl_CyCglCutGenerator(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { - PyObject *o; - if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { -@@ -7825,7 +6607,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglCutGenerator = { - sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglCutGenerator), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_5CyCgl_CyCglCutGenerator, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -7878,6 +6665,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglCutGenerator = { - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyObject *__pyx_tp_new_4cylp_2cy_5CyCgl_CyCglAllDifferent(PyTypeObject *t, PyObject *a, PyObject *k) { -@@ -7902,7 +6695,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglAllDifferent = { - sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglAllDifferent), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_5CyCgl_CyCglCutGenerator, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -7955,6 +6753,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglAllDifferent = { - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyObject *__pyx_tp_new_4cylp_2cy_5CyCgl_CyCglClique(PyTypeObject *t, PyObject *a, PyObject *k) { -@@ -7979,7 +6783,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglClique = { - sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglClique), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_5CyCgl_CyCglCutGenerator, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -8032,6 +6841,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglClique = { - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - static struct __pyx_vtabstruct_4cylp_2cy_5CyCgl_CyCglKnapsackCover __pyx_vtable_4cylp_2cy_5CyCgl_CyCglKnapsackCover; - -@@ -8079,7 +6894,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglKnapsackCover = { - sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglKnapsackCover), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_5CyCgl_CyCglCutGenerator, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -8132,6 +6952,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglKnapsackCover = { - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyObject *__pyx_tp_new_4cylp_2cy_5CyCgl_CyCglOddHole(PyTypeObject *t, PyObject *a, PyObject *k) { -@@ -8156,7 +6982,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglOddHole = { - sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglOddHole), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_5CyCgl_CyCglCutGenerator, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -8209,6 +7040,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglOddHole = { - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyObject *__pyx_tp_new_4cylp_2cy_5CyCgl_CyCglFlowCover(PyTypeObject *t, PyObject *a, PyObject *k) { -@@ -8233,7 +7070,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglFlowCover = { - sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglFlowCover), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_5CyCgl_CyCglCutGenerator, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -8286,6 +7128,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglFlowCover = { - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - static struct __pyx_vtabstruct_4cylp_2cy_5CyCgl_CyCglGomory __pyx_vtable_4cylp_2cy_5CyCgl_CyCglGomory; - -@@ -8333,7 +7181,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglGomory = { - sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglGomory), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_5CyCgl_CyCglCutGenerator, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -8386,6 +7239,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglGomory = { - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyObject *__pyx_tp_new_4cylp_2cy_5CyCgl_CyCglRedSplit(PyTypeObject *t, PyObject *a, PyObject *k) { -@@ -8410,7 +7269,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglRedSplit = { - sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglRedSplit), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_5CyCgl_CyCglCutGenerator, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -8460,8 +7324,14 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglRedSplit = { - #if PY_VERSION_HEX >= 0x030400a1 - 0, /*tp_finalize*/ - #endif -- #if PY_VERSION_HEX >= 0x030800b1 -- 0, /*tp_vectorcall*/ -+ #if PY_VERSION_HEX >= 0x030800b1 -+ 0, /*tp_vectorcall*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ - #endif - }; - -@@ -8487,7 +7357,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglLiftAndProject = { - sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglLiftAndProject), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_5CyCgl_CyCglCutGenerator, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -8540,6 +7415,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglLiftAndProject = { - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyObject *__pyx_tp_new_4cylp_2cy_5CyCgl_CyCglLandP(PyTypeObject *t, PyObject *a, PyObject *k) { -@@ -8564,7 +7445,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglLandP = { - sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglLandP), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_5CyCgl_CyCglCutGenerator, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -8617,6 +7503,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglLandP = { - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyObject *__pyx_tp_new_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding(PyTypeObject *t, PyObject *a, PyObject *k) { -@@ -8641,7 +7533,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding = { - sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_5CyCgl_CyCglCutGenerator, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -8694,6 +7591,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding = { - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyObject *__pyx_tp_new_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding2(PyTypeObject *t, PyObject *a, PyObject *k) { -@@ -8718,7 +7621,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding2 = { - sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding2), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_5CyCgl_CyCglCutGenerator, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -8771,6 +7679,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglMixedIntegerRounding2 = { - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyObject *__pyx_tp_new_4cylp_2cy_5CyCgl_CyCglTwomir(PyTypeObject *t, PyObject *a, PyObject *k) { -@@ -8795,7 +7709,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglTwomir = { - sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglTwomir), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_5CyCgl_CyCglCutGenerator, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -8848,6 +7767,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglTwomir = { - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyObject *__pyx_tp_new_4cylp_2cy_5CyCgl_CyCglResidualCapacity(PyTypeObject *t, PyObject *a, PyObject *k) { -@@ -8872,7 +7797,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglResidualCapacity = { - sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglResidualCapacity), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_5CyCgl_CyCglCutGenerator, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -8925,6 +7855,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglResidualCapacity = { - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyObject *__pyx_tp_new_4cylp_2cy_5CyCgl_CyCglPreProcess(PyTypeObject *t, PyObject *a, PyObject *k) { -@@ -8949,7 +7885,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglPreProcess = { - sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglPreProcess), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_5CyCgl_CyCglCutGenerator, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -9002,6 +7943,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglPreProcess = { - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyObject *__pyx_tp_new_4cylp_2cy_5CyCgl_CyCglProbing(PyTypeObject *t, PyObject *a, PyObject *k) { -@@ -9026,7 +7973,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglProbing = { - sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglProbing), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_5CyCgl_CyCglCutGenerator, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -9079,6 +8031,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglProbing = { - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyObject *__pyx_tp_new_4cylp_2cy_5CyCgl_CyCglSimpleRounding(PyTypeObject *t, PyObject *a, PyObject *k) { -@@ -9103,7 +8061,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglSimpleRounding = { - sizeof(struct __pyx_obj_4cylp_2cy_5CyCgl_CyCglSimpleRounding), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_5CyCgl_CyCglCutGenerator, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -9156,6 +8119,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_5CyCgl_CyCglSimpleRounding = { - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyMethodDef __pyx_methods[] = { -@@ -9221,26 +8190,18 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_CyCglResidualCapacity, __pyx_k_CyCglResidualCapacity, sizeof(__pyx_k_CyCglResidualCapacity), 0, 0, 1, 1}, - {&__pyx_n_s_CyCglSimpleRounding, __pyx_k_CyCglSimpleRounding, sizeof(__pyx_k_CyCglSimpleRounding), 0, 0, 1, 1}, - {&__pyx_n_s_CyCglTwomir, __pyx_k_CyCglTwomir, sizeof(__pyx_k_CyCglTwomir), 0, 0, 1, 1}, -- {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, -- {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, - {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, -- {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, -- {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, -- {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, - {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, - {&__pyx_n_s_limit, __pyx_k_limit, sizeof(__pyx_k_limit), 0, 0, 1, 1}, - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, - {&__pyx_n_s_maxInKnapsack, __pyx_k_maxInKnapsack, sizeof(__pyx_k_maxInKnapsack), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, -- {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, -- {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, - {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0}, - {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0}, - {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0}, - {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, -- {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, -@@ -9248,15 +8209,11 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, - {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, -- {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, - {0, 0, 0, 0, 0, 0, 0} - }; - static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 2, __pyx_L1_error) -- __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(2, 272, __pyx_L1_error) -- __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(2, 285, __pyx_L1_error) -- __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(2, 856, __pyx_L1_error) -- __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 1038, __pyx_L1_error) -+ __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 945, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -@@ -9589,82 +8546,27 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_GOTREF(__pyx_tuple__34); - __Pyx_GIVEREF(__pyx_tuple__34); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":272 -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_tuple__35 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(2, 272, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__35); -- __Pyx_GIVEREF(__pyx_tuple__35); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":276 -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_tuple__36 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(2, 276, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__36); -- __Pyx_GIVEREF(__pyx_tuple__36); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":306 -- * if ((descr.byteorder == c'>' and little_endian) or -- * (descr.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * if t == NPY_BYTE: f = "b" -- * elif t == NPY_UBYTE: f = "B" -- */ -- __pyx_tuple__37 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(2, 306, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__37); -- __Pyx_GIVEREF(__pyx_tuple__37); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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_tuple__38 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__38); -- __Pyx_GIVEREF(__pyx_tuple__38); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_tuple__39 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__39); -- __Pyx_GIVEREF(__pyx_tuple__39); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_tuple__40 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(2, 1038, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__40); -- __Pyx_GIVEREF(__pyx_tuple__40); -+ __pyx_tuple__35 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(2, 945, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__35); -+ __Pyx_GIVEREF(__pyx_tuple__35); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_tuple__41 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(2, 1044, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__41); -- __Pyx_GIVEREF(__pyx_tuple__41); -+ __pyx_tuple__36 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(2, 951, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__36); -+ __Pyx_GIVEREF(__pyx_tuple__36); - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; -@@ -9714,6 +8616,9 @@ static int __Pyx_modinit_function_export_code(void) { - - static int __Pyx_modinit_type_init_code(void) { - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ - if (PyType_Ready(&__pyx_type_4cylp_2cy_5CyCgl_CyCglCutGenerator) < 0) __PYX_ERR(1, 4, __pyx_L1_error) -@@ -9918,6 +8823,9 @@ static int __Pyx_modinit_type_init_code(void) { - static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error) -@@ -9931,18 +8839,38 @@ static int __Pyx_modinit_type_import_code(void) { - __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(3, 9, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 206, __pyx_L1_error) -+ __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 206, __pyx_L1_error) -- __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 229, __pyx_L1_error) -- __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 233, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 200, __pyx_L1_error) -+ __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 223, __pyx_L1_error) -+ __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 227, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 242, __pyx_L1_error) -- __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 918, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 239, __pyx_L1_error) -+ __pyx_ptype_5numpy_generic = __Pyx_ImportType(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 771, __pyx_L1_error) -+ __pyx_ptype_5numpy_number = __Pyx_ImportType(__pyx_t_1, "numpy", "number", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 773, __pyx_L1_error) -+ __pyx_ptype_5numpy_integer = __Pyx_ImportType(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 775, __pyx_L1_error) -+ __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 777, __pyx_L1_error) -+ __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 779, __pyx_L1_error) -+ __pyx_ptype_5numpy_inexact = __Pyx_ImportType(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 781, __pyx_L1_error) -+ __pyx_ptype_5numpy_floating = __Pyx_ImportType(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 783, __pyx_L1_error) -+ __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 785, __pyx_L1_error) -+ __pyx_ptype_5numpy_flexible = __Pyx_ImportType(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 787, __pyx_L1_error) -+ __pyx_ptype_5numpy_character = __Pyx_ImportType(__pyx_t_1, "numpy", "character", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 789, __pyx_L1_error) -+ __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 827, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_RefNannyFinishContext(); - return 0; -@@ -9969,17 +8897,19 @@ static int __Pyx_modinit_function_import_code(void) { - } - - --#if PY_MAJOR_VERSION < 3 --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC void --#else -+#ifndef CYTHON_NO_PYINIT_EXPORT - #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#elif PY_MAJOR_VERSION < 3 -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" void -+#else -+#define __Pyx_PyMODINIT_FUNC void - #endif - #else --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC PyObject * -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * - #else --#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#define __Pyx_PyMODINIT_FUNC PyObject * - #endif - #endif - -@@ -10061,6 +8991,9 @@ static CYTHON_SMALL_CODE int __pyx_pymod_exec_CyCgl(PyObject *__pyx_pyinit_modul - #endif - { - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { -@@ -10108,11 +9041,9 @@ if (!__Pyx_RefNanny) { - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ -- #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS -- #ifdef WITH_THREAD /* Python build with threading support? */ -+ #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - PyEval_InitThreads(); - #endif -- #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; -@@ -10149,15 +9080,15 @@ if (!__Pyx_RefNanny) { - } - #endif - /*--- Builtin init code ---*/ -- if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Constants init code ---*/ -- if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(); - (void)__Pyx_modinit_variable_export_code(); - (void)__Pyx_modinit_function_export_code(); -- if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; -- if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; -+ if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) -+ if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) - (void)__Pyx_modinit_variable_import_code(); - (void)__Pyx_modinit_function_import_code(); - /*--- Execution code ---*/ -@@ -10175,12 +9106,12 @@ if (!__Pyx_RefNanny) { - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -- * raise ImportError("numpy.core.umath failed to import") -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -- * try: -- * _import_umath() -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ - - /*--- Wrapped vars code ---*/ -@@ -10257,7 +9188,7 @@ static PyObject *__Pyx_GetBuiltinName(PyObject *name) { - #if CYTHON_COMPILING_IN_CPYTHON - static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; -- ternaryfunc call = func->ob_type->tp_call; -+ ternaryfunc call = Py_TYPE(func)->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -@@ -10558,7 +9489,7 @@ static int __Pyx_ParseOptionalKeywords( - } - name = first_kw_arg; - #if PY_MAJOR_VERSION < 3 -- if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { -+ if (likely(PyString_Check(key))) { - while (*name) { - if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) - && _PyString_Eq(**name, key)) { -@@ -10585,7 +9516,7 @@ static int __Pyx_ParseOptionalKeywords( - while (*name) { - int cmp = (**name == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 -- (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : -+ (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**name, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; -@@ -10601,7 +9532,7 @@ static int __Pyx_ParseOptionalKeywords( - while (argname != first_kw_arg) { - int cmp = (**argname == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 -- (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : -+ (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**argname, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; -@@ -10652,263 +9583,6 @@ static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr - } - #endif - --/* PyCFunctionFastCall */ --#if CYTHON_FAST_PYCCALL --static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { -- PyCFunctionObject *func = (PyCFunctionObject*)func_obj; -- PyCFunction meth = PyCFunction_GET_FUNCTION(func); -- PyObject *self = PyCFunction_GET_SELF(func); -- int flags = PyCFunction_GET_FLAGS(func); -- assert(PyCFunction_Check(func)); -- assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); -- assert(nargs >= 0); -- assert(nargs == 0 || args != NULL); -- /* _PyCFunction_FastCallDict() must not be called with an exception set, -- because it may clear it (directly or indirectly) and so the -- caller loses its exception */ -- assert(!PyErr_Occurred()); -- if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { -- return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); -- } else { -- return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); -- } --} --#endif -- --/* PyFunctionFastCall */ --#if CYTHON_FAST_PYCALL --static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, -- PyObject *globals) { -- PyFrameObject *f; -- PyThreadState *tstate = __Pyx_PyThreadState_Current; -- PyObject **fastlocals; -- Py_ssize_t i; -- PyObject *result; -- assert(globals != NULL); -- /* XXX Perhaps we should create a specialized -- PyFrame_New() that doesn't take locals, but does -- take builtins without sanity checking them. -- */ -- assert(tstate != NULL); -- f = PyFrame_New(tstate, co, globals, NULL); -- if (f == NULL) { -- return NULL; -- } -- fastlocals = __Pyx_PyFrame_GetLocalsplus(f); -- for (i = 0; i < na; i++) { -- Py_INCREF(*args); -- fastlocals[i] = *args++; -- } -- result = PyEval_EvalFrameEx(f,0); -- ++tstate->recursion_depth; -- Py_DECREF(f); -- --tstate->recursion_depth; -- return result; --} --#if 1 || PY_VERSION_HEX < 0x030600B1 --static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { -- PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); -- PyObject *globals = PyFunction_GET_GLOBALS(func); -- PyObject *argdefs = PyFunction_GET_DEFAULTS(func); -- PyObject *closure; --#if PY_MAJOR_VERSION >= 3 -- PyObject *kwdefs; --#endif -- PyObject *kwtuple, **k; -- PyObject **d; -- Py_ssize_t nd; -- Py_ssize_t nk; -- PyObject *result; -- assert(kwargs == NULL || PyDict_Check(kwargs)); -- nk = kwargs ? PyDict_Size(kwargs) : 0; -- if (Py_EnterRecursiveCall((char*)" while calling a Python object")) { -- return NULL; -- } -- if ( --#if PY_MAJOR_VERSION >= 3 -- co->co_kwonlyargcount == 0 && --#endif -- likely(kwargs == NULL || nk == 0) && -- co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { -- if (argdefs == NULL && co->co_argcount == nargs) { -- result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); -- goto done; -- } -- else if (nargs == 0 && argdefs != NULL -- && co->co_argcount == Py_SIZE(argdefs)) { -- /* function called with no arguments, but all parameters have -- a default value: use default values as arguments .*/ -- args = &PyTuple_GET_ITEM(argdefs, 0); -- result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); -- goto done; -- } -- } -- if (kwargs != NULL) { -- Py_ssize_t pos, i; -- kwtuple = PyTuple_New(2 * nk); -- if (kwtuple == NULL) { -- result = NULL; -- goto done; -- } -- k = &PyTuple_GET_ITEM(kwtuple, 0); -- pos = i = 0; -- while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { -- Py_INCREF(k[i]); -- Py_INCREF(k[i+1]); -- i += 2; -- } -- nk = i / 2; -- } -- else { -- kwtuple = NULL; -- k = NULL; -- } -- closure = PyFunction_GET_CLOSURE(func); --#if PY_MAJOR_VERSION >= 3 -- kwdefs = PyFunction_GET_KW_DEFAULTS(func); --#endif -- if (argdefs != NULL) { -- d = &PyTuple_GET_ITEM(argdefs, 0); -- nd = Py_SIZE(argdefs); -- } -- else { -- d = NULL; -- nd = 0; -- } --#if PY_MAJOR_VERSION >= 3 -- result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, -- args, (int)nargs, -- k, (int)nk, -- d, (int)nd, kwdefs, closure); --#else -- result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, -- args, (int)nargs, -- k, (int)nk, -- d, (int)nd, closure); --#endif -- Py_XDECREF(kwtuple); --done: -- Py_LeaveRecursiveCall(); -- return result; --} --#endif --#endif -- --/* PyObjectCallMethO */ --#if CYTHON_COMPILING_IN_CPYTHON --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { -- PyObject *self, *result; -- PyCFunction cfunc; -- cfunc = PyCFunction_GET_FUNCTION(func); -- self = PyCFunction_GET_SELF(func); -- if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -- return NULL; -- result = cfunc(self, arg); -- Py_LeaveRecursiveCall(); -- if (unlikely(!result) && unlikely(!PyErr_Occurred())) { -- PyErr_SetString( -- PyExc_SystemError, -- "NULL result without error in PyObject_Call"); -- } -- return result; --} --#endif -- --/* PyObjectCallOneArg */ --#if CYTHON_COMPILING_IN_CPYTHON --static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { -- PyObject *result; -- PyObject *args = PyTuple_New(1); -- if (unlikely(!args)) return NULL; -- Py_INCREF(arg); -- PyTuple_SET_ITEM(args, 0, arg); -- result = __Pyx_PyObject_Call(func, args, NULL); -- Py_DECREF(args); -- return result; --} --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { --#if CYTHON_FAST_PYCALL -- if (PyFunction_Check(func)) { -- return __Pyx_PyFunction_FastCall(func, &arg, 1); -- } --#endif -- if (likely(PyCFunction_Check(func))) { -- if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { -- return __Pyx_PyObject_CallMethO(func, arg); --#if CYTHON_FAST_PYCCALL -- } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { -- return __Pyx_PyCFunction_FastCall(func, &arg, 1); --#endif -- } -- } -- return __Pyx__PyObject_CallOneArg(func, arg); --} --#else --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { -- PyObject *result; -- PyObject *args = PyTuple_Pack(1, arg); -- if (unlikely(!args)) return NULL; -- result = __Pyx_PyObject_Call(func, args, NULL); -- Py_DECREF(args); -- return result; --} --#endif -- --/* DictGetItem */ --#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY --static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { -- PyObject *value; -- value = PyDict_GetItemWithError(d, key); -- if (unlikely(!value)) { -- if (!PyErr_Occurred()) { -- if (unlikely(PyTuple_Check(key))) { -- PyObject* args = PyTuple_Pack(1, key); -- if (likely(args)) { -- PyErr_SetObject(PyExc_KeyError, args); -- Py_DECREF(args); -- } -- } else { -- PyErr_SetObject(PyExc_KeyError, key); -- } -- } -- return NULL; -- } -- Py_INCREF(value); -- return value; --} --#endif -- --/* RaiseTooManyValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { -- PyErr_Format(PyExc_ValueError, -- "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); --} -- --/* RaiseNeedMoreValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { -- PyErr_Format(PyExc_ValueError, -- "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", -- index, (index == 1) ? "" : "s"); --} -- --/* RaiseNoneIterError */ --static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); --} -- --/* ExtTypeTest */ --static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { -- if (unlikely(!type)) { -- PyErr_SetString(PyExc_SystemError, "Missing type object"); -- return 0; -- } -- if (likely(__Pyx_TypeCheck(obj, type))) -- return 1; -- PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", -- Py_TYPE(obj)->tp_name, type->tp_name); -- return 0; --} -- - /* GetTopmostException */ - #if CYTHON_USE_EXC_INFO_STACK - static _PyErr_StackItem * -@@ -11114,6 +9788,28 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam - } - #endif - -+/* PyObjectGetAttrStrNoError */ -+static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { -+ __Pyx_PyThreadState_declare -+ __Pyx_PyThreadState_assign -+ if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) -+ __Pyx_PyErr_Clear(); -+} -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { -+ PyObject *result; -+#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 -+ PyTypeObject* tp = Py_TYPE(obj); -+ if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { -+ return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); -+ } -+#endif -+ result = __Pyx_PyObject_GetAttrStr(obj, attr_name); -+ if (unlikely(!result)) { -+ __Pyx_PyObject_GetAttrStr_ClearAttributeError(); -+ } -+ return result; -+} -+ - /* SetupReduce */ - static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { - int ret; -@@ -11141,43 +9837,51 @@ static int __Pyx_setup_reduce(PyObject* type_obj) { - PyObject *setstate = NULL; - PyObject *setstate_cython = NULL; - #if CYTHON_USE_PYTYPE_LOOKUP -- if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #else -- if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #endif - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #else -- object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #endif -- reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; -+ reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; - if (reduce_ex == object_reduce_ex) { - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #else -- object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #endif -- reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; -+ reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; - if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { -- reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; -+ reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); -+ if (likely(reduce_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (reduce == object_reduce || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); - if (!setstate) PyErr_Clear(); - if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { -- setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; -+ setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); -+ if (likely(setstate_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (!setstate || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - } - PyType_Modified((PyTypeObject*)type_obj); - } - } -- goto GOOD; --BAD: -+ goto __PYX_GOOD; -+__PYX_BAD: - if (!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); - ret = -1; --GOOD: -+__PYX_GOOD: - #if !CYTHON_USE_PYTYPE_LOOKUP - Py_XDECREF(object_reduce); - Py_XDECREF(object_reduce_ex); -@@ -11297,7 +10001,7 @@ static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UIN - - /* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK --static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { -+static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) { - PyObject *use_cline; - PyObject *ptype, *pvalue, *ptraceback; - #if CYTHON_COMPILING_IN_CPYTHON -@@ -11327,7 +10031,7 @@ static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { - } - if (!use_cline) { - c_line = 0; -- PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); -+ (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; -@@ -11401,7 +10105,7 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - if (__pyx_code_cache.count == __pyx_code_cache.max_count) { - int new_max = __pyx_code_cache.max_count + 64; - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( -- __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); -+ __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); - if (unlikely(!entries)) { - return; - } -@@ -11424,30 +10128,31 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { -- PyCodeObject *py_code = 0; -- PyObject *py_srcfile = 0; -- PyObject *py_funcname = 0; -+ PyCodeObject *py_code = NULL; -+ PyObject *py_funcname = NULL; - #if PY_MAJOR_VERSION < 3 -+ PyObject *py_srcfile = NULL; - py_srcfile = PyString_FromString(filename); -- #else -- py_srcfile = PyUnicode_FromString(filename); -- #endif - if (!py_srcfile) goto bad; -+ #endif - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; -+ funcname = PyUnicode_AsUTF8(py_funcname); -+ if (!funcname) goto bad; - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); -- #else -- py_funcname = PyUnicode_FromString(funcname); -+ if (!py_funcname) goto bad; - #endif - } -- if (!py_funcname) goto bad; -+ #if PY_MAJOR_VERSION < 3 - py_code = __Pyx_PyCode_New( - 0, - 0, -@@ -11466,11 +10171,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); -- Py_DECREF(py_funcname); -+ #else -+ py_code = PyCode_NewEmpty(filename, funcname, py_line); -+ #endif -+ Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline - return py_code; - bad: -- Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); -+ #if PY_MAJOR_VERSION < 3 -+ Py_XDECREF(py_srcfile); -+ #endif - return NULL; - } - static void __Pyx_AddTraceback(const char *funcname, int c_line, -@@ -11502,37 +10212,6 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - Py_XDECREF(py_frame); - } - --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(int) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(int) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(int) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(int), -- little, !is_unsigned); -- } --} -- - /* CIntFromPyVerify */ - #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ - __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) -@@ -11672,7 +10351,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_float(a, a); - return __Pyx_c_prod_float(a, a); - case 3: - z = __Pyx_c_prod_float(a, a); -@@ -11827,7 +10505,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_double(a, a); - return __Pyx_c_prod_double(a, a); - case 3: - z = __Pyx_c_prod_double(a, a); -@@ -11866,24 +10543,31 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - #endif - - /* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { -- const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0; -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { -- if (sizeof(enum NPY_TYPES) < sizeof(long)) { -+ if (sizeof(int) < sizeof(long)) { - return PyInt_FromLong((long) value); -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { -+ } else if (sizeof(int) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); - #ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { -+ } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); - #endif - } - } else { -- if (sizeof(enum NPY_TYPES) <= sizeof(long)) { -+ if (sizeof(int) <= sizeof(long)) { - return PyInt_FromLong((long) value); - #ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { -+ } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); - #endif - } -@@ -11891,14 +10575,21 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES v - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), -+ return _PyLong_FromByteArray(bytes, sizeof(int), - little, !is_unsigned); - } - } - - /* CIntFromPy */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -12087,7 +10778,14 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - - /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(long) < sizeof(long)) { -@@ -12118,7 +10816,14 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - - /* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -12669,6 +11374,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_DECREF(x); - return ival; - } -+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { -+ if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { -+ return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); -+#if PY_MAJOR_VERSION < 3 -+ } else if (likely(PyInt_CheckExact(o))) { -+ return PyInt_AS_LONG(o); -+#endif -+ } else { -+ Py_ssize_t ival; -+ PyObject *x; -+ x = PyNumber_Index(o); -+ if (!x) return -1; -+ ival = PyInt_AsLong(x); -+ Py_DECREF(x); -+ return ival; -+ } -+} - static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); - } -diff --git a/cylp/cy/CyCglCutGeneratorBase.cpp b/cylp/cy/CyCglCutGeneratorBase.cpp -index acf66c0..5195449 100644 ---- a/cylp/cy/CyCglCutGeneratorBase.cpp -+++ b/cylp/cy/CyCglCutGeneratorBase.cpp -@@ -1,14 +1,16 @@ --/* Generated by Cython 0.29.12 */ -+/* 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_12" --#define CYTHON_HEX_VERSION 0x001D0CF0 -+#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) -@@ -449,7 +516,15 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) - #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) -+ #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 - #else - #define CYTHON_PEP393_ENABLED 0 - #define PyUnicode_1BYTE_KIND 1 -@@ -498,8 +573,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact -+#ifndef PyObject_Unicode - #define PyObject_Unicode PyObject_Str - #endif -+#endif - #if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) - #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) -@@ -510,6 +587,13 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #ifndef PySet_CheckExact - #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) - #endif -+#if PY_VERSION_HEX >= 0x030900A4 -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) -+#else -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) -+#endif - #if CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) - #else -@@ -543,13 +627,13 @@ 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) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) -+ #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) - #else - #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) - #endif -@@ -590,11 +674,10 @@ static CYTHON_INLINE float __PYX_NAN() { - #define __Pyx_truncl truncl - #endif - -- -+#define __PYX_MARK_ERR_POS(f_index, lineno) \ -+ { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } - #define __PYX_ERR(f_index, lineno, Ln_error) \ --{ \ -- __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ --} -+ { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } - - #ifndef __PYX_EXTERN_C - #ifdef __cplusplus -@@ -615,7 +698,13 @@ static CYTHON_INLINE float __PYX_NAN() { - #include "ClpFactorization.hpp" - #include "IClpPrimalColumnPivotBase.h" - #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 "ClpDualRowPivot.hpp" - #include "IClpDualRowPivotBase.h" - #include "CoinModel.hpp" -@@ -643,11 +732,11 @@ static CYTHON_INLINE float __PYX_NAN() { - #include "OsiSolverInterface.hpp" - #include "CbcCompareUser.hpp" - #include "ICbcModel.hpp" -+#include - #include "ios" - #include "new" - #include "stdexcept" - #include "typeinfo" --#include - #include - #include "IClpSimplex.hpp" - #include "IOsiCuts.hpp" -@@ -749,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 -@@ -884,26 +974,26 @@ static const char *__pyx_filename; - - static const char *__pyx_f[] = { - "stringsource", -- "cylp\\cy\\CyCglCutGeneratorBase.pyx", -+ "cylp/cy/CyCglCutGeneratorBase.pyx", - "__init__.pxd", - "type.pxd", - "bool.pxd", - "complex.pxd", -- "cylp\\cy\\CyCoinIndexedVector.pxd", -- "cylp\\cy\\CyClpPrimalColumnPivotBase.pxd", -- "cylp\\cy\\CyClpDualRowPivotBase.pxd", -- "cylp\\cy\\CyCoinModel.pxd", -- "cylp\\cy\\CyCoinPackedMatrix.pxd", -- "cylp\\cy\\CyCgl.pxd", -- "cylp\\cy\\CyCbcNode.pxd", -- "cylp\\cy\\CyOsiSolverInterface.pxd", -- "cylp\\cy\\CyCbcModel.pxd", -- "cylp\\cy\\CyClpSimplex.pxd", -- "cylp\\cy\\CyOsiCuts.pxd", -- "cylp\\cy\\CyCglTreeInfo.pxd", -+ "cylp/cy/CyCoinIndexedVector.pxd", -+ "cylp/cy/CyClpPrimalColumnPivotBase.pxd", -+ "cylp/cy/CyClpDualRowPivotBase.pxd", -+ "cylp/cy/CyCoinModel.pxd", -+ "cylp/cy/CyCoinPackedMatrix.pxd", -+ "cylp/cy/CyCgl.pxd", -+ "cylp/cy/CyCbcNode.pxd", -+ "cylp/cy/CyOsiSolverInterface.pxd", -+ "cylp/cy/CyCbcModel.pxd", -+ "cylp/cy/CyClpSimplex.pxd", -+ "cylp/cy/CyOsiCuts.pxd", -+ "cylp/cy/CyCglTreeInfo.pxd", - }; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":776 -+/* "../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 # <<<<<<<<<<<<<< -@@ -912,7 +1002,7 @@ static const char *__pyx_f[] = { - */ - typedef npy_int8 __pyx_t_5numpy_int8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":777 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":691 - * - * ctypedef npy_int8 int8_t - * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< -@@ -921,7 +1011,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; - */ - typedef npy_int16 __pyx_t_5numpy_int16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":778 -+/* "../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 # <<<<<<<<<<<<<< -@@ -930,7 +1020,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; - */ - typedef npy_int32 __pyx_t_5numpy_int32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":779 -+/* "../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 # <<<<<<<<<<<<<< -@@ -939,7 +1029,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; - */ - typedef npy_int64 __pyx_t_5numpy_int64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":783 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":697 - * #ctypedef npy_int128 int128_t - * - * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< -@@ -948,7 +1038,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; - */ - typedef npy_uint8 __pyx_t_5numpy_uint8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":784 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":698 - * - * ctypedef npy_uint8 uint8_t - * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< -@@ -957,7 +1047,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; - */ - typedef npy_uint16 __pyx_t_5numpy_uint16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":785 -+/* "../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 # <<<<<<<<<<<<<< -@@ -966,7 +1056,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; - */ - typedef npy_uint32 __pyx_t_5numpy_uint32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":786 -+/* "../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 # <<<<<<<<<<<<<< -@@ -975,7 +1065,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; - */ - typedef npy_uint64 __pyx_t_5numpy_uint64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":790 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":704 - * #ctypedef npy_uint128 uint128_t - * - * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< -@@ -984,7 +1074,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; - */ - typedef npy_float32 __pyx_t_5numpy_float32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":791 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":705 - * - * ctypedef npy_float32 float32_t - * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< -@@ -993,7 +1083,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; - */ - typedef npy_float64 __pyx_t_5numpy_float64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":800 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1002,7 +1092,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; - */ - typedef npy_long __pyx_t_5numpy_int_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":801 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1011,7 +1101,7 @@ typedef npy_long __pyx_t_5numpy_int_t; - */ - typedef npy_longlong __pyx_t_5numpy_long_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":802 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1020,7 +1110,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; - */ - typedef npy_longlong __pyx_t_5numpy_longlong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":804 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":718 - * ctypedef npy_longlong longlong_t - * - * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< -@@ -1029,7 +1119,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; - */ - typedef npy_ulong __pyx_t_5numpy_uint_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":805 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":719 - * - * ctypedef npy_ulong uint_t - * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< -@@ -1038,7 +1128,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":806 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1047,7 +1137,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":808 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":722 - * ctypedef npy_ulonglong ulonglong_t - * - * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< -@@ -1056,7 +1146,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - */ - typedef npy_intp __pyx_t_5numpy_intp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":809 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":723 - * - * ctypedef npy_intp intp_t - * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< -@@ -1065,7 +1155,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; - */ - typedef npy_uintp __pyx_t_5numpy_uintp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":811 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":725 - * ctypedef npy_uintp uintp_t - * - * ctypedef npy_double float_t # <<<<<<<<<<<<<< -@@ -1074,7 +1164,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; - */ - typedef npy_double __pyx_t_5numpy_float_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":812 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":726 - * - * ctypedef npy_double float_t - * ctypedef npy_double double_t # <<<<<<<<<<<<<< -@@ -1083,7 +1173,7 @@ typedef npy_double __pyx_t_5numpy_float_t; - */ - typedef npy_double __pyx_t_5numpy_double_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":813 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1148,7 +1238,7 @@ struct __pyx_obj_4cylp_2cy_9CyOsiCuts_CyOsiCuts; - struct __pyx_obj_4cylp_2cy_13CyCglTreeInfo_CyCglTreeInfo; - struct __pyx_obj_4cylp_2cy_21CyCglCutGeneratorBase_CyCglCutGeneratorBase; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":815 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":729 - * ctypedef npy_longdouble longdouble_t - * - * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< -@@ -1157,7 +1247,7 @@ struct __pyx_obj_4cylp_2cy_21CyCglCutGeneratorBase_CyCglCutGeneratorBase; - */ - typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":816 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":730 - * - * ctypedef npy_cfloat cfloat_t - * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< -@@ -1166,7 +1256,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - */ - typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":817 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1175,7 +1265,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - */ - typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":819 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":733 - * ctypedef npy_clongdouble clongdouble_t - * - * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< -@@ -1972,67 +2062,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg - /* RaiseException.proto */ - static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); - --/* PyCFunctionFastCall.proto */ --#if CYTHON_FAST_PYCCALL --static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); --#else --#define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) --#endif -- --/* PyFunctionFastCall.proto */ --#if CYTHON_FAST_PYCALL --#define __Pyx_PyFunction_FastCall(func, args, nargs)\ -- __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) --#if 1 || PY_VERSION_HEX < 0x030600B1 --static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); --#else --#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) --#endif --#define __Pyx_BUILD_ASSERT_EXPR(cond)\ -- (sizeof(char [1 - 2*!(cond)]) - 1) --#ifndef Py_MEMBER_SIZE --#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) --#endif -- static size_t __pyx_pyframe_localsplus_offset = 0; -- #include "frameobject.h" -- #define __Pxy_PyFrame_Initialize_Offsets()\ -- ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ -- (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) -- #define __Pyx_PyFrame_GetLocalsplus(frame)\ -- (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) --#endif -- --/* PyObjectCallMethO.proto */ --#if CYTHON_COMPILING_IN_CPYTHON --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); --#endif -- --/* PyObjectCallOneArg.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); -- --/* 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); -@@ -2082,6 +2111,9 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam - /* SetVTable.proto */ - static int __Pyx_SetVtable(PyObject *dict, void *vtable); - -+/* PyObjectGetAttrStrNoError.proto */ -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); -+ - /* SetupReduce.proto */ - static int __Pyx_setup_reduce(PyObject* type_obj); - -@@ -2252,14 +2284,10 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - #endif - #endif - --/* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); -- --/* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value); -- --/* CIntFromPy.proto */ --static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); -+/* GCCDiagnostics.proto */ -+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -+#define __Pyx_HAS_GCC_DIAGNOSTIC -+#endif - - /* CIntToPy.proto */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); -@@ -2267,6 +2295,9 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); - /* CIntFromPy.proto */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); - -+/* CIntFromPy.proto */ -+static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); -+ - /* FastTypeChecks.proto */ - #if CYTHON_COMPILING_IN_CPYTHON - #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) -@@ -2390,8 +2421,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.CyClpDualRowPivotBase' */ - static PyTypeObject *__pyx_ptype_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase = 0; -@@ -2454,60 +2494,40 @@ int __pyx_module_is_main_cylp__cy__CyCglCutGeneratorBase = 0; - - /* Implementation of 'cylp.cy.CyCglCutGeneratorBase' */ - static PyObject *__pyx_builtin_TypeError; --static PyObject *__pyx_builtin_ValueError; --static PyObject *__pyx_builtin_range; --static PyObject *__pyx_builtin_RuntimeError; - static PyObject *__pyx_builtin_ImportError; - static const char __pyx_k_main[] = "__main__"; - static const char __pyx_k_name[] = "__name__"; - static const char __pyx_k_test[] = "__test__"; --static const char __pyx_k_range[] = "range"; - static const char __pyx_k_import[] = "__import__"; - static const char __pyx_k_reduce[] = "__reduce__"; - static const char __pyx_k_getstate[] = "__getstate__"; - static const char __pyx_k_setstate[] = "__setstate__"; - static const char __pyx_k_TypeError[] = "TypeError"; - static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; --static const char __pyx_k_ValueError[] = "ValueError"; - static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; - static const char __pyx_k_ImportError[] = "ImportError"; --static const char __pyx_k_RuntimeError[] = "RuntimeError"; - static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; - static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; - static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; - static const char __pyx_k_CyCglCutGeneratorBase[] = "CyCglCutGeneratorBase"; --static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; - static const char __pyx_k_cylp_cy_CyCglCutGeneratorBase[] = "cylp.cy.CyCglCutGeneratorBase"; - 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_CyCglCutGenerator_pyx_generateCu[] = "CyCglCutGenerator.pyx: generateCuts must be implemented."; --static const char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; --static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; --static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; - static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import"; - static const char __pyx_k_self_CppSelf_cannot_be_converted[] = "self.CppSelf cannot be converted to a Python object for pickling"; --static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; - static PyObject *__pyx_n_s_CyCglCutGeneratorBase; - static PyObject *__pyx_kp_s_CyCglCutGenerator_pyx_generateCu; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; - static PyObject *__pyx_n_s_ImportError; --static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; --static PyObject *__pyx_n_s_RuntimeError; - static PyObject *__pyx_n_s_TypeError; --static PyObject *__pyx_n_s_ValueError; - static PyObject *__pyx_n_s_cline_in_traceback; - static PyObject *__pyx_n_s_cylp_cy_CyCglCutGeneratorBase; - static PyObject *__pyx_n_s_getstate; - static PyObject *__pyx_n_s_import; - static PyObject *__pyx_n_s_main; - static PyObject *__pyx_n_s_name; --static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous; --static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou; - static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; - static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; - static PyObject *__pyx_n_s_pyx_vtable; --static PyObject *__pyx_n_s_range; - static PyObject *__pyx_n_s_reduce; - static PyObject *__pyx_n_s_reduce_cython; - static PyObject *__pyx_n_s_reduce_ex; -@@ -2515,24 +2535,16 @@ static PyObject *__pyx_kp_s_self_CppSelf_cannot_be_converted; - static PyObject *__pyx_n_s_setstate; - static PyObject *__pyx_n_s_setstate_cython; - static PyObject *__pyx_n_s_test; --static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; - static int __pyx_pf_4cylp_2cy_21CyCglCutGeneratorBase_21CyCglCutGeneratorBase___init__(struct __pyx_obj_4cylp_2cy_21CyCglCutGeneratorBase_CyCglCutGeneratorBase *__pyx_v_self); /* proto */ - static void __pyx_pf_4cylp_2cy_21CyCglCutGeneratorBase_21CyCglCutGeneratorBase_2__dealloc__(struct __pyx_obj_4cylp_2cy_21CyCglCutGeneratorBase_CyCglCutGeneratorBase *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_21CyCglCutGeneratorBase_21CyCglCutGeneratorBase_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_21CyCglCutGeneratorBase_CyCglCutGeneratorBase *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_21CyCglCutGeneratorBase_21CyCglCutGeneratorBase_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_21CyCglCutGeneratorBase_CyCglCutGeneratorBase *__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_21CyCglCutGeneratorBase_CyCglCutGeneratorBase(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ - static PyObject *__pyx_tuple_; - static PyObject *__pyx_tuple__2; - static PyObject *__pyx_tuple__3; - static PyObject *__pyx_tuple__4; - static PyObject *__pyx_tuple__5; --static PyObject *__pyx_tuple__6; --static PyObject *__pyx_tuple__7; --static PyObject *__pyx_tuple__8; --static PyObject *__pyx_tuple__9; --static PyObject *__pyx_tuple__10; - /* Late includes */ - - /* "cylp/cy/CyCglCutGeneratorBase.pyx":6 -@@ -2546,6 +2558,9 @@ static PyObject *__pyx_tuple__10; - static void __pyx_f_4cylp_2cy_21CyCglCutGeneratorBase_RunGenerateCuts(void *__pyx_v_ptr, OsiSolverInterface *__pyx_v_si, CppOsiCuts *__pyx_v_cs, CglTreeInfo __pyx_v_info) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("RunGenerateCuts", 0); - - /* "cylp/cy/CyCglCutGeneratorBase.pyx":9 -@@ -2739,6 +2754,9 @@ static PyObject *__pyx_f_4cylp_2cy_21CyCglCutGeneratorBase_21CyCglCutGeneratorBa - 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("generateCuts", 0); - - /* "cylp/cy/CyCglCutGeneratorBase.pyx":30 -@@ -2843,6 +2861,9 @@ static PyObject *__pyx_pf_4cylp_2cy_21CyCglCutGeneratorBase_21CyCglCutGeneratorB - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -2898,6 +2919,9 @@ static PyObject *__pyx_pf_4cylp_2cy_21CyCglCutGeneratorBase_21CyCglCutGeneratorB - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -2928,1918 +2952,331 @@ static PyObject *__pyx_pf_4cylp_2cy_21CyCglCutGeneratorBase_21CyCglCutGeneratorB - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/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; -- 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); -+ PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; -+ __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":265 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":736 - * -- * cdef int i, ndim -- * cdef int endian_detector = 1 # <<<<<<<<<<<<<< -- * cdef bint little_endian = ((&endian_detector)[0] != 0) -- * -- */ -- __pyx_v_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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); - -- /* "../../../../Users/tkral/Anaconda3/lib/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; -+} - -- /* "../../../../Users/tkral/Anaconda3/lib/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:; - -- /* "../../../../Users/tkral/Anaconda3/lib/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); - -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } - -- /* "../../../../Users/tkral/Anaconda3/lib/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:; - -- /* "../../../../Users/tkral/Anaconda3/lib/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); - -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)))); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- */ -- (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } - -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- /*else*/ { -- __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); -+ /* 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; -+} - -- /* "../../../../Users/tkral/Anaconda3/lib/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:; - -- /* "../../../../Users/tkral/Anaconda3/lib/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; -+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); - -- /* "../../../../Users/tkral/Anaconda3/lib/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":745 - * -- */ -- __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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_MultiIterNew4(a, b, c, d): -+ * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< - * -- * cdef int t -+ * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): - */ -- __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":296 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":744 -+ * return PyArray_MultiIterNew(3, a, b, c) - * -- * cdef int t -- * cdef char* f = NULL # <<<<<<<<<<<<<< -- * cdef dtype descr = PyArray_DESCR(self) -- * cdef int offset -- */ -- __pyx_v_f = NULL; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":297 -- * cdef int t -- * cdef char* f = NULL -- * cdef dtype descr = PyArray_DESCR(self) # <<<<<<<<<<<<<< -- * cdef int offset -+ * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< -+ * return PyArray_MultiIterNew(4, a, b, c, 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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":300 -- * cdef int offset -+ /* 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; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 -+ * return PyArray_MultiIterNew(4, a, b, c, d) - * -- * info.obj = self # <<<<<<<<<<<<<< -+ * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -+ * return PyArray_MultiIterNew(5, a, b, c, d, e) - * -- * 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":302 -- * info.obj = self -+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); -+ -+ /* "../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) # <<<<<<<<<<<<<< - * -- * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< -- * t = descr.type_num -- * if ((descr.byteorder == c'>' and little_endian) or -+ * cdef inline tuple PyDataType_SHAPE(dtype d): - */ -- __pyx_t_1 = ((!(PyDataType_HASFIELDS(__pyx_v_descr) != 0)) != 0); -- if (__pyx_t_1) { -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":303 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 -+ * 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) - * -- * 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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]) = '^'; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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'; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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): -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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(); --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -- * 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; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":822 -- * -- * 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, 822, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -- * 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -- * 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; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":825 -- * -- * 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, 825, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -- * 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -- * 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; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":828 -- * -- * 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, 828, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -- * 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -- * 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; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":831 -- * -- * 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, 831, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -- * 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -- * 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; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":834 -- * -- * 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, 834, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -- * 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) -- * -- */ -- -- /* 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -- * 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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -- * -- * 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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":838 -- * 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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -- * -- * cdef inline tuple PyDataType_SHAPE(dtype d): -- * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -- * return d.subarray.shape -- * else: -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":840 -- * 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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -- * 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -- * -- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< -- * # Recursive utility function used in __getbuffer__ to get format -- * # string. The new location in the format string is returned. -- */ -- --static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) { -- PyArray_Descr *__pyx_v_child = 0; -- int __pyx_v_endian_detector; -- int __pyx_v_little_endian; -- PyObject *__pyx_v_fields = 0; -- PyObject *__pyx_v_childname = NULL; -- PyObject *__pyx_v_new_offset = NULL; -- PyObject *__pyx_v_t = NULL; -- char *__pyx_r; -- __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- Py_ssize_t __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- PyObject *__pyx_t_4 = NULL; -- int __pyx_t_5; -- int __pyx_t_6; -- int __pyx_t_7; -- long __pyx_t_8; -- char *__pyx_t_9; -- __Pyx_RefNannySetupContext("_util_dtypestring", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":848 -- * 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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- if (unlikely(__pyx_v_descr->names == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -- __PYX_ERR(2, 851, __pyx_L1_error) -- } -- __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; -- for (;;) { -- if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; -- #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, 851, __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, 851, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- #endif -- __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":852 -- * -- * for childname in descr.names: -- * fields = descr.fields[childname] # <<<<<<<<<<<<<< -- * child, new_offset = fields -- * -- */ -- if (unlikely(__pyx_v_descr->fields == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -- __PYX_ERR(2, 852, __pyx_L1_error) -- } -- __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":853 -- * 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, 853, __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, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- #endif -- } else { -- __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 853, __pyx_L1_error) -- } -- if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3)); -- __pyx_t_3 = 0; -- __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 856, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0); -- if (!__pyx_t_7) { -- goto __pyx_L8_next_or; -- } else { -- } -- __pyx_t_7 = (__pyx_v_little_endian != 0); -- if (!__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_L8_next_or:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":859 -- * -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< -- * raise ValueError(u"Non-native byte order not supported") -- * # One could encode it in the format string and have Cython -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0); -- if (__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0); -- __pyx_t_6 = __pyx_t_7; -- __pyx_L7_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":860 -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * # One could encode it in the format string and have Cython -- * # complain instead, BUT: < and > in format strings also imply -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 860, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 860, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":870 -- * -- * # Output padding bytes -- * while offset[0] < new_offset: # <<<<<<<<<<<<<< -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- */ -- while (1) { -- __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (!__pyx_t_6) break; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":871 -- * # Output padding bytes -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< -- * f += 1 -- * offset[0] += 1 -- */ -- (__pyx_v_f[0]) = 0x78; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":872 -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte -- * f += 1 # <<<<<<<<<<<<<< -- * offset[0] += 1 -- * -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":873 -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- * offset[0] += 1 # <<<<<<<<<<<<<< -- * -- * offset[0] += child.itemsize -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":875 -- * offset[0] += 1 -- * -- * offset[0] += child.itemsize # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(child): -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); -- if (__pyx_t_6) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":878 -- * -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num # <<<<<<<<<<<<<< -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") -- */ -- __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 878, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 880, __pyx_L1_error) -+ /* 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; -+} - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 -+ * return PyArray_MultiIterNew(5, a, b, c, d, e) - * -+ * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -+ * if PyDataType_HASSUBARRAY(d): -+ * return d.subarray.shape - */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":883 -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 98; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":884 -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":885 -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x68; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":886 -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 72; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":887 -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x69; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":888 -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 73; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":889 -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x6C; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":890 -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 76; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":891 -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x71; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":892 -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 81; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":893 -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":894 -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x64; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":895 -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x67; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":896 -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x66; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":897 -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x64; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":898 -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x67; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":899 -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (likely(__pyx_t_6)) { -- (__pyx_v_f[0]) = 79; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":901 -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< -- * f += 1 -- * else: -- */ -- /*else*/ { -- __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 901, __pyx_L1_error) -- } -- __pyx_L15:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":902 -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- * f += 1 # <<<<<<<<<<<<<< -- * else: -- * # Cython ignores struct boundary information ("T{...}"), -- */ -- __pyx_v_f = (__pyx_v_f + 1); -+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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * 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) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":906 -- * # Cython ignores struct boundary information ("T{...}"), -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< -- * return f -- * -+ /* "../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, 906, __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * 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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":907 -- * # 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; -+ } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * 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; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -+/* "../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): # <<<<<<<<<<<<<< -@@ -4851,7 +3288,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1023 -+ /* "../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! # <<<<<<<<<<<<<< -@@ -4860,7 +3297,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - Py_INCREF(__pyx_v_base); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1024 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -4869,7 +3306,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -4881,7 +3318,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyFinishContext(); - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+/* "../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): # <<<<<<<<<<<<<< -@@ -4896,7 +3333,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - int __pyx_t_1; - __Pyx_RefNannySetupContext("get_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1027 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -4905,7 +3342,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - __pyx_v_base = PyArray_BASE(__pyx_v_arr); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -4915,7 +3352,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) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1029 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":936 - * base = PyArray_BASE(arr) - * if base is NULL: - * return None # <<<<<<<<<<<<<< -@@ -4926,7 +3363,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -4935,7 +3372,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1030 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":937 - * if base is NULL: - * return None - * return base # <<<<<<<<<<<<<< -@@ -4947,7 +3384,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = ((PyObject *)__pyx_v_base); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -4962,12 +3399,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { -@@ -4981,13 +3418,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_array", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - { -@@ -4999,20 +3439,20 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1036 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":943 - * cdef inline int import_array() except -1: - * try: -- * _import_array() # <<<<<<<<<<<<<< -+ * __pyx_import_array() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") - */ -- __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1036, __pyx_L3_error) -+ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 943, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - } -@@ -5022,9 +3462,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1037 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":944 - * try: -- * _import_array() -+ * __pyx_import_array() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.multiarray failed to import") - * -@@ -5032,32 +3472,32 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1037, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 944, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 945, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __PYX_ERR(2, 945, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - __Pyx_XGIVEREF(__pyx_t_1); -@@ -5068,12 +3508,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - /* function exit code */ -@@ -5091,7 +3531,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -5110,9 +3550,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_umath", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5128,16 +3571,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1042 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":949 - * cdef inline int import_umath() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1042, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 949, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5151,7 +3594,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1043 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":950 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< -@@ -5161,28 +3604,28 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1043, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 950, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 951, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __PYX_ERR(2, 951, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5197,7 +3640,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -5220,7 +3663,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -5239,9 +3682,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_ufunc", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5257,16 +3703,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1048 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":955 - * cdef inline int import_ufunc() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1048, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 955, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5280,69 +3726,246 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1049 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":956 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.umath failed to import") -+ * - */ - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1049, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 956, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1050 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":957 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< -+ * -+ * cdef extern from *: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 957, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __PYX_ERR(2, 957, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< - * _import_umath() - * except Exception: - */ -- __Pyx_XGIVEREF(__pyx_t_1); -- __Pyx_XGIVEREF(__pyx_t_2); -- __Pyx_XGIVEREF(__pyx_t_3); -- __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); -- goto __pyx_L1_error; -- __pyx_L8_try_end:; -- } -+ __Pyx_XGIVEREF(__pyx_t_1); -+ __Pyx_XGIVEREF(__pyx_t_2); -+ __Pyx_XGIVEREF(__pyx_t_3); -+ __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); -+ goto __pyx_L1_error; -+ __pyx_L8_try_end:; -+ } -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 -+ * raise ImportError("numpy.core.umath failed to import") -+ * -+ * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -+ * try: -+ * _import_umath() -+ */ -+ -+ /* function exit code */ -+ __pyx_r = 0; -+ goto __pyx_L0; -+ __pyx_L1_error:; -+ __Pyx_XDECREF(__pyx_t_5); -+ __Pyx_XDECREF(__pyx_t_6); -+ __Pyx_XDECREF(__pyx_t_7); -+ __Pyx_XDECREF(__pyx_t_8); -+ __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -+ __pyx_r = -1; -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_timedelta64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":979 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_datetime64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":994 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { -+ npy_datetime __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1004 -+ * also needed. That can be found using `get_datetime64_unit`. -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { -+ npy_timedelta __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1011 -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -- * raise ImportError("numpy.core.umath failed to import") -+static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { -+ NPY_DATETIMEUNIT __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1018 -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ * """ -+ * return (obj).obmeta.base # <<<<<<<<<<<<<< -+ */ -+ __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -- * try: -- * _import_umath() -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ - - /* function exit code */ -- __pyx_r = 0; -- goto __pyx_L0; -- __pyx_L1_error:; -- __Pyx_XDECREF(__pyx_t_5); -- __Pyx_XDECREF(__pyx_t_6); -- __Pyx_XDECREF(__pyx_t_7); -- __Pyx_XDECREF(__pyx_t_8); -- __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -- __pyx_r = -1; - __pyx_L0:; -- __Pyx_RefNannyFinishContext(); - return __pyx_r; - } - static struct __pyx_vtabstruct_4cylp_2cy_21CyCglCutGeneratorBase_CyCglCutGeneratorBase __pyx_vtable_4cylp_2cy_21CyCglCutGeneratorBase_CyCglCutGeneratorBase; -@@ -5373,9 +3996,9 @@ static void __pyx_tp_dealloc_4cylp_2cy_21CyCglCutGeneratorBase_CyCglCutGenerator - { - PyObject *etype, *eval, *etb; - PyErr_Fetch(&etype, &eval, &etb); -- ++Py_REFCNT(o); -+ __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1); - __pyx_pw_4cylp_2cy_21CyCglCutGeneratorBase_21CyCglCutGeneratorBase_3__dealloc__(o); -- --Py_REFCNT(o); -+ __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1); - PyErr_Restore(etype, eval, etb); - } - Py_CLEAR(p->cyModel); -@@ -5412,7 +4035,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_21CyCglCutGeneratorBase_CyCglCutGenerat - sizeof(struct __pyx_obj_4cylp_2cy_21CyCglCutGeneratorBase_CyCglCutGeneratorBase), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_21CyCglCutGeneratorBase_CyCglCutGeneratorBase, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -5465,6 +4093,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_21CyCglCutGeneratorBase_CyCglCutGenerat - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyMethodDef __pyx_methods[] = { -@@ -5515,25 +4149,17 @@ static struct PyModuleDef __pyx_moduledef = { - static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_CyCglCutGeneratorBase, __pyx_k_CyCglCutGeneratorBase, sizeof(__pyx_k_CyCglCutGeneratorBase), 0, 0, 1, 1}, - {&__pyx_kp_s_CyCglCutGenerator_pyx_generateCu, __pyx_k_CyCglCutGenerator_pyx_generateCu, sizeof(__pyx_k_CyCglCutGenerator_pyx_generateCu), 0, 0, 1, 0}, -- {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, -- {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, - {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, -- {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, -- {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, -- {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, - {&__pyx_n_s_cylp_cy_CyCglCutGeneratorBase, __pyx_k_cylp_cy_CyCglCutGeneratorBase, sizeof(__pyx_k_cylp_cy_CyCglCutGeneratorBase), 0, 0, 1, 1}, - {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, - {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, -- {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, -- {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, - {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0}, - {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0}, - {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, -- {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, -@@ -5541,15 +4167,11 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, - {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, -- {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, - {0, 0, 0, 0, 0, 0, 0} - }; - static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 2, __pyx_L1_error) -- __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(2, 272, __pyx_L1_error) -- __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(2, 285, __pyx_L1_error) -- __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(2, 856, __pyx_L1_error) -- __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 1038, __pyx_L1_error) -+ __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 945, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -@@ -5589,82 +4211,27 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_GOTREF(__pyx_tuple__3); - __Pyx_GIVEREF(__pyx_tuple__3); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":272 -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 272, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__4); -- __Pyx_GIVEREF(__pyx_tuple__4); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":276 -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(2, 276, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__5); -- __Pyx_GIVEREF(__pyx_tuple__5); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":306 -- * if ((descr.byteorder == c'>' and little_endian) or -- * (descr.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * if t == NPY_BYTE: f = "b" -- * elif t == NPY_UBYTE: f = "B" -- */ -- __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(2, 306, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__6); -- __Pyx_GIVEREF(__pyx_tuple__6); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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_tuple__7 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__7); -- __Pyx_GIVEREF(__pyx_tuple__7); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__8); -- __Pyx_GIVEREF(__pyx_tuple__8); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(2, 1038, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__9); -- __Pyx_GIVEREF(__pyx_tuple__9); -+ __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 945, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__4); -+ __Pyx_GIVEREF(__pyx_tuple__4); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(2, 1044, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__10); -- __Pyx_GIVEREF(__pyx_tuple__10); -+ __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(2, 951, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__5); -+ __Pyx_GIVEREF(__pyx_tuple__5); - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; -@@ -5705,6 +4272,9 @@ static int __Pyx_modinit_variable_export_code(void) { - - static int __Pyx_modinit_function_export_code(void) { - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); - /*--- Function export code ---*/ - if (__Pyx_ExportFunction("RunGenerateCuts", (void (*)(void))__pyx_f_4cylp_2cy_21CyCglCutGeneratorBase_RunGenerateCuts, "void (void *, OsiSolverInterface *, CppOsiCuts *, CglTreeInfo)") < 0) __PYX_ERR(1, 1, __pyx_L1_error) -@@ -5718,6 +4288,9 @@ static int __Pyx_modinit_function_export_code(void) { - - static int __Pyx_modinit_type_init_code(void) { - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ - __pyx_vtabptr_4cylp_2cy_21CyCglCutGeneratorBase_CyCglCutGeneratorBase = &__pyx_vtable_4cylp_2cy_21CyCglCutGeneratorBase_CyCglCutGeneratorBase; -@@ -5744,6 +4317,9 @@ static int __Pyx_modinit_type_init_code(void) { - static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error) -@@ -5779,18 +4355,38 @@ static int __Pyx_modinit_type_import_code(void) { - if (!__pyx_ptype_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase) __PYX_ERR(7, 67, __pyx_L1_error) - __pyx_vtabptr_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase = (struct __pyx_vtabstruct_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase*)__Pyx_GetVtable(__pyx_ptype_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase->tp_dict); if (unlikely(!__pyx_vtabptr_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase)) __PYX_ERR(7, 67, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 206, __pyx_L1_error) -+ __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 206, __pyx_L1_error) -- __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 229, __pyx_L1_error) -- __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 233, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 200, __pyx_L1_error) -+ __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 223, __pyx_L1_error) -+ __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 227, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 242, __pyx_L1_error) -- __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 918, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 239, __pyx_L1_error) -+ __pyx_ptype_5numpy_generic = __Pyx_ImportType(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 771, __pyx_L1_error) -+ __pyx_ptype_5numpy_number = __Pyx_ImportType(__pyx_t_1, "numpy", "number", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 773, __pyx_L1_error) -+ __pyx_ptype_5numpy_integer = __Pyx_ImportType(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 775, __pyx_L1_error) -+ __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 777, __pyx_L1_error) -+ __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 779, __pyx_L1_error) -+ __pyx_ptype_5numpy_inexact = __Pyx_ImportType(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 781, __pyx_L1_error) -+ __pyx_ptype_5numpy_floating = __Pyx_ImportType(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 783, __pyx_L1_error) -+ __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 785, __pyx_L1_error) -+ __pyx_ptype_5numpy_flexible = __Pyx_ImportType(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 787, __pyx_L1_error) -+ __pyx_ptype_5numpy_character = __Pyx_ImportType(__pyx_t_1, "numpy", "character", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 789, __pyx_L1_error) -+ __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 827, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyClpDualRowPivotBase"); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 72, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); -@@ -5911,17 +4507,19 @@ static int __Pyx_modinit_function_import_code(void) { - } - - --#if PY_MAJOR_VERSION < 3 --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC void --#else -+#ifndef CYTHON_NO_PYINIT_EXPORT - #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#elif PY_MAJOR_VERSION < 3 -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" void -+#else -+#define __Pyx_PyMODINIT_FUNC void - #endif - #else --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC PyObject * -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * - #else --#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#define __Pyx_PyMODINIT_FUNC PyObject * - #endif - #endif - -@@ -6004,6 +4602,9 @@ static CYTHON_SMALL_CODE int __pyx_pymod_exec_CyCglCutGeneratorBase(PyObject *__ - { - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { -@@ -6051,11 +4652,9 @@ if (!__Pyx_RefNanny) { - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ -- #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS -- #ifdef WITH_THREAD /* Python build with threading support? */ -+ #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - PyEval_InitThreads(); - #endif -- #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; -@@ -6092,15 +4691,15 @@ if (!__Pyx_RefNanny) { - } - #endif - /*--- Builtin init code ---*/ -- if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Constants init code ---*/ -- if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(); - (void)__Pyx_modinit_variable_export_code(); -- if (unlikely(__Pyx_modinit_function_export_code() != 0)) goto __pyx_L1_error; -- if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; -- if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; -+ if (unlikely(__Pyx_modinit_function_export_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) -+ if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) -+ if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) - (void)__Pyx_modinit_variable_import_code(); - (void)__Pyx_modinit_function_import_code(); - /*--- Execution code ---*/ -@@ -6135,12 +4734,12 @@ if (!__Pyx_RefNanny) { - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -- * raise ImportError("numpy.core.umath failed to import") -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -- * try: -- * _import_umath() -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ - - /*--- Wrapped vars code ---*/ -@@ -6350,7 +4949,7 @@ static int __Pyx_CheckKeywordStrings( - #if CYTHON_COMPILING_IN_CPYTHON - static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; -- ternaryfunc call = func->ob_type->tp_call; -+ ternaryfunc call = Py_TYPE(func)->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -@@ -6525,263 +5124,6 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject - } - #endif - --/* PyCFunctionFastCall */ --#if CYTHON_FAST_PYCCALL --static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { -- PyCFunctionObject *func = (PyCFunctionObject*)func_obj; -- PyCFunction meth = PyCFunction_GET_FUNCTION(func); -- PyObject *self = PyCFunction_GET_SELF(func); -- int flags = PyCFunction_GET_FLAGS(func); -- assert(PyCFunction_Check(func)); -- assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); -- assert(nargs >= 0); -- assert(nargs == 0 || args != NULL); -- /* _PyCFunction_FastCallDict() must not be called with an exception set, -- because it may clear it (directly or indirectly) and so the -- caller loses its exception */ -- assert(!PyErr_Occurred()); -- if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { -- return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); -- } else { -- return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); -- } --} --#endif -- --/* PyFunctionFastCall */ --#if CYTHON_FAST_PYCALL --static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, -- PyObject *globals) { -- PyFrameObject *f; -- PyThreadState *tstate = __Pyx_PyThreadState_Current; -- PyObject **fastlocals; -- Py_ssize_t i; -- PyObject *result; -- assert(globals != NULL); -- /* XXX Perhaps we should create a specialized -- PyFrame_New() that doesn't take locals, but does -- take builtins without sanity checking them. -- */ -- assert(tstate != NULL); -- f = PyFrame_New(tstate, co, globals, NULL); -- if (f == NULL) { -- return NULL; -- } -- fastlocals = __Pyx_PyFrame_GetLocalsplus(f); -- for (i = 0; i < na; i++) { -- Py_INCREF(*args); -- fastlocals[i] = *args++; -- } -- result = PyEval_EvalFrameEx(f,0); -- ++tstate->recursion_depth; -- Py_DECREF(f); -- --tstate->recursion_depth; -- return result; --} --#if 1 || PY_VERSION_HEX < 0x030600B1 --static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { -- PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); -- PyObject *globals = PyFunction_GET_GLOBALS(func); -- PyObject *argdefs = PyFunction_GET_DEFAULTS(func); -- PyObject *closure; --#if PY_MAJOR_VERSION >= 3 -- PyObject *kwdefs; --#endif -- PyObject *kwtuple, **k; -- PyObject **d; -- Py_ssize_t nd; -- Py_ssize_t nk; -- PyObject *result; -- assert(kwargs == NULL || PyDict_Check(kwargs)); -- nk = kwargs ? PyDict_Size(kwargs) : 0; -- if (Py_EnterRecursiveCall((char*)" while calling a Python object")) { -- return NULL; -- } -- if ( --#if PY_MAJOR_VERSION >= 3 -- co->co_kwonlyargcount == 0 && --#endif -- likely(kwargs == NULL || nk == 0) && -- co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { -- if (argdefs == NULL && co->co_argcount == nargs) { -- result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); -- goto done; -- } -- else if (nargs == 0 && argdefs != NULL -- && co->co_argcount == Py_SIZE(argdefs)) { -- /* function called with no arguments, but all parameters have -- a default value: use default values as arguments .*/ -- args = &PyTuple_GET_ITEM(argdefs, 0); -- result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); -- goto done; -- } -- } -- if (kwargs != NULL) { -- Py_ssize_t pos, i; -- kwtuple = PyTuple_New(2 * nk); -- if (kwtuple == NULL) { -- result = NULL; -- goto done; -- } -- k = &PyTuple_GET_ITEM(kwtuple, 0); -- pos = i = 0; -- while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { -- Py_INCREF(k[i]); -- Py_INCREF(k[i+1]); -- i += 2; -- } -- nk = i / 2; -- } -- else { -- kwtuple = NULL; -- k = NULL; -- } -- closure = PyFunction_GET_CLOSURE(func); --#if PY_MAJOR_VERSION >= 3 -- kwdefs = PyFunction_GET_KW_DEFAULTS(func); --#endif -- if (argdefs != NULL) { -- d = &PyTuple_GET_ITEM(argdefs, 0); -- nd = Py_SIZE(argdefs); -- } -- else { -- d = NULL; -- nd = 0; -- } --#if PY_MAJOR_VERSION >= 3 -- result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, -- args, (int)nargs, -- k, (int)nk, -- d, (int)nd, kwdefs, closure); --#else -- result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, -- args, (int)nargs, -- k, (int)nk, -- d, (int)nd, closure); --#endif -- Py_XDECREF(kwtuple); --done: -- Py_LeaveRecursiveCall(); -- return result; --} --#endif --#endif -- --/* PyObjectCallMethO */ --#if CYTHON_COMPILING_IN_CPYTHON --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { -- PyObject *self, *result; -- PyCFunction cfunc; -- cfunc = PyCFunction_GET_FUNCTION(func); -- self = PyCFunction_GET_SELF(func); -- if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -- return NULL; -- result = cfunc(self, arg); -- Py_LeaveRecursiveCall(); -- if (unlikely(!result) && unlikely(!PyErr_Occurred())) { -- PyErr_SetString( -- PyExc_SystemError, -- "NULL result without error in PyObject_Call"); -- } -- return result; --} --#endif -- --/* PyObjectCallOneArg */ --#if CYTHON_COMPILING_IN_CPYTHON --static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { -- PyObject *result; -- PyObject *args = PyTuple_New(1); -- if (unlikely(!args)) return NULL; -- Py_INCREF(arg); -- PyTuple_SET_ITEM(args, 0, arg); -- result = __Pyx_PyObject_Call(func, args, NULL); -- Py_DECREF(args); -- return result; --} --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { --#if CYTHON_FAST_PYCALL -- if (PyFunction_Check(func)) { -- return __Pyx_PyFunction_FastCall(func, &arg, 1); -- } --#endif -- if (likely(PyCFunction_Check(func))) { -- if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { -- return __Pyx_PyObject_CallMethO(func, arg); --#if CYTHON_FAST_PYCCALL -- } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { -- return __Pyx_PyCFunction_FastCall(func, &arg, 1); --#endif -- } -- } -- return __Pyx__PyObject_CallOneArg(func, arg); --} --#else --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { -- PyObject *result; -- PyObject *args = PyTuple_Pack(1, arg); -- if (unlikely(!args)) return NULL; -- result = __Pyx_PyObject_Call(func, args, NULL); -- Py_DECREF(args); -- return result; --} --#endif -- --/* DictGetItem */ --#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY --static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { -- PyObject *value; -- value = PyDict_GetItemWithError(d, key); -- if (unlikely(!value)) { -- if (!PyErr_Occurred()) { -- if (unlikely(PyTuple_Check(key))) { -- PyObject* args = PyTuple_Pack(1, key); -- if (likely(args)) { -- PyErr_SetObject(PyExc_KeyError, args); -- Py_DECREF(args); -- } -- } else { -- PyErr_SetObject(PyExc_KeyError, key); -- } -- } -- return NULL; -- } -- Py_INCREF(value); -- return value; --} --#endif -- --/* RaiseTooManyValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { -- PyErr_Format(PyExc_ValueError, -- "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); --} -- --/* RaiseNeedMoreValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { -- PyErr_Format(PyExc_ValueError, -- "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", -- index, (index == 1) ? "" : "s"); --} -- --/* RaiseNoneIterError */ --static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); --} -- --/* ExtTypeTest */ --static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { -- if (unlikely(!type)) { -- PyErr_SetString(PyExc_SystemError, "Missing type object"); -- return 0; -- } -- if (likely(__Pyx_TypeCheck(obj, type))) -- return 1; -- PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", -- Py_TYPE(obj)->tp_name, type->tp_name); -- return 0; --} -- - /* GetTopmostException */ - #if CYTHON_USE_EXC_INFO_STACK - static _PyErr_StackItem * -@@ -7005,6 +5347,28 @@ static int __Pyx_SetVtable(PyObject *dict, void *vtable) { - return -1; - } - -+/* PyObjectGetAttrStrNoError */ -+static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { -+ __Pyx_PyThreadState_declare -+ __Pyx_PyThreadState_assign -+ if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) -+ __Pyx_PyErr_Clear(); -+} -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { -+ PyObject *result; -+#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 -+ PyTypeObject* tp = Py_TYPE(obj); -+ if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { -+ return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); -+ } -+#endif -+ result = __Pyx_PyObject_GetAttrStr(obj, attr_name); -+ if (unlikely(!result)) { -+ __Pyx_PyObject_GetAttrStr_ClearAttributeError(); -+ } -+ return result; -+} -+ - /* SetupReduce */ - static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { - int ret; -@@ -7032,43 +5396,51 @@ static int __Pyx_setup_reduce(PyObject* type_obj) { - PyObject *setstate = NULL; - PyObject *setstate_cython = NULL; - #if CYTHON_USE_PYTYPE_LOOKUP -- if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #else -- if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #endif - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #else -- object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #endif -- reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; -+ reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; - if (reduce_ex == object_reduce_ex) { - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #else -- object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #endif -- reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; -+ reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; - if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { -- reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; -+ reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); -+ if (likely(reduce_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (reduce == object_reduce || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); - if (!setstate) PyErr_Clear(); - if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { -- setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; -+ setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); -+ if (likely(setstate_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (!setstate || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - } - PyType_Modified((PyTypeObject*)type_obj); - } - } -- goto GOOD; --BAD: -+ goto __PYX_GOOD; -+__PYX_BAD: - if (!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); - ret = -1; --GOOD: -+__PYX_GOOD: - #if !CYTHON_USE_PYTYPE_LOOKUP - Py_XDECREF(object_reduce); - Py_XDECREF(object_reduce_ex); -@@ -7192,7 +5564,7 @@ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { - { - #if PY_MAJOR_VERSION >= 3 - if (level == -1) { -- if (strchr(__Pyx_MODULE_NAME, '.')) { -+ if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) { - module = PyImport_ImportModuleLevelObject( - name, global_dict, empty_dict, list, 1); - if (!module) { -@@ -7255,7 +5627,7 @@ static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UIN - - /* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK --static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { -+static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) { - PyObject *use_cline; - PyObject *ptype, *pvalue, *ptraceback; - #if CYTHON_COMPILING_IN_CPYTHON -@@ -7285,7 +5657,7 @@ static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { - } - if (!use_cline) { - c_line = 0; -- PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); -+ (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; -@@ -7359,7 +5731,7 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - if (__pyx_code_cache.count == __pyx_code_cache.max_count) { - int new_max = __pyx_code_cache.max_count + 64; - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( -- __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); -+ __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); - if (unlikely(!entries)) { - return; - } -@@ -7382,30 +5754,31 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { -- PyCodeObject *py_code = 0; -- PyObject *py_srcfile = 0; -- PyObject *py_funcname = 0; -+ PyCodeObject *py_code = NULL; -+ PyObject *py_funcname = NULL; - #if PY_MAJOR_VERSION < 3 -+ PyObject *py_srcfile = NULL; - py_srcfile = PyString_FromString(filename); -- #else -- py_srcfile = PyUnicode_FromString(filename); -- #endif - if (!py_srcfile) goto bad; -+ #endif - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; -+ funcname = PyUnicode_AsUTF8(py_funcname); -+ if (!funcname) goto bad; - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); -- #else -- py_funcname = PyUnicode_FromString(funcname); -+ if (!py_funcname) goto bad; - #endif - } -- if (!py_funcname) goto bad; -+ #if PY_MAJOR_VERSION < 3 - py_code = __Pyx_PyCode_New( - 0, - 0, -@@ -7424,11 +5797,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); -- Py_DECREF(py_funcname); -+ #else -+ py_code = PyCode_NewEmpty(filename, funcname, py_line); -+ #endif -+ Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline - return py_code; - bad: -- Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); -+ #if PY_MAJOR_VERSION < 3 -+ Py_XDECREF(py_srcfile); -+ #endif - return NULL; - } - static void __Pyx_AddTraceback(const char *funcname, int c_line, -@@ -7577,7 +5955,6 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - case 1: - return a; - case 2: -- z = __Pyx_c_prod_float(a, a); - return __Pyx_c_prod_float(a, a); - case 3: - z = __Pyx_c_prod_float(a, a); -@@ -7732,7 +6109,6 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - case 1: - return a; - case 2: -- z = __Pyx_c_prod_double(a, a); - return __Pyx_c_prod_double(a, a); - case 3: - z = __Pyx_c_prod_double(a, a); -@@ -7771,24 +6147,31 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - #endif - - /* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { -- if (sizeof(int) < sizeof(long)) { -+ if (sizeof(long) < sizeof(long)) { - return PyInt_FromLong((long) value); -- } else if (sizeof(int) <= sizeof(unsigned long)) { -+ } else if (sizeof(long) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); - #ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -+ } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); - #endif - } - } else { -- if (sizeof(int) <= sizeof(long)) { -+ if (sizeof(long) <= sizeof(long)) { - return PyInt_FromLong((long) value); - #ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -+ } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); - #endif - } -@@ -7796,7 +6179,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(int), -+ return _PyLong_FromByteArray(bytes, sizeof(long), - little, !is_unsigned); - } - } -@@ -7823,51 +6206,27 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - return (target_type) value;\ - } - --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { -- const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(enum NPY_TYPES) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+/* CIntFromPy */ -+static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" - #endif -- } -- } else { -- if (sizeof(enum NPY_TYPES) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop - #endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), -- little, !is_unsigned); -- } --} -- --/* CIntFromPy */ --static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -- if (sizeof(int) < sizeof(long)) { -- __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) -+ if (sizeof(long) < sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } -- return (int) val; -+ return (long) val; - } - } else - #endif -@@ -7876,32 +6235,32 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { -- case 0: return (int) 0; -- case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) -+ case 0: return (long) 0; -+ case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) - case 2: -- if (8 * sizeof(int) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { -- return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { -+ return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - case 3: -- if (8 * sizeof(int) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { -- return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { -+ return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - case 4: -- if (8 * sizeof(int) > 3 * PyLong_SHIFT) { -- if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { -- return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -+ if (8 * sizeof(long) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { -+ return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; -@@ -7915,86 +6274,86 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) -- return (int) -1; -+ return (long) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } - #endif -- if (sizeof(int) <= sizeof(unsigned long)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) -+ if (sizeof(long) <= sizeof(unsigned long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) - #ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -+ } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) - #endif - } - } else { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { -- case 0: return (int) 0; -- case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) -- case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) -+ case 0: return (long) 0; -+ case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) -+ case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) - case -2: -- if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -- return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -+ return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 2: -- if (8 * sizeof(int) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -- return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -+ return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case -3: -- if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -- return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -+ return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 3: -- if (8 * sizeof(int) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -- return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -+ return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case -4: -- if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -- return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { -+ return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 4: -- if (8 * sizeof(int) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -- return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { -+ return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - } - #endif -- if (sizeof(int) <= sizeof(long)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) -+ if (sizeof(long) <= sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) - #ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) -+ } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) - #endif - } - } -@@ -8003,7 +6362,7 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - PyErr_SetString(PyExc_RuntimeError, - "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); - #else -- int val; -+ long val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); - #if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { -@@ -8023,71 +6382,47 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - return val; - } - #endif -- return (int) -1; -+ return (long) -1; - } - } else { -- int val; -+ long val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); -- if (!tmp) return (int) -1; -- val = __Pyx_PyInt_As_int(tmp); -+ if (!tmp) return (long) -1; -+ val = __Pyx_PyInt_As_long(tmp); - Py_DECREF(tmp); - return val; - } - raise_overflow: - PyErr_SetString(PyExc_OverflowError, -- "value too large to convert to int"); -- return (int) -1; -+ "value too large to convert to long"); -+ return (long) -1; - raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, -- "can't convert negative value to int"); -- return (int) -1; -+ "can't convert negative value to long"); -+ return (long) -1; - } - --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(long) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(long) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+/* CIntFromPy */ -+static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" - #endif -- } -- } else { -- if (sizeof(long) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop - #endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(long), -- little, !is_unsigned); -- } --} -- --/* CIntFromPy */ --static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -- if (sizeof(long) < sizeof(long)) { -- __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) -+ if (sizeof(int) < sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } -- return (long) val; -+ return (int) val; - } - } else - #endif -@@ -8096,32 +6431,32 @@ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { -- case 0: return (long) 0; -- case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) -+ case 0: return (int) 0; -+ case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) - case 2: -- if (8 * sizeof(long) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { -- return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { -+ return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - case 3: -- if (8 * sizeof(long) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { -- return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { -+ return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - case 4: -- if (8 * sizeof(long) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { -- return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { -+ return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; -@@ -8135,86 +6470,86 @@ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) -- return (long) -1; -+ return (int) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } - #endif -- if (sizeof(long) <= sizeof(unsigned long)) { -- __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) -+ if (sizeof(int) <= sizeof(unsigned long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) - #ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -+ } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) - #endif - } - } else { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { -- case 0: return (long) 0; -- case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) -- case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) -+ case 0: return (int) 0; -+ case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) -+ case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) - case -2: -- if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -- return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -+ return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 2: -- if (8 * sizeof(long) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -- return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -+ return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case -3: -- if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -- return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -+ return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 3: -- if (8 * sizeof(long) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -- return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -+ return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case -4: -- if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { -- return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -+ return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 4: -- if (8 * sizeof(long) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { -- return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -+ return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - } - #endif -- if (sizeof(long) <= sizeof(long)) { -- __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) -+ if (sizeof(int) <= sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) - #ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) -+ } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) - #endif - } - } -@@ -8223,7 +6558,7 @@ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - PyErr_SetString(PyExc_RuntimeError, - "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); - #else -- long val; -+ int val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); - #if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { -@@ -8243,24 +6578,24 @@ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - return val; - } - #endif -- return (long) -1; -+ return (int) -1; - } - } else { -- long val; -+ int val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); -- if (!tmp) return (long) -1; -- val = __Pyx_PyInt_As_long(tmp); -+ if (!tmp) return (int) -1; -+ val = __Pyx_PyInt_As_int(tmp); - Py_DECREF(tmp); - return val; - } - raise_overflow: - PyErr_SetString(PyExc_OverflowError, -- "value too large to convert to long"); -- return (long) -1; -+ "value too large to convert to int"); -+ return (int) -1; - raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, -- "can't convert negative value to long"); -- return (long) -1; -+ "can't convert negative value to int"); -+ return (int) -1; - } - - /* FastTypeChecks */ -@@ -8664,6 +6999,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_DECREF(x); - return ival; - } -+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { -+ if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { -+ return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); -+#if PY_MAJOR_VERSION < 3 -+ } else if (likely(PyInt_CheckExact(o))) { -+ return PyInt_AS_LONG(o); -+#endif -+ } else { -+ Py_ssize_t ival; -+ PyObject *x; -+ x = PyNumber_Index(o); -+ if (!x) return -1; -+ ival = PyInt_AsLong(x); -+ Py_DECREF(x); -+ return ival; -+ } -+} - static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); - } -diff --git a/cylp/cy/CyCglTreeInfo.cpp b/cylp/cy/CyCglTreeInfo.cpp -index af46065..de3fa97 100644 ---- a/cylp/cy/CyCglTreeInfo.cpp -+++ b/cylp/cy/CyCglTreeInfo.cpp -@@ -1,14 +1,16 @@ --/* Generated by Cython 0.29.12 */ -+/* 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_12" --#define CYTHON_HEX_VERSION 0x001D0CF0 -+#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) -@@ -449,7 +516,15 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) - #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) -+ #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 - #else - #define CYTHON_PEP393_ENABLED 0 - #define PyUnicode_1BYTE_KIND 1 -@@ -498,8 +573,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact -+#ifndef PyObject_Unicode - #define PyObject_Unicode PyObject_Str - #endif -+#endif - #if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) - #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) -@@ -510,6 +587,13 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #ifndef PySet_CheckExact - #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) - #endif -+#if PY_VERSION_HEX >= 0x030900A4 -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) -+#else -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) -+#endif - #if CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) - #else -@@ -543,13 +627,13 @@ 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) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) -+ #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) - #else - #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) - #endif -@@ -590,11 +674,10 @@ static CYTHON_INLINE float __PYX_NAN() { - #define __Pyx_truncl truncl - #endif - -- -+#define __PYX_MARK_ERR_POS(f_index, lineno) \ -+ { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } - #define __PYX_ERR(f_index, lineno, Ln_error) \ --{ \ -- __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ --} -+ { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } - - #ifndef __PYX_EXTERN_C - #ifdef __cplusplus -@@ -704,6 +787,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 -@@ -817,7 +901,7 @@ static const char *__pyx_filename; - - static const char *__pyx_f[] = { - "stringsource", -- "cylp\\cy\\CyCglTreeInfo.pyx", -+ "cylp/cy/CyCglTreeInfo.pyx", - }; - - /*--- Type declarations ---*/ -@@ -995,6 +1079,17 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam - /* SetVTable.proto */ - static int __Pyx_SetVtable(PyObject *dict, void *vtable); - -+/* PyErrExceptionMatches.proto */ -+#if CYTHON_FAST_THREAD_STATE -+#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err) -+static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err); -+#else -+#define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err) -+#endif -+ -+/* PyObjectGetAttrStrNoError.proto */ -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); -+ - /* SetupReduce.proto */ - static int __Pyx_setup_reduce(PyObject* type_obj); - -@@ -1092,6 +1187,11 @@ static void __Pyx_CppExn2PyErr() { - } - #endif - -+/* GCCDiagnostics.proto */ -+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -+#define __Pyx_HAS_GCC_DIAGNOSTIC -+#endif -+ - /* CIntToPy.proto */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); - -@@ -1194,6 +1294,9 @@ static int __pyx_pf_4cylp_2cy_13CyCglTreeInfo_13CyCglTreeInfo___cinit__(struct _ - int __pyx_r; - __Pyx_RefNannyDeclarations - CglTreeInfo *__pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 0); - - /* "cylp/cy/CyCglTreeInfo.pyx":7 -@@ -1298,6 +1401,9 @@ static PyObject *__pyx_pf_4cylp_2cy_13CyCglTreeInfo_13CyCglTreeInfo_2__reduce_cy - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -1352,6 +1458,9 @@ static PyObject *__pyx_pf_4cylp_2cy_13CyCglTreeInfo_13CyCglTreeInfo_4__setstate_ - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -1422,7 +1531,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_13CyCglTreeInfo_CyCglTreeInfo = { - sizeof(struct __pyx_obj_4cylp_2cy_13CyCglTreeInfo_CyCglTreeInfo), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_13CyCglTreeInfo_CyCglTreeInfo, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -1475,6 +1589,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_13CyCglTreeInfo_CyCglTreeInfo = { - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyMethodDef __pyx_methods[] = { -@@ -1616,6 +1736,9 @@ static int __Pyx_modinit_function_export_code(void) { - - static int __Pyx_modinit_type_init_code(void) { - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ - __pyx_vtabptr_4cylp_2cy_13CyCglTreeInfo_CyCglTreeInfo = &__pyx_vtable_4cylp_2cy_13CyCglTreeInfo_CyCglTreeInfo; -@@ -1663,17 +1786,19 @@ static int __Pyx_modinit_function_import_code(void) { - } - - --#if PY_MAJOR_VERSION < 3 --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC void --#else -+#ifndef CYTHON_NO_PYINIT_EXPORT - #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#elif PY_MAJOR_VERSION < 3 -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" void -+#else -+#define __Pyx_PyMODINIT_FUNC void - #endif - #else --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC PyObject * -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * - #else --#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#define __Pyx_PyMODINIT_FUNC PyObject * - #endif - #endif - -@@ -1755,6 +1880,9 @@ static CYTHON_SMALL_CODE int __pyx_pymod_exec_CyCglTreeInfo(PyObject *__pyx_pyin - #endif - { - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { -@@ -1802,11 +1930,9 @@ if (!__Pyx_RefNanny) { - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ -- #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS -- #ifdef WITH_THREAD /* Python build with threading support? */ -+ #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - PyEval_InitThreads(); - #endif -- #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; -@@ -1843,14 +1969,14 @@ if (!__Pyx_RefNanny) { - } - #endif - /*--- Builtin init code ---*/ -- if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(1, 2, __pyx_L1_error) - /*--- Constants init code ---*/ -- if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(1, 2, __pyx_L1_error) - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(); - (void)__Pyx_modinit_variable_export_code(); - (void)__Pyx_modinit_function_export_code(); -- if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; -+ if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(1, 2, __pyx_L1_error) - (void)__Pyx_modinit_type_import_code(); - (void)__Pyx_modinit_variable_import_code(); - (void)__Pyx_modinit_function_import_code(); -@@ -2010,7 +2136,7 @@ static int __Pyx_CheckKeywordStrings( - #if CYTHON_COMPILING_IN_CPYTHON - static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; -- ternaryfunc call = func->ob_type->tp_call; -+ ternaryfunc call = Py_TYPE(func)->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -@@ -2277,6 +2403,53 @@ static int __Pyx_SetVtable(PyObject *dict, void *vtable) { - return -1; - } - -+/* PyErrExceptionMatches */ -+#if CYTHON_FAST_THREAD_STATE -+static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { -+ Py_ssize_t i, n; -+ n = PyTuple_GET_SIZE(tuple); -+#if PY_MAJOR_VERSION >= 3 -+ for (i=0; icurexc_type; -+ if (exc_type == err) return 1; -+ if (unlikely(!exc_type)) return 0; -+ if (unlikely(PyTuple_Check(err))) -+ return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err); -+ return __Pyx_PyErr_GivenExceptionMatches(exc_type, err); -+} -+#endif -+ -+/* PyObjectGetAttrStrNoError */ -+static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { -+ __Pyx_PyThreadState_declare -+ __Pyx_PyThreadState_assign -+ if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) -+ __Pyx_PyErr_Clear(); -+} -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { -+ PyObject *result; -+#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 -+ PyTypeObject* tp = Py_TYPE(obj); -+ if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { -+ return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); -+ } -+#endif -+ result = __Pyx_PyObject_GetAttrStr(obj, attr_name); -+ if (unlikely(!result)) { -+ __Pyx_PyObject_GetAttrStr_ClearAttributeError(); -+ } -+ return result; -+} -+ - /* SetupReduce */ - static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { - int ret; -@@ -2304,43 +2477,51 @@ static int __Pyx_setup_reduce(PyObject* type_obj) { - PyObject *setstate = NULL; - PyObject *setstate_cython = NULL; - #if CYTHON_USE_PYTYPE_LOOKUP -- if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #else -- if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #endif - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #else -- object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #endif -- reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; -+ reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; - if (reduce_ex == object_reduce_ex) { - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #else -- object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #endif -- reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; -+ reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; - if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { -- reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; -+ reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); -+ if (likely(reduce_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (reduce == object_reduce || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); - if (!setstate) PyErr_Clear(); - if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { -- setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; -+ setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); -+ if (likely(setstate_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (!setstate || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - } - PyType_Modified((PyTypeObject*)type_obj); - } - } -- goto GOOD; --BAD: -+ goto __PYX_GOOD; -+__PYX_BAD: - if (!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); - ret = -1; --GOOD: -+__PYX_GOOD: - #if !CYTHON_USE_PYTYPE_LOOKUP - Py_XDECREF(object_reduce); - Py_XDECREF(object_reduce_ex); -@@ -2381,7 +2562,7 @@ static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UIN - - /* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK --static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { -+static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) { - PyObject *use_cline; - PyObject *ptype, *pvalue, *ptraceback; - #if CYTHON_COMPILING_IN_CPYTHON -@@ -2411,7 +2592,7 @@ static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { - } - if (!use_cline) { - c_line = 0; -- PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); -+ (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; -@@ -2485,7 +2666,7 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - if (__pyx_code_cache.count == __pyx_code_cache.max_count) { - int new_max = __pyx_code_cache.max_count + 64; - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( -- __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); -+ __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); - if (unlikely(!entries)) { - return; - } -@@ -2508,30 +2689,31 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { -- PyCodeObject *py_code = 0; -- PyObject *py_srcfile = 0; -- PyObject *py_funcname = 0; -+ PyCodeObject *py_code = NULL; -+ PyObject *py_funcname = NULL; - #if PY_MAJOR_VERSION < 3 -+ PyObject *py_srcfile = NULL; - py_srcfile = PyString_FromString(filename); -- #else -- py_srcfile = PyUnicode_FromString(filename); -- #endif - if (!py_srcfile) goto bad; -+ #endif - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; -+ funcname = PyUnicode_AsUTF8(py_funcname); -+ if (!funcname) goto bad; - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); -- #else -- py_funcname = PyUnicode_FromString(funcname); -+ if (!py_funcname) goto bad; - #endif - } -- if (!py_funcname) goto bad; -+ #if PY_MAJOR_VERSION < 3 - py_code = __Pyx_PyCode_New( - 0, - 0, -@@ -2550,11 +2732,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); -- Py_DECREF(py_funcname); -+ #else -+ py_code = PyCode_NewEmpty(filename, funcname, py_line); -+ #endif -+ Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline - return py_code; - bad: -- Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); -+ #if PY_MAJOR_VERSION < 3 -+ Py_XDECREF(py_srcfile); -+ #endif - return NULL; - } - static void __Pyx_AddTraceback(const char *funcname, int c_line, -@@ -2588,7 +2775,14 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - - /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(long) < sizeof(long)) { -@@ -2641,7 +2835,14 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - - /* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -2830,7 +3031,14 @@ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - - /* CIntFromPy */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -3381,6 +3589,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_DECREF(x); - return ival; - } -+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { -+ if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { -+ return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); -+#if PY_MAJOR_VERSION < 3 -+ } else if (likely(PyInt_CheckExact(o))) { -+ return PyInt_AS_LONG(o); -+#endif -+ } else { -+ Py_ssize_t ival; -+ PyObject *x; -+ x = PyNumber_Index(o); -+ if (!x) return -1; -+ ival = PyInt_AsLong(x); -+ Py_DECREF(x); -+ return ival; -+ } -+} - static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); - } -diff --git a/cylp/cy/CyClpDualRowPivotBase.cpp b/cylp/cy/CyClpDualRowPivotBase.cpp -index 21f3977..93a41a8 100644 ---- a/cylp/cy/CyClpDualRowPivotBase.cpp -+++ b/cylp/cy/CyClpDualRowPivotBase.cpp -@@ -1,14 +1,16 @@ --/* Generated by Cython 0.29.12 */ -+/* 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_12" --#define CYTHON_HEX_VERSION 0x001D0CF0 -+#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) -@@ -449,7 +516,15 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) - #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) -+ #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 - #else - #define CYTHON_PEP393_ENABLED 0 - #define PyUnicode_1BYTE_KIND 1 -@@ -498,8 +573,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact -+#ifndef PyObject_Unicode - #define PyObject_Unicode PyObject_Str - #endif -+#endif - #if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) - #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) -@@ -510,6 +587,13 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #ifndef PySet_CheckExact - #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) - #endif -+#if PY_VERSION_HEX >= 0x030900A4 -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) -+#else -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) -+#endif - #if CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) - #else -@@ -543,13 +627,13 @@ 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) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) -+ #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) - #else - #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) - #endif -@@ -590,11 +674,10 @@ static CYTHON_INLINE float __PYX_NAN() { - #define __Pyx_truncl truncl - #endif - -- -+#define __PYX_MARK_ERR_POS(f_index, lineno) \ -+ { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } - #define __PYX_ERR(f_index, lineno, Ln_error) \ --{ \ -- __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ --} -+ { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } - - #ifndef __PYX_EXTERN_C - #ifdef __cplusplus -@@ -615,7 +698,13 @@ static CYTHON_INLINE float __PYX_NAN() { - #include "ClpFactorization.hpp" - #include "IClpPrimalColumnPivotBase.h" - #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 "CoinModel.hpp" - #include "ICoinPackedMatrix.hpp" - #include "CglAllDifferent.hpp" -@@ -641,11 +730,11 @@ static CYTHON_INLINE float __PYX_NAN() { - #include "OsiSolverInterface.hpp" - #include "CbcCompareUser.hpp" - #include "ICbcModel.hpp" -+#include - #include "ios" - #include "new" - #include "stdexcept" - #include "typeinfo" --#include - #include - #include "ClpDualRowPivot.hpp" - #include "IClpSimplex.hpp" -@@ -746,6 +835,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 -@@ -881,20 +971,20 @@ static const char *__pyx_filename; - - static const char *__pyx_f[] = { - "stringsource", -- "cylp\\cy\\CyClpDualRowPivotBase.pyx", -+ "cylp/cy/CyClpDualRowPivotBase.pyx", - "__init__.pxd", - "type.pxd", - "bool.pxd", - "complex.pxd", -- "cylp\\cy\\CyCoinIndexedVector.pxd", -- "cylp\\cy\\CyClpPrimalColumnPivotBase.pxd", -- "cylp\\cy\\CyCoinModel.pxd", -- "cylp\\cy\\CyCoinPackedMatrix.pxd", -- "cylp\\cy\\CyCgl.pxd", -- "cylp\\cy\\CyCbcNode.pxd", -- "cylp\\cy\\CyOsiSolverInterface.pxd", -- "cylp\\cy\\CyCbcModel.pxd", -- "cylp\\cy\\CyClpSimplex.pxd", -+ "cylp/cy/CyCoinIndexedVector.pxd", -+ "cylp/cy/CyClpPrimalColumnPivotBase.pxd", -+ "cylp/cy/CyCoinModel.pxd", -+ "cylp/cy/CyCoinPackedMatrix.pxd", -+ "cylp/cy/CyCgl.pxd", -+ "cylp/cy/CyCbcNode.pxd", -+ "cylp/cy/CyOsiSolverInterface.pxd", -+ "cylp/cy/CyCbcModel.pxd", -+ "cylp/cy/CyClpSimplex.pxd", - }; - /* BufferFormatStructs.proto */ - #define IS_UNSIGNED(type) (((type) -1) > 0) -@@ -933,7 +1023,7 @@ typedef struct { - } __Pyx_BufFmt_Context; - - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":776 -+/* "../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 # <<<<<<<<<<<<<< -@@ -942,7 +1032,7 @@ typedef struct { - */ - typedef npy_int8 __pyx_t_5numpy_int8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":777 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":691 - * - * ctypedef npy_int8 int8_t - * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< -@@ -951,7 +1041,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; - */ - typedef npy_int16 __pyx_t_5numpy_int16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":778 -+/* "../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 # <<<<<<<<<<<<<< -@@ -960,7 +1050,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; - */ - typedef npy_int32 __pyx_t_5numpy_int32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":779 -+/* "../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 # <<<<<<<<<<<<<< -@@ -969,7 +1059,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; - */ - typedef npy_int64 __pyx_t_5numpy_int64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":783 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":697 - * #ctypedef npy_int128 int128_t - * - * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< -@@ -978,7 +1068,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; - */ - typedef npy_uint8 __pyx_t_5numpy_uint8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":784 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":698 - * - * ctypedef npy_uint8 uint8_t - * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< -@@ -987,7 +1077,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; - */ - typedef npy_uint16 __pyx_t_5numpy_uint16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":785 -+/* "../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 # <<<<<<<<<<<<<< -@@ -996,7 +1086,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; - */ - typedef npy_uint32 __pyx_t_5numpy_uint32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":786 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1005,7 +1095,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; - */ - typedef npy_uint64 __pyx_t_5numpy_uint64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":790 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":704 - * #ctypedef npy_uint128 uint128_t - * - * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< -@@ -1014,7 +1104,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; - */ - typedef npy_float32 __pyx_t_5numpy_float32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":791 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":705 - * - * ctypedef npy_float32 float32_t - * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< -@@ -1023,7 +1113,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; - */ - typedef npy_float64 __pyx_t_5numpy_float64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":800 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1032,7 +1122,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; - */ - typedef npy_long __pyx_t_5numpy_int_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":801 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1041,7 +1131,7 @@ typedef npy_long __pyx_t_5numpy_int_t; - */ - typedef npy_longlong __pyx_t_5numpy_long_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":802 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1050,7 +1140,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; - */ - typedef npy_longlong __pyx_t_5numpy_longlong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":804 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":718 - * ctypedef npy_longlong longlong_t - * - * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< -@@ -1059,7 +1149,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; - */ - typedef npy_ulong __pyx_t_5numpy_uint_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":805 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":719 - * - * ctypedef npy_ulong uint_t - * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< -@@ -1068,7 +1158,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":806 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1077,7 +1167,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":808 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":722 - * ctypedef npy_ulonglong ulonglong_t - * - * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< -@@ -1086,7 +1176,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - */ - typedef npy_intp __pyx_t_5numpy_intp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":809 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":723 - * - * ctypedef npy_intp intp_t - * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< -@@ -1095,7 +1185,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; - */ - typedef npy_uintp __pyx_t_5numpy_uintp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":811 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":725 - * ctypedef npy_uintp uintp_t - * - * ctypedef npy_double float_t # <<<<<<<<<<<<<< -@@ -1104,7 +1194,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; - */ - typedef npy_double __pyx_t_5numpy_float_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":812 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":726 - * - * ctypedef npy_double float_t - * ctypedef npy_double double_t # <<<<<<<<<<<<<< -@@ -1113,7 +1203,7 @@ typedef npy_double __pyx_t_5numpy_float_t; - */ - typedef npy_double __pyx_t_5numpy_double_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":813 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1175,7 +1265,7 @@ struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex; - struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus; - struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":815 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":729 - * ctypedef npy_longdouble longdouble_t - * - * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< -@@ -1184,7 +1274,7 @@ struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase; - */ - typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":816 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":730 - * - * ctypedef npy_cfloat cfloat_t - * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< -@@ -1193,7 +1283,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - */ - typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":817 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1202,7 +1292,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - */ - typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":819 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":733 - * ctypedef npy_clongdouble clongdouble_t - * - * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< -@@ -1927,11 +2017,45 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - #define CYTHON_FRAME_DEL(frame) Py_CLEAR(frame) - #endif - #define __Pyx_TraceDeclarations\ -- static PyCodeObject *__pyx_frame_code = NULL;\ -- CYTHON_FRAME_MODIFIER PyFrameObject *__pyx_frame = NULL;\ -- int __Pyx_use_tracing = 0; -+ static PyCodeObject *__pyx_frame_code = NULL;\ -+ CYTHON_FRAME_MODIFIER PyFrameObject *__pyx_frame = NULL;\ -+ int __Pyx_use_tracing = 0; - #define __Pyx_TraceFrameInit(codeobj)\ -- if (codeobj) __pyx_frame_code = (PyCodeObject*) codeobj; -+ if (codeobj) __pyx_frame_code = (PyCodeObject*) codeobj; -+#if PY_VERSION_HEX >= 0x030b00a2 -+ #define __Pyx_IsTracing(tstate, check_tracing, check_funcs)\ -+ (unlikely((tstate)->cframe->use_tracing) &&\ -+ (!(check_tracing) || !(tstate)->tracing) &&\ -+ (!(check_funcs) || (tstate)->c_profilefunc || (CYTHON_TRACE && (tstate)->c_tracefunc))) -+ #define __Pyx_EnterTracing(tstate) PyThreadState_EnterTracing(tstate) -+ #define __Pyx_LeaveTracing(tstate) PyThreadState_LeaveTracing(tstate) -+#elif PY_VERSION_HEX >= 0x030a00b1 -+ #define __Pyx_IsTracing(tstate, check_tracing, check_funcs)\ -+ (unlikely((tstate)->cframe->use_tracing) &&\ -+ (!(check_tracing) || !(tstate)->tracing) &&\ -+ (!(check_funcs) || (tstate)->c_profilefunc || (CYTHON_TRACE && (tstate)->c_tracefunc))) -+ #define __Pyx_EnterTracing(tstate)\ -+ do { tstate->tracing++; tstate->cframe->use_tracing = 0; } while (0) -+ #define __Pyx_LeaveTracing(tstate)\ -+ do {\ -+ tstate->tracing--;\ -+ tstate->cframe->use_tracing = ((CYTHON_TRACE && tstate->c_tracefunc != NULL)\ -+ || tstate->c_profilefunc != NULL);\ -+ } while (0) -+#else -+ #define __Pyx_IsTracing(tstate, check_tracing, check_funcs)\ -+ (unlikely((tstate)->use_tracing) &&\ -+ (!(check_tracing) || !(tstate)->tracing) &&\ -+ (!(check_funcs) || (tstate)->c_profilefunc || (CYTHON_TRACE && (tstate)->c_tracefunc))) -+ #define __Pyx_EnterTracing(tstate)\ -+ do { tstate->tracing++; tstate->use_tracing = 0; } while (0) -+ #define __Pyx_LeaveTracing(tstate)\ -+ do {\ -+ tstate->tracing--;\ -+ tstate->use_tracing = ((CYTHON_TRACE && tstate->c_tracefunc != NULL)\ -+ || tstate->c_profilefunc != NULL);\ -+ } while (0) -+#endif - #ifdef WITH_THREAD - #define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error)\ - if (nogil) {\ -@@ -1939,8 +2063,7 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - PyThreadState *tstate;\ - PyGILState_STATE state = PyGILState_Ensure();\ - tstate = __Pyx_PyThreadState_Current;\ -- if (unlikely(tstate->use_tracing) && !tstate->tracing &&\ -- (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\ -+ if (__Pyx_IsTracing(tstate, 1, 1)) {\ - __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\ - }\ - PyGILState_Release(state);\ -@@ -1948,8 +2071,7 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - }\ - } else {\ - PyThreadState* tstate = PyThreadState_GET();\ -- if (unlikely(tstate->use_tracing) && !tstate->tracing &&\ -- (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\ -+ if (__Pyx_IsTracing(tstate, 1, 1)) {\ - __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\ - if (unlikely(__Pyx_use_tracing < 0)) goto_error;\ - }\ -@@ -1957,8 +2079,7 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - #else - #define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error)\ - { PyThreadState* tstate = PyThreadState_GET();\ -- if (unlikely(tstate->use_tracing) && !tstate->tracing &&\ -- (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\ -+ if (__Pyx_IsTracing(tstate, 1, 1)) {\ - __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\ - if (unlikely(__Pyx_use_tracing < 0)) goto_error;\ - }\ -@@ -1967,10 +2088,8 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - #define __Pyx_TraceException()\ - if (likely(!__Pyx_use_tracing)); else {\ - PyThreadState* tstate = __Pyx_PyThreadState_Current;\ -- if (tstate->use_tracing &&\ -- (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\ -- tstate->tracing++;\ -- tstate->use_tracing = 0;\ -+ if (__Pyx_IsTracing(tstate, 0, 1)) {\ -+ __Pyx_EnterTracing(tstate);\ - PyObject *exc_info = __Pyx_GetExceptionTuple(tstate);\ - if (exc_info) {\ - if (CYTHON_TRACE && tstate->c_tracefunc)\ -@@ -1980,22 +2099,19 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - tstate->c_profileobj, __pyx_frame, PyTrace_EXCEPTION, exc_info);\ - Py_DECREF(exc_info);\ - }\ -- tstate->use_tracing = 1;\ -- tstate->tracing--;\ -+ __Pyx_LeaveTracing(tstate);\ - }\ - } - static void __Pyx_call_return_trace_func(PyThreadState *tstate, PyFrameObject *frame, PyObject *result) { - PyObject *type, *value, *traceback; - __Pyx_ErrFetchInState(tstate, &type, &value, &traceback); -- tstate->tracing++; -- tstate->use_tracing = 0; -+ __Pyx_EnterTracing(tstate); - if (CYTHON_TRACE && tstate->c_tracefunc) - tstate->c_tracefunc(tstate->c_traceobj, frame, PyTrace_RETURN, result); - if (tstate->c_profilefunc) - tstate->c_profilefunc(tstate->c_profileobj, frame, PyTrace_RETURN, result); - CYTHON_FRAME_DEL(frame); -- tstate->use_tracing = 1; -- tstate->tracing--; -+ __Pyx_LeaveTracing(tstate); - __Pyx_ErrRestoreInState(tstate, type, value, traceback); - } - #ifdef WITH_THREAD -@@ -2006,14 +2122,14 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - PyThreadState *tstate;\ - PyGILState_STATE state = PyGILState_Ensure();\ - tstate = __Pyx_PyThreadState_Current;\ -- if (tstate->use_tracing) {\ -+ if (__Pyx_IsTracing(tstate, 0, 0)) {\ - __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\ - }\ - PyGILState_Release(state);\ - }\ - } else {\ - PyThreadState* tstate = __Pyx_PyThreadState_Current;\ -- if (tstate->use_tracing) {\ -+ if (__Pyx_IsTracing(tstate, 0, 0)) {\ - __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\ - }\ - }\ -@@ -2022,7 +2138,7 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - #define __Pyx_TraceReturn(result, nogil)\ - if (likely(!__Pyx_use_tracing)); else {\ - PyThreadState* tstate = __Pyx_PyThreadState_Current;\ -- if (tstate->use_tracing) {\ -+ if (__Pyx_IsTracing(tstate, 0, 0)) {\ - __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\ - }\ - } -@@ -2042,11 +2158,9 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - PyObject *type, *value, *traceback; - __Pyx_ErrFetchInState(tstate, &type, &value, &traceback); - __Pyx_PyFrame_SetLineNumber(frame, lineno); -- tstate->tracing++; -- tstate->use_tracing = 0; -+ __Pyx_EnterTracing(tstate); - ret = tstate->c_tracefunc(tstate->c_traceobj, frame, PyTrace_LINE, NULL); -- tstate->use_tracing = 1; -- tstate->tracing--; -+ __Pyx_LeaveTracing(tstate); - if (likely(!ret)) { - __Pyx_ErrRestoreInState(tstate, type, value, traceback); - } else { -@@ -2065,7 +2179,7 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - PyThreadState *tstate;\ - PyGILState_STATE state = PyGILState_Ensure();\ - tstate = __Pyx_PyThreadState_Current;\ -- if (unlikely(tstate->use_tracing && tstate->c_tracefunc && __pyx_frame->f_trace)) {\ -+ if (__Pyx_IsTracing(tstate, 0, 0) && tstate->c_tracefunc && __pyx_frame->f_trace) {\ - ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\ - }\ - PyGILState_Release(state);\ -@@ -2073,7 +2187,7 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - }\ - } else {\ - PyThreadState* tstate = __Pyx_PyThreadState_Current;\ -- if (unlikely(tstate->use_tracing && tstate->c_tracefunc && __pyx_frame->f_trace)) {\ -+ if (__Pyx_IsTracing(tstate, 0, 0) && tstate->c_tracefunc && __pyx_frame->f_trace) {\ - int ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\ - if (unlikely(ret)) goto_error;\ - }\ -@@ -2083,7 +2197,7 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - #define __Pyx_TraceLine(lineno, nogil, goto_error)\ - if (likely(!__Pyx_use_tracing)); else {\ - PyThreadState* tstate = __Pyx_PyThreadState_Current;\ -- if (unlikely(tstate->use_tracing && tstate->c_tracefunc && __pyx_frame->f_trace)) {\ -+ if (__Pyx_IsTracing(tstate, 0, 0) && tstate->c_tracefunc && __pyx_frame->f_trace) {\ - int ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\ - if (unlikely(ret)) goto_error;\ - }\ -@@ -2139,64 +2253,6 @@ static CYTHON_INLINE void __Pyx_SafeReleaseBuffer(Py_buffer* info); - static Py_ssize_t __Pyx_minusones[] = { -1, -1, -1, -1, -1, -1, -1, -1 }; - static Py_ssize_t __Pyx_zeros[] = { 0, 0, 0, 0, 0, 0, 0, 0 }; - --/* PyCFunctionFastCall.proto */ --#if CYTHON_FAST_PYCCALL --static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); --#else --#define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) --#endif -- --/* PyFunctionFastCall.proto */ --#if CYTHON_FAST_PYCALL --#define __Pyx_PyFunction_FastCall(func, args, nargs)\ -- __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) --#if 1 || PY_VERSION_HEX < 0x030600B1 --static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); --#else --#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) --#endif --#define __Pyx_BUILD_ASSERT_EXPR(cond)\ -- (sizeof(char [1 - 2*!(cond)]) - 1) --#ifndef Py_MEMBER_SIZE --#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) --#endif -- static size_t __pyx_pyframe_localsplus_offset = 0; -- #include "frameobject.h" -- #define __Pxy_PyFrame_Initialize_Offsets()\ -- ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ -- (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) -- #define __Pyx_PyFrame_GetLocalsplus(frame)\ -- (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) --#endif -- --/* PyObjectCallMethO.proto */ --#if CYTHON_COMPILING_IN_CPYTHON --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); --#endif -- --/* PyObjectCallOneArg.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); -- --/* 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); -- - /* GetTopmostException.proto */ - #if CYTHON_USE_EXC_INFO_STACK - static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate); -@@ -2246,6 +2302,9 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam - /* SetVTable.proto */ - static int __Pyx_SetVtable(PyObject *dict, void *vtable); - -+/* PyObjectGetAttrStrNoError.proto */ -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); -+ - /* SetupReduce.proto */ - static int __Pyx_setup_reduce(PyObject* type_obj); - -@@ -2338,8 +2397,10 @@ typedef struct { - #endif - - --/* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); -+/* GCCDiagnostics.proto */ -+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -+#define __Pyx_HAS_GCC_DIAGNOSTIC -+#endif - - /* RealImag.proto */ - #if CYTHON_CCOMPLEX -@@ -2439,12 +2500,12 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int 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); - -@@ -2577,8 +2638,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*/ - static CYTHON_INLINE int __pyx_f_5numpy_import_array(void); /*proto*/ - - /* Module declarations from 'cylp.cy.CyCoinModel' */ -@@ -2640,60 +2710,40 @@ int __pyx_module_is_main_cylp__cy__CyClpDualRowPivotBase = 0; - - /* Implementation of 'cylp.cy.CyClpDualRowPivotBase' */ - static PyObject *__pyx_builtin_TypeError; --static PyObject *__pyx_builtin_ValueError; --static PyObject *__pyx_builtin_range; --static PyObject *__pyx_builtin_RuntimeError; - static PyObject *__pyx_builtin_ImportError; - static const char __pyx_k_main[] = "__main__"; - static const char __pyx_k_name[] = "__name__"; - static const char __pyx_k_test[] = "__test__"; --static const char __pyx_k_range[] = "range"; - static const char __pyx_k_reduce[] = "__reduce__"; - static const char __pyx_k_getstate[] = "__getstate__"; - static const char __pyx_k_setstate[] = "__setstate__"; - static const char __pyx_k_TypeError[] = "TypeError"; - static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; --static const char __pyx_k_ValueError[] = "ValueError"; - static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; - static const char __pyx_k_ImportError[] = "ImportError"; --static const char __pyx_k_RuntimeError[] = "RuntimeError"; - static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; - static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; - static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; - static const char __pyx_k_CyClpDualRowPivotBase[] = "CyClpDualRowPivotBase"; --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_CyClpDualRowPivotBase_pyx_pivotR[] = "CyClpDualRowPivotBase.pyx: pivotRow() should be implemented."; - static const char __pyx_k_CyClpDualRowPivotBase_pyx_update[] = "CyClpDualRowPivotBase.pyx: updateWeights should be implemented."; --static const char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; --static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; --static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; - static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import"; - static const char __pyx_k_self_CppSelf_cannot_be_converted[] = "self.CppSelf cannot be converted to a Python object for pickling"; - static const char __pyx_k_CyClpDualRowPivotBase_pyx_update_2[] = "CyClpDualRowPivotBase.pyx: updatePrimalSolution should be implemented."; --static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; - static PyObject *__pyx_n_s_CyClpDualRowPivotBase; - static PyObject *__pyx_kp_s_CyClpDualRowPivotBase_pyx_pivotR; - static PyObject *__pyx_kp_s_CyClpDualRowPivotBase_pyx_update; - static PyObject *__pyx_kp_s_CyClpDualRowPivotBase_pyx_update_2; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; - static PyObject *__pyx_n_s_ImportError; --static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; --static PyObject *__pyx_n_s_RuntimeError; - static PyObject *__pyx_n_s_TypeError; --static PyObject *__pyx_n_s_ValueError; - static PyObject *__pyx_n_s_cline_in_traceback; - static PyObject *__pyx_n_s_getstate; - static PyObject *__pyx_n_s_main; - static PyObject *__pyx_n_s_name; --static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous; --static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou; - static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; - static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; - static PyObject *__pyx_n_s_pyx_vtable; --static PyObject *__pyx_n_s_range; - static PyObject *__pyx_n_s_reduce; - static PyObject *__pyx_n_s_reduce_cython; - static PyObject *__pyx_n_s_reduce_ex; -@@ -2701,14 +2751,11 @@ static PyObject *__pyx_kp_s_self_CppSelf_cannot_be_converted; - static PyObject *__pyx_n_s_setstate; - static PyObject *__pyx_n_s_setstate_cython; - static PyObject *__pyx_n_s_test; --static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; - static int __pyx_pf_4cylp_2cy_21CyClpDualRowPivotBase_21CyClpDualRowPivotBase___init__(struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_21CyClpDualRowPivotBase_21CyClpDualRowPivotBase_5nRows___get__(struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_21CyClpDualRowPivotBase_21CyClpDualRowPivotBase_5nCols___get__(struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_21CyClpDualRowPivotBase_21CyClpDualRowPivotBase_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_21CyClpDualRowPivotBase_21CyClpDualRowPivotBase_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *__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_21CyClpDualRowPivotBase_CyClpDualRowPivotBase(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ - static PyObject *__pyx_tuple_; - static PyObject *__pyx_tuple__2; -@@ -2717,11 +2764,6 @@ 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; --static PyObject *__pyx_tuple__11; --static PyObject *__pyx_tuple__12; - /* Late includes */ - - /* "cylp/cy/CyClpDualRowPivotBase.pyx":9 -@@ -2738,6 +2780,9 @@ static int __pyx_f_4cylp_2cy_21CyClpDualRowPivotBase_RunPivotRow(void *__pyx_v_p - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("RunPivotRow", 0); - __Pyx_TraceCall("RunPivotRow", __pyx_f[1], 9, 0, __PYX_ERR(1, 9, __pyx_L1_error)); - -@@ -2786,6 +2831,9 @@ static ClpDualRowPivot *__pyx_f_4cylp_2cy_21CyClpDualRowPivotBase_RunDualPivotCl - ClpDualRowPivot *__pyx_r; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("RunDualPivotClone", 0); - __Pyx_TraceCall("RunDualPivotClone", __pyx_f[1], 12, 0, __PYX_ERR(1, 12, __pyx_L1_error)); - -@@ -2829,6 +2877,9 @@ static double __pyx_f_4cylp_2cy_21CyClpDualRowPivotBase_RunUpdateWeights(void *_ - double __pyx_r; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("RunUpdateWeights", 0); - __Pyx_TraceCall("RunUpdateWeights", __pyx_f[1], 15, 0, __PYX_ERR(1, 15, __pyx_L1_error)); - -@@ -2874,6 +2925,9 @@ static void __pyx_f_4cylp_2cy_21CyClpDualRowPivotBase_RunUpdatePrimalSolution(vo - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("RunUpdatePrimalSolution", 0); - __Pyx_TraceCall("RunUpdatePrimalSolution", __pyx_f[1], 21, 0, __PYX_ERR(1, 21, __pyx_L1_error)); - -@@ -2955,6 +3009,9 @@ static int __pyx_pf_4cylp_2cy_21CyClpDualRowPivotBase_21CyClpDualRowPivotBase___ - int __pyx_r; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__init__", 0); - __Pyx_TraceCall("__init__", __pyx_f[1], 30, 0, __PYX_ERR(1, 30, __pyx_L1_error)); - -@@ -3000,6 +3057,9 @@ static PyObject *__pyx_f_4cylp_2cy_21CyClpDualRowPivotBase_21CyClpDualRowPivotBa - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("pivotRow", 0); - __Pyx_TraceCall("pivotRow", __pyx_f[1], 38, 0, __PYX_ERR(1, 38, __pyx_L1_error)); - -@@ -3048,6 +3108,9 @@ static ClpDualRowPivot *__pyx_f_4cylp_2cy_21CyClpDualRowPivotBase_21CyClpDualRow - ClpDualRowPivot *__pyx_r; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("clone", 0); - __Pyx_TraceCall("clone", __pyx_f[1], 42, 0, __PYX_ERR(1, 42, __pyx_L1_error)); - -@@ -3101,6 +3164,9 @@ static double __pyx_f_4cylp_2cy_21CyClpDualRowPivotBase_21CyClpDualRowPivotBase_ - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("updateWeights", 0); - __Pyx_TraceCall("updateWeights", __pyx_f[1], 52, 0, __PYX_ERR(1, 52, __pyx_L1_error)); - -@@ -3149,6 +3215,9 @@ static void __pyx_f_4cylp_2cy_21CyClpDualRowPivotBase_21CyClpDualRowPivotBase_up - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("updatePrimalSolution", 0); - __Pyx_TraceCall("updatePrimalSolution", __pyx_f[1], 59, 0, __PYX_ERR(1, 59, __pyx_L1_error)); - __pyx_pybuffer_changeInObjective.pybuffer.buf = NULL; -@@ -3202,6 +3271,9 @@ static IClpSimplex *__pyx_f_4cylp_2cy_21CyClpDualRowPivotBase_21CyClpDualRowPivo - IClpSimplex *__pyx_r; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("model", 0); - __Pyx_TraceCall("model", __pyx_f[1], 66, 0, __PYX_ERR(1, 66, __pyx_L1_error)); - -@@ -3244,6 +3316,9 @@ static IClpSimplex *__pyx_f_4cylp_2cy_21CyClpDualRowPivotBase_21CyClpDualRowPivo - static void __pyx_f_4cylp_2cy_21CyClpDualRowPivotBase_21CyClpDualRowPivotBase_setModel(struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase *__pyx_v_self, IClpSimplex *__pyx_v_m) { - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("setModel", 0); - __Pyx_TraceCall("setModel", __pyx_f[1], 69, 0, __PYX_ERR(1, 69, __pyx_L1_error)); - -@@ -3285,6 +3360,9 @@ static double *__pyx_f_4cylp_2cy_21CyClpDualRowPivotBase_21CyClpDualRowPivotBase - double *__pyx_r; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("getReducedCosts", 0); - __Pyx_TraceCall("getReducedCosts", __pyx_f[1], 72, 0, __PYX_ERR(1, 72, __pyx_L1_error)); - -@@ -3342,6 +3420,9 @@ static PyObject *__pyx_pf_4cylp_2cy_21CyClpDualRowPivotBase_21CyClpDualRowPivotB - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - __Pyx_TraceCall("__get__", __pyx_f[1], 76, 0, __PYX_ERR(1, 76, __pyx_L1_error)); - -@@ -3404,6 +3485,9 @@ static PyObject *__pyx_pf_4cylp_2cy_21CyClpDualRowPivotBase_21CyClpDualRowPivotB - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - __Pyx_TraceCall("__get__", __pyx_f[1], 80, 0, __PYX_ERR(1, 80, __pyx_L1_error)); - -@@ -3463,6 +3547,9 @@ static PyObject *__pyx_pf_4cylp_2cy_21CyClpDualRowPivotBase_21CyClpDualRowPivotB - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__reduce_cython__", 0); - __Pyx_TraceCall("__reduce_cython__", __pyx_f[0], 1, 0, __PYX_ERR(0, 1, __pyx_L1_error)); - -@@ -3521,6 +3608,9 @@ static PyObject *__pyx_pf_4cylp_2cy_21CyClpDualRowPivotBase_21CyClpDualRowPivotB - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__setstate_cython__", 0); - __Pyx_TraceCall("__setstate_cython__", __pyx_f[0], 3, 0, __PYX_ERR(0, 3, __pyx_L1_error)); - -@@ -3553,1952 +3643,355 @@ static PyObject *__pyx_pf_4cylp_2cy_21CyClpDualRowPivotBase_21CyClpDualRowPivotB - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/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_TraceDeclarations - __Pyx_RefNannyDeclarations -- int __pyx_t_1; -- int __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- int __pyx_t_4; -- int __pyx_t_5; -- int __pyx_t_6; -- PyArray_Descr *__pyx_t_7; -- PyObject *__pyx_t_8 = NULL; -- char *__pyx_t_9; -- if (__pyx_v_info == NULL) { -- PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); -- return -1; -- } -- __Pyx_RefNannySetupContext("__getbuffer__", 0); -- __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); -- __Pyx_GIVEREF(__pyx_v_info->obj); -- __Pyx_TraceCall("__getbuffer__", __pyx_f[2], 258, 0, __PYX_ERR(2, 258, __pyx_L1_error)); -+ PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; -+ __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); -+ __Pyx_TraceCall("PyArray_MultiIterNew1", __pyx_f[2], 735, 0, __PYX_ERR(2, 735, __pyx_L1_error)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":265 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":736 - * -- * 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) # <<<<<<<<<<<<<< - * -+ * cdef inline object PyArray_MultiIterNew2(a, b): - */ -- __pyx_v_endian_detector = 1; -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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) # <<<<<<<<<<<<<< -+ /* "../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) - * -- * ndim = PyArray_NDIM(self) - */ -- __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":268 -- * cdef bint little_endian = ((&endian_detector)[0] != 0) -+ /* 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_TraceReturn(__pyx_r, 0); -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":738 -+ * return PyArray_MultiIterNew(1, a) - * -- * 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) - */ -- __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); - -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -+static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) { -+ PyObject *__pyx_r = NULL; -+ __Pyx_TraceDeclarations -+ __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); -+ __Pyx_TraceCall("PyArray_MultiIterNew2", __pyx_f[2], 738, 0, __PYX_ERR(2, 738, __pyx_L1_error)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":271 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":739 - * -- * 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) # <<<<<<<<<<<<<< - * -+ * cdef inline object PyArray_MultiIterNew3(a, b, c): - */ -- __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:; -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":270 -- * ndim = PyArray_NDIM(self) -+ /* "../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") -- */ -- if (unlikely(__pyx_t_1)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") # <<<<<<<<<<<<<< -+ * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< -+ * return PyArray_MultiIterNew(2, a, b) - * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, 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) - -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -+ /* 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_TraceReturn(__pyx_r, 0); -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} - -- /* "../../../../Users/tkral/Anaconda3/lib/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":741 -+ * return PyArray_MultiIterNew(2, a, b) -+ * -+ * 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") - */ -- __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; -- } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":275 -+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_TraceDeclarations -+ __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); -+ __Pyx_TraceCall("PyArray_MultiIterNew3", __pyx_f[2], 741, 0, __PYX_ERR(2, 741, __pyx_L1_error)); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":742 - * -- * 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) # <<<<<<<<<<<<<< - * -+ * cdef inline object PyArray_MultiIterNew4(a, b, c, d): - */ -- __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:; -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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":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") -- */ -- if (unlikely(__pyx_t_1)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") # <<<<<<<<<<<<<< -+ * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< -+ * return PyArray_MultiIterNew(3, a, b, c) - * -- * info.buf = PyArray_DATA(self) - */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__7, 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) - -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -+ /* 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_TraceReturn(__pyx_r, 0); -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} - -- /* "../../../../Users/tkral/Anaconda3/lib/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":744 -+ * return PyArray_MultiIterNew(3, a, b, c) - * -- * 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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":279 -+ * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< -+ * return PyArray_MultiIterNew(4, a, b, c, d) - * -- * 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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { - -- /* "../../../../Users/tkral/Anaconda3/lib/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)))); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- */ -- (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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_TraceDeclarations -+ __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); -+ __Pyx_TraceCall("PyArray_MultiIterNew4", __pyx_f[2], 744, 0, __PYX_ERR(2, 744, __pyx_L1_error)); - -- /* "../../../../Users/tkral/Anaconda3/lib/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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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:; - -- /* "../../../../Users/tkral/Anaconda3/lib/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_TraceReturn(__pyx_r, 0); -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} - -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)); - -- /* "../../../../Users/tkral/Anaconda3/lib/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_TraceDeclarations -+ __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); -+ __Pyx_TraceCall("PyArray_MultiIterNew5", __pyx_f[2], 747, 0, __PYX_ERR(2, 747, __pyx_L1_error)); - -- /* "../../../../Users/tkral/Anaconda3/lib/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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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 # <<<<<<<<<<<<<< -+ * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -+ * return PyArray_MultiIterNew(5, a, b, c, d, e) - * -- * 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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__8, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]) = '^'; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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'; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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_TraceReturn(Py_None, 0); -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/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_TraceDeclarations -- __Pyx_RefNannyDeclarations -- int __pyx_t_1; -- __Pyx_RefNannySetupContext("__releasebuffer__", 0); -- __Pyx_TraceCall("__releasebuffer__", __pyx_f[2], 337, 0, __PYX_ERR(2, 337, __pyx_L1_error)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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): -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 */ -- goto __pyx_L0; -- __pyx_L1_error:; -- __Pyx_WriteUnraisable("numpy.ndarray.__releasebuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); -- __pyx_L0:; -- __Pyx_TraceReturn(Py_None, 0); -- __Pyx_RefNannyFinishContext(); --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -- * 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_TraceDeclarations -- __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); -- __Pyx_TraceCall("PyArray_MultiIterNew1", __pyx_f[2], 821, 0, __PYX_ERR(2, 821, __pyx_L1_error)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":822 -- * -- * 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, 822, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -- * 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_TraceReturn(__pyx_r, 0); -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -- * 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_TraceDeclarations -- __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); -- __Pyx_TraceCall("PyArray_MultiIterNew2", __pyx_f[2], 824, 0, __PYX_ERR(2, 824, __pyx_L1_error)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":825 -- * -- * 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, 825, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -- * 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_TraceReturn(__pyx_r, 0); -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -- * 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_TraceDeclarations -- __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); -- __Pyx_TraceCall("PyArray_MultiIterNew3", __pyx_f[2], 827, 0, __PYX_ERR(2, 827, __pyx_L1_error)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":828 -- * -- * 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, 828, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -- * 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_TraceReturn(__pyx_r, 0); -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -- * 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_TraceDeclarations -- __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); -- __Pyx_TraceCall("PyArray_MultiIterNew4", __pyx_f[2], 830, 0, __PYX_ERR(2, 830, __pyx_L1_error)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":831 -- * -- * 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, 831, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -- * 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_TraceReturn(__pyx_r, 0); -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -- * 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_TraceDeclarations -- __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); -- __Pyx_TraceCall("PyArray_MultiIterNew5", __pyx_f[2], 833, 0, __PYX_ERR(2, 833, __pyx_L1_error)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":834 -- * -- * 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, 834, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -- * 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) -- * -- */ -- -- /* 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_TraceReturn(__pyx_r, 0); -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -- * 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_TraceDeclarations -- __Pyx_RefNannyDeclarations -- int __pyx_t_1; -- __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); -- __Pyx_TraceCall("PyDataType_SHAPE", __pyx_f[2], 836, 0, __PYX_ERR(2, 836, __pyx_L1_error)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -- * -- * 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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":838 -- * 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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -- * -- * cdef inline tuple PyDataType_SHAPE(dtype d): -- * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -- * return d.subarray.shape -- * else: -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":840 -- * 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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -- * 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_L1_error:; -- __Pyx_AddTraceback("numpy.PyDataType_SHAPE", __pyx_clineno, __pyx_lineno, __pyx_filename); -- __pyx_r = 0; -- __pyx_L0:; -- __Pyx_XGIVEREF(__pyx_r); -- __Pyx_TraceReturn(__pyx_r, 0); -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -- * -- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< -- * # Recursive utility function used in __getbuffer__ to get format -- * # string. The new location in the format string is returned. -- */ -- --static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) { -- PyArray_Descr *__pyx_v_child = 0; -- int __pyx_v_endian_detector; -- int __pyx_v_little_endian; -- PyObject *__pyx_v_fields = 0; -- PyObject *__pyx_v_childname = NULL; -- PyObject *__pyx_v_new_offset = NULL; -- PyObject *__pyx_v_t = NULL; -- char *__pyx_r; -- __Pyx_TraceDeclarations -- __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- Py_ssize_t __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- PyObject *__pyx_t_4 = NULL; -- int __pyx_t_5; -- int __pyx_t_6; -- int __pyx_t_7; -- long __pyx_t_8; -- char *__pyx_t_9; -- __Pyx_RefNannySetupContext("_util_dtypestring", 0); -- __Pyx_TraceCall("_util_dtypestring", __pyx_f[2], 842, 0, __PYX_ERR(2, 842, __pyx_L1_error)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":848 -- * 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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- if (unlikely(__pyx_v_descr->names == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -- __PYX_ERR(2, 851, __pyx_L1_error) -- } -- __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; -- for (;;) { -- if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; -- #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, 851, __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, 851, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- #endif -- __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":852 -- * -- * for childname in descr.names: -- * fields = descr.fields[childname] # <<<<<<<<<<<<<< -- * child, new_offset = fields -- * -- */ -- if (unlikely(__pyx_v_descr->fields == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -- __PYX_ERR(2, 852, __pyx_L1_error) -- } -- __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":853 -- * 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, 853, __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, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- #endif -- } else { -- __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 853, __pyx_L1_error) -- } -- if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3)); -- __pyx_t_3 = 0; -- __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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__9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 856, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0); -- if (!__pyx_t_7) { -- goto __pyx_L8_next_or; -- } else { -- } -- __pyx_t_7 = (__pyx_v_little_endian != 0); -- if (!__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_L8_next_or:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":859 -- * -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< -- * raise ValueError(u"Non-native byte order not supported") -- * # One could encode it in the format string and have Cython -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0); -- if (__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0); -- __pyx_t_6 = __pyx_t_7; -- __pyx_L7_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":860 -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * # One could encode it in the format string and have Cython -- * # complain instead, BUT: < and > in format strings also imply -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 860, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 860, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":870 -- * -- * # Output padding bytes -- * while offset[0] < new_offset: # <<<<<<<<<<<<<< -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- */ -- while (1) { -- __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (!__pyx_t_6) break; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":871 -- * # Output padding bytes -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< -- * f += 1 -- * offset[0] += 1 -- */ -- (__pyx_v_f[0]) = 0x78; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":872 -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte -- * f += 1 # <<<<<<<<<<<<<< -- * offset[0] += 1 -- * -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":873 -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- * offset[0] += 1 # <<<<<<<<<<<<<< -- * -- * offset[0] += child.itemsize -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":875 -- * offset[0] += 1 -- * -- * offset[0] += child.itemsize # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(child): -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); -- if (__pyx_t_6) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":878 -- * -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num # <<<<<<<<<<<<<< -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") -- */ -- __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 878, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 880, __pyx_L1_error) -+ /* 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_TraceReturn(__pyx_r, 0); -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 -+ * return PyArray_MultiIterNew(5, a, b, c, d, e) - * -+ * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -+ * if PyDataType_HASSUBARRAY(d): -+ * return d.subarray.shape - */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":883 -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 98; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":884 -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":885 -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x68; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":886 -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 72; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":887 -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x69; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":888 -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 73; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":889 -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x6C; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":890 -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 76; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":891 -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x71; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":892 -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 81; -- goto __pyx_L15; -- } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":893 -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":894 -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x64; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":895 -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x67; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":896 -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x66; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":897 -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x64; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":898 -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x67; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":899 -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (likely(__pyx_t_6)) { -- (__pyx_v_f[0]) = 79; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":901 -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< -- * f += 1 -- * else: -- */ -- /*else*/ { -- __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 901, __pyx_L1_error) -- } -- __pyx_L15:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":902 -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- * f += 1 # <<<<<<<<<<<<<< -- * else: -- * # Cython ignores struct boundary information ("T{...}"), -- */ -- __pyx_v_f = (__pyx_v_f + 1); -+static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) { -+ PyObject *__pyx_r = NULL; -+ __Pyx_TraceDeclarations -+ __Pyx_RefNannyDeclarations -+ int __pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; -+ __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); -+ __Pyx_TraceCall("PyDataType_SHAPE", __pyx_f[2], 750, 0, __PYX_ERR(2, 750, __pyx_L1_error)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * 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) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":906 -- * # Cython ignores struct boundary information ("T{...}"), -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< -- * return f -- * -+ /* "../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, 906, __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * 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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":907 -- * # 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; -+ } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * 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_AddTraceback("numpy.PyDataType_SHAPE", __pyx_clineno, __pyx_lineno, __pyx_filename); -+ __pyx_r = 0; - __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_TraceReturn(Py_None, 0); -+ __Pyx_XGIVEREF(__pyx_r); -+ __Pyx_TraceReturn(__pyx_r, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -+/* "../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): # <<<<<<<<<<<<<< -@@ -5509,10 +4002,13 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx - static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("set_array_base", 0); -- __Pyx_TraceCall("set_array_base", __pyx_f[2], 1022, 0, __PYX_ERR(2, 1022, __pyx_L1_error)); -+ __Pyx_TraceCall("set_array_base", __pyx_f[2], 929, 0, __PYX_ERR(2, 929, __pyx_L1_error)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1023 -+ /* "../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! # <<<<<<<<<<<<<< -@@ -5521,7 +4017,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - Py_INCREF(__pyx_v_base); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1024 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -5530,7 +4026,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -5547,7 +4043,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyFinishContext(); - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+/* "../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): # <<<<<<<<<<<<<< -@@ -5561,10 +4057,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - int __pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("get_array_base", 0); -- __Pyx_TraceCall("get_array_base", __pyx_f[2], 1026, 0, __PYX_ERR(2, 1026, __pyx_L1_error)); -+ __Pyx_TraceCall("get_array_base", __pyx_f[2], 933, 0, __PYX_ERR(2, 933, __pyx_L1_error)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1027 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -5573,7 +4072,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - __pyx_v_base = PyArray_BASE(__pyx_v_arr); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -5583,7 +4082,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) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1029 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":936 - * base = PyArray_BASE(arr) - * if base is NULL: - * return None # <<<<<<<<<<<<<< -@@ -5594,7 +4093,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -5603,7 +4102,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1030 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":937 - * if base is NULL: - * return None - * return base # <<<<<<<<<<<<<< -@@ -5615,7 +4114,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = ((PyObject *)__pyx_v_base); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -5634,12 +4133,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { -@@ -5654,14 +4153,17 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_array", 0); -- __Pyx_TraceCall("import_array", __pyx_f[2], 1034, 0, __PYX_ERR(2, 1034, __pyx_L1_error)); -+ __Pyx_TraceCall("import_array", __pyx_f[2], 941, 0, __PYX_ERR(2, 941, __pyx_L1_error)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - { -@@ -5673,20 +4175,20 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1036 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":943 - * cdef inline int import_array() except -1: - * try: -- * _import_array() # <<<<<<<<<<<<<< -+ * __pyx_import_array() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") - */ -- __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1036, __pyx_L3_error) -+ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 943, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - } -@@ -5696,9 +4198,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1037 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":944 - * try: -- * _import_array() -+ * __pyx_import_array() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.multiarray failed to import") - * -@@ -5706,32 +4208,32 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1037, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 944, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 945, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __PYX_ERR(2, 945, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - __Pyx_XGIVEREF(__pyx_t_1); -@@ -5742,12 +4244,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - /* function exit code */ -@@ -5766,7 +4268,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -5786,10 +4288,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_umath", 0); -- __Pyx_TraceCall("import_umath", __pyx_f[2], 1040, 0, __PYX_ERR(2, 1040, __pyx_L1_error)); -+ __Pyx_TraceCall("import_umath", __pyx_f[2], 947, 0, __PYX_ERR(2, 947, __pyx_L1_error)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5805,16 +4310,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1042 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":949 - * cdef inline int import_umath() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1042, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 949, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5828,7 +4333,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1043 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":950 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< -@@ -5838,28 +4343,28 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1043, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 950, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 951, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __PYX_ERR(2, 951, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5874,7 +4379,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -5898,7 +4403,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -5918,10 +4423,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_ufunc", 0); -- __Pyx_TraceCall("import_ufunc", __pyx_f[2], 1046, 0, __PYX_ERR(2, 1046, __pyx_L1_error)); -+ __Pyx_TraceCall("import_ufunc", __pyx_f[2], 953, 0, __PYX_ERR(2, 953, __pyx_L1_error)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5937,16 +4445,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1048 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":955 - * cdef inline int import_ufunc() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1048, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 955, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5960,35 +4468,38 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1049 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":956 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.umath failed to import") -+ * - */ - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1049, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 956, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1050 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":957 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< -+ * -+ * cdef extern from *: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 957, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __PYX_ERR(2, 957, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -6003,7 +4514,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -6026,6 +4537,225 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_RefNannyFinishContext(); - return __pyx_r; - } -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_TraceDeclarations -+ __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; -+ __Pyx_RefNannySetupContext("is_timedelta64_object", 0); -+ __Pyx_TraceCall("is_timedelta64_object", __pyx_f[2], 967, 0, __PYX_ERR(2, 967, __pyx_L1_error)); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":979 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L1_error:; -+ __Pyx_WriteUnraisable("numpy.is_timedelta64_object", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); -+ __pyx_r = 0; -+ __pyx_L0:; -+ __Pyx_TraceReturn(Py_None, 0); -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_TraceDeclarations -+ __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; -+ __Pyx_RefNannySetupContext("is_datetime64_object", 0); -+ __Pyx_TraceCall("is_datetime64_object", __pyx_f[2], 982, 0, __PYX_ERR(2, 982, __pyx_L1_error)); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":994 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L1_error:; -+ __Pyx_WriteUnraisable("numpy.is_datetime64_object", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); -+ __pyx_r = 0; -+ __pyx_L0:; -+ __Pyx_TraceReturn(Py_None, 0); -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { -+ npy_datetime __pyx_r; -+ __Pyx_TraceDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; -+ __Pyx_TraceCall("get_datetime64_value", __pyx_f[2], 997, 1, __PYX_ERR(2, 997, __pyx_L1_error)); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1004 -+ * also needed. That can be found using `get_datetime64_unit`. -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L1_error:; -+ __Pyx_WriteUnraisable("numpy.get_datetime64_value", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1); -+ __pyx_r = 0; -+ __pyx_L0:; -+ __Pyx_TraceReturn(Py_None, 1); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { -+ npy_timedelta __pyx_r; -+ __Pyx_TraceDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; -+ __Pyx_TraceCall("get_timedelta64_value", __pyx_f[2], 1007, 1, __PYX_ERR(2, 1007, __pyx_L1_error)); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1011 -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L1_error:; -+ __Pyx_WriteUnraisable("numpy.get_timedelta64_value", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1); -+ __pyx_r = 0; -+ __pyx_L0:; -+ __Pyx_TraceReturn(Py_None, 1); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { -+ NPY_DATETIMEUNIT __pyx_r; -+ __Pyx_TraceDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; -+ __Pyx_TraceCall("get_datetime64_unit", __pyx_f[2], 1014, 1, __PYX_ERR(2, 1014, __pyx_L1_error)); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1018 -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ * """ -+ * return (obj).obmeta.base # <<<<<<<<<<<<<< -+ */ -+ __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+ /* function exit code */ -+ __pyx_L1_error:; -+ __Pyx_WriteUnraisable("numpy.get_datetime64_unit", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1); -+ __pyx_r = (NPY_DATETIMEUNIT) 0; -+ __pyx_L0:; -+ __Pyx_TraceReturn(Py_None, 1); -+ return __pyx_r; -+} - static struct __pyx_vtabstruct_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase __pyx_vtable_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase; - - static PyObject *__pyx_tp_new_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { -@@ -6099,7 +4829,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPiv - sizeof(struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -6149,8 +4884,14 @@ static PyTypeObject __pyx_type_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPiv - #if PY_VERSION_HEX >= 0x030400a1 - 0, /*tp_finalize*/ - #endif -- #if PY_VERSION_HEX >= 0x030800b1 -- 0, /*tp_vectorcall*/ -+ #if PY_VERSION_HEX >= 0x030800b1 -+ 0, /*tp_vectorcall*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ - #endif - }; - -@@ -6204,23 +4945,15 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_kp_s_CyClpDualRowPivotBase_pyx_pivotR, __pyx_k_CyClpDualRowPivotBase_pyx_pivotR, sizeof(__pyx_k_CyClpDualRowPivotBase_pyx_pivotR), 0, 0, 1, 0}, - {&__pyx_kp_s_CyClpDualRowPivotBase_pyx_update, __pyx_k_CyClpDualRowPivotBase_pyx_update, sizeof(__pyx_k_CyClpDualRowPivotBase_pyx_update), 0, 0, 1, 0}, - {&__pyx_kp_s_CyClpDualRowPivotBase_pyx_update_2, __pyx_k_CyClpDualRowPivotBase_pyx_update_2, sizeof(__pyx_k_CyClpDualRowPivotBase_pyx_update_2), 0, 0, 1, 0}, -- {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, -- {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, - {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, -- {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, -- {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, -- {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, - {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, -- {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, -- {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, - {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0}, - {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0}, - {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, -- {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, -@@ -6228,15 +4961,11 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, - {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, -- {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, - {0, 0, 0, 0, 0, 0, 0} - }; - static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 2, __pyx_L1_error) -- __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(2, 272, __pyx_L1_error) -- __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(2, 285, __pyx_L1_error) -- __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(2, 856, __pyx_L1_error) -- __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 1038, __pyx_L1_error) -+ __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 945, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -@@ -6298,82 +5027,27 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_GOTREF(__pyx_tuple__5); - __Pyx_GIVEREF(__pyx_tuple__5); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":272 -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(2, 272, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__6); -- __Pyx_GIVEREF(__pyx_tuple__6); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":276 -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(2, 276, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__7); -- __Pyx_GIVEREF(__pyx_tuple__7); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":306 -- * if ((descr.byteorder == c'>' and little_endian) or -- * (descr.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * if t == NPY_BYTE: f = "b" -- * elif t == NPY_UBYTE: f = "B" -- */ -- __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(2, 306, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__8); -- __Pyx_GIVEREF(__pyx_tuple__8); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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_tuple__9 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__9); -- __Pyx_GIVEREF(__pyx_tuple__9); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__10); -- __Pyx_GIVEREF(__pyx_tuple__10); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(2, 1038, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__11); -- __Pyx_GIVEREF(__pyx_tuple__11); -+ __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(2, 945, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__6); -+ __Pyx_GIVEREF(__pyx_tuple__6); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(2, 1044, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__12); -- __Pyx_GIVEREF(__pyx_tuple__12); -+ __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(2, 951, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__7); -+ __Pyx_GIVEREF(__pyx_tuple__7); - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; -@@ -6414,6 +5088,9 @@ static int __Pyx_modinit_variable_export_code(void) { - - static int __Pyx_modinit_function_export_code(void) { - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); - /*--- Function export code ---*/ - if (__Pyx_ExportFunction("RunPivotRow", (void (*)(void))__pyx_f_4cylp_2cy_21CyClpDualRowPivotBase_RunPivotRow, "int (void *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error) -@@ -6429,6 +5106,9 @@ static int __Pyx_modinit_function_export_code(void) { - - static int __Pyx_modinit_type_init_code(void) { - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ - __pyx_vtabptr_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase = &__pyx_vtable_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase; -@@ -6460,6 +5140,9 @@ static int __Pyx_modinit_type_init_code(void) { - static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error) -@@ -6495,18 +5178,38 @@ static int __Pyx_modinit_type_import_code(void) { - if (!__pyx_ptype_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase) __PYX_ERR(7, 67, __pyx_L1_error) - __pyx_vtabptr_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase = (struct __pyx_vtabstruct_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase*)__Pyx_GetVtable(__pyx_ptype_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase->tp_dict); if (unlikely(!__pyx_vtabptr_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase)) __PYX_ERR(7, 67, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 206, __pyx_L1_error) -+ __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 206, __pyx_L1_error) -- __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 229, __pyx_L1_error) -- __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 233, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 200, __pyx_L1_error) -+ __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 223, __pyx_L1_error) -+ __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 227, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 242, __pyx_L1_error) -- __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 918, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 239, __pyx_L1_error) -+ __pyx_ptype_5numpy_generic = __Pyx_ImportType(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 771, __pyx_L1_error) -+ __pyx_ptype_5numpy_number = __Pyx_ImportType(__pyx_t_1, "numpy", "number", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 773, __pyx_L1_error) -+ __pyx_ptype_5numpy_integer = __Pyx_ImportType(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 775, __pyx_L1_error) -+ __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 777, __pyx_L1_error) -+ __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 779, __pyx_L1_error) -+ __pyx_ptype_5numpy_inexact = __Pyx_ImportType(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 781, __pyx_L1_error) -+ __pyx_ptype_5numpy_floating = __Pyx_ImportType(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 783, __pyx_L1_error) -+ __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 785, __pyx_L1_error) -+ __pyx_ptype_5numpy_flexible = __Pyx_ImportType(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 787, __pyx_L1_error) -+ __pyx_ptype_5numpy_character = __Pyx_ImportType(__pyx_t_1, "numpy", "character", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 789, __pyx_L1_error) -+ __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 827, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyCoinModel"); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 34, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); -@@ -6609,17 +5312,19 @@ static int __Pyx_modinit_function_import_code(void) { - } - - --#if PY_MAJOR_VERSION < 3 --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC void --#else -+#ifndef CYTHON_NO_PYINIT_EXPORT - #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#elif PY_MAJOR_VERSION < 3 -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" void -+#else -+#define __Pyx_PyMODINIT_FUNC void - #endif - #else --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC PyObject * -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * - #else --#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#define __Pyx_PyMODINIT_FUNC PyObject * - #endif - #endif - -@@ -6703,6 +5408,9 @@ static CYTHON_SMALL_CODE int __pyx_pymod_exec_CyClpDualRowPivotBase(PyObject *__ - __Pyx_TraceDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { -@@ -6750,11 +5458,9 @@ if (!__Pyx_RefNanny) { - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ -- #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS -- #ifdef WITH_THREAD /* Python build with threading support? */ -+ #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - PyEval_InitThreads(); - #endif -- #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; -@@ -6791,15 +5497,15 @@ if (!__Pyx_RefNanny) { - } - #endif - /*--- Builtin init code ---*/ -- if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Constants init code ---*/ -- if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(); - (void)__Pyx_modinit_variable_export_code(); -- if (unlikely(__Pyx_modinit_function_export_code() != 0)) goto __pyx_L1_error; -- if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; -- if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; -+ if (unlikely(__Pyx_modinit_function_export_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) -+ if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) -+ if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) - (void)__Pyx_modinit_variable_import_code(); - (void)__Pyx_modinit_function_import_code(); - /*--- Execution code ---*/ -@@ -6827,12 +5533,12 @@ if (!__Pyx_RefNanny) { - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -- * raise ImportError("numpy.core.umath failed to import") -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -- * try: -- * _import_umath() -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ - __Pyx_TraceReturn(Py_None, 0); - -@@ -6961,10 +5667,9 @@ static int __Pyx_TraceSetupAndCall(PyCodeObject** code, - (*frame)->f_tstate = tstate; - #endif - } -- __Pyx_PyFrame_SetLineNumber(*frame, firstlineno); -+ __Pyx_PyFrame_SetLineNumber(*frame, firstlineno); - retval = 1; -- tstate->tracing++; -- tstate->use_tracing = 0; -+ __Pyx_EnterTracing(tstate); - __Pyx_ErrFetchInState(tstate, &type, &value, &traceback); - #if CYTHON_TRACE - if (tstate->c_tracefunc) -@@ -6972,12 +5677,10 @@ static int __Pyx_TraceSetupAndCall(PyCodeObject** code, - if (retval && tstate->c_profilefunc) - #endif - retval = tstate->c_profilefunc(tstate->c_profileobj, *frame, PyTrace_CALL, NULL) == 0; -- tstate->use_tracing = (tstate->c_profilefunc || -- (CYTHON_TRACE && tstate->c_tracefunc)); -- tstate->tracing--; -+ __Pyx_LeaveTracing(tstate); - if (retval) { - __Pyx_ErrRestoreInState(tstate, type, value, traceback); -- return tstate->use_tracing && retval; -+ return __Pyx_IsTracing(tstate, 0, 0) && retval; - } else { - Py_XDECREF(type); - Py_XDECREF(value); -@@ -7148,7 +5851,7 @@ static int __Pyx_CheckKeywordStrings( - #if CYTHON_COMPILING_IN_CPYTHON - static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; -- ternaryfunc call = func->ob_type->tp_call; -+ ternaryfunc call = Py_TYPE(func)->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -@@ -7390,6 +6093,7 @@ static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) { - } - static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) { - switch (ch) { -+ case '?': return "'bool'"; - case 'c': return "'char'"; - case 'b': return "'signed char'"; - case 'B': return "'unsigned char'"; -@@ -7432,7 +6136,7 @@ static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) { - } - static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) { - switch (ch) { -- case 'c': case 'b': case 'B': case 's': case 'p': return 1; -+ case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; - case 'h': case 'H': return sizeof(short); - case 'i': case 'I': return sizeof(int); - case 'l': case 'L': return sizeof(long); -@@ -7516,7 +6220,7 @@ static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) { - case 'b': case 'h': case 'i': - case 'l': case 'q': case 's': case 'p': - return 'I'; -- case 'B': case 'H': case 'I': case 'L': case 'Q': -+ case '?': case 'B': case 'H': case 'I': case 'L': case 'Q': - return 'U'; - case 'f': case 'd': case 'g': - return (is_complex ? 'C' : 'R'); -@@ -7660,9 +6364,7 @@ static PyObject * - __pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp) - { - const char *ts = *tsp; -- int i = 0, number; -- int ndim = ctx->head->field->type->ndim; --; -+ int i = 0, number, ndim; - ++ts; - if (ctx->new_count != 1) { - PyErr_SetString(PyExc_ValueError, -@@ -7670,6 +6372,7 @@ __pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp) - return NULL; - } - if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; -+ ndim = ctx->head->field->type->ndim; - while (*ts && *ts != ')') { - switch (*ts) { - case ' ': case '\f': case '\r': case '\n': case '\t': case '\v': continue; -@@ -7795,12 +6498,12 @@ static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const cha - return NULL; - } - CYTHON_FALLTHROUGH; -- case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I': -+ case '?': case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I': - case 'l': case 'L': case 'q': case 'Q': - case 'f': case 'd': case 'g': - case 'O': case 'p': -- if (ctx->enc_type == *ts && got_Z == ctx->is_complex && -- ctx->enc_packmode == ctx->new_packmode) { -+ if ((ctx->enc_type == *ts) && (got_Z == ctx->is_complex) && -+ (ctx->enc_packmode == ctx->new_packmode) && (!ctx->is_valid_array)) { - ctx->enc_count += ctx->new_count; - ctx->new_count = 1; - got_Z = 0; -@@ -7883,250 +6586,6 @@ fail:; - return -1; - } - --/* PyCFunctionFastCall */ -- #if CYTHON_FAST_PYCCALL --static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { -- PyCFunctionObject *func = (PyCFunctionObject*)func_obj; -- PyCFunction meth = PyCFunction_GET_FUNCTION(func); -- PyObject *self = PyCFunction_GET_SELF(func); -- int flags = PyCFunction_GET_FLAGS(func); -- assert(PyCFunction_Check(func)); -- assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); -- assert(nargs >= 0); -- assert(nargs == 0 || args != NULL); -- /* _PyCFunction_FastCallDict() must not be called with an exception set, -- because it may clear it (directly or indirectly) and so the -- caller loses its exception */ -- assert(!PyErr_Occurred()); -- if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { -- return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); -- } else { -- return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); -- } --} --#endif -- --/* PyFunctionFastCall */ -- #if CYTHON_FAST_PYCALL --static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, -- PyObject *globals) { -- PyFrameObject *f; -- PyThreadState *tstate = __Pyx_PyThreadState_Current; -- PyObject **fastlocals; -- Py_ssize_t i; -- PyObject *result; -- assert(globals != NULL); -- /* XXX Perhaps we should create a specialized -- PyFrame_New() that doesn't take locals, but does -- take builtins without sanity checking them. -- */ -- assert(tstate != NULL); -- f = PyFrame_New(tstate, co, globals, NULL); -- if (f == NULL) { -- return NULL; -- } -- fastlocals = __Pyx_PyFrame_GetLocalsplus(f); -- for (i = 0; i < na; i++) { -- Py_INCREF(*args); -- fastlocals[i] = *args++; -- } -- result = PyEval_EvalFrameEx(f,0); -- ++tstate->recursion_depth; -- Py_DECREF(f); -- --tstate->recursion_depth; -- return result; --} --#if 1 || PY_VERSION_HEX < 0x030600B1 --static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { -- PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); -- PyObject *globals = PyFunction_GET_GLOBALS(func); -- PyObject *argdefs = PyFunction_GET_DEFAULTS(func); -- PyObject *closure; --#if PY_MAJOR_VERSION >= 3 -- PyObject *kwdefs; --#endif -- PyObject *kwtuple, **k; -- PyObject **d; -- Py_ssize_t nd; -- Py_ssize_t nk; -- PyObject *result; -- assert(kwargs == NULL || PyDict_Check(kwargs)); -- nk = kwargs ? PyDict_Size(kwargs) : 0; -- if (Py_EnterRecursiveCall((char*)" while calling a Python object")) { -- return NULL; -- } -- if ( --#if PY_MAJOR_VERSION >= 3 -- co->co_kwonlyargcount == 0 && --#endif -- likely(kwargs == NULL || nk == 0) && -- co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { -- if (argdefs == NULL && co->co_argcount == nargs) { -- result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); -- goto done; -- } -- else if (nargs == 0 && argdefs != NULL -- && co->co_argcount == Py_SIZE(argdefs)) { -- /* function called with no arguments, but all parameters have -- a default value: use default values as arguments .*/ -- args = &PyTuple_GET_ITEM(argdefs, 0); -- result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); -- goto done; -- } -- } -- if (kwargs != NULL) { -- Py_ssize_t pos, i; -- kwtuple = PyTuple_New(2 * nk); -- if (kwtuple == NULL) { -- result = NULL; -- goto done; -- } -- k = &PyTuple_GET_ITEM(kwtuple, 0); -- pos = i = 0; -- while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { -- Py_INCREF(k[i]); -- Py_INCREF(k[i+1]); -- i += 2; -- } -- nk = i / 2; -- } -- else { -- kwtuple = NULL; -- k = NULL; -- } -- closure = PyFunction_GET_CLOSURE(func); --#if PY_MAJOR_VERSION >= 3 -- kwdefs = PyFunction_GET_KW_DEFAULTS(func); --#endif -- if (argdefs != NULL) { -- d = &PyTuple_GET_ITEM(argdefs, 0); -- nd = Py_SIZE(argdefs); -- } -- else { -- d = NULL; -- nd = 0; -- } --#if PY_MAJOR_VERSION >= 3 -- result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, -- args, (int)nargs, -- k, (int)nk, -- d, (int)nd, kwdefs, closure); --#else -- result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, -- args, (int)nargs, -- k, (int)nk, -- d, (int)nd, closure); --#endif -- Py_XDECREF(kwtuple); --done: -- Py_LeaveRecursiveCall(); -- return result; --} --#endif --#endif -- --/* PyObjectCallMethO */ -- #if CYTHON_COMPILING_IN_CPYTHON --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { -- PyObject *self, *result; -- PyCFunction cfunc; -- cfunc = PyCFunction_GET_FUNCTION(func); -- self = PyCFunction_GET_SELF(func); -- if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -- return NULL; -- result = cfunc(self, arg); -- Py_LeaveRecursiveCall(); -- if (unlikely(!result) && unlikely(!PyErr_Occurred())) { -- PyErr_SetString( -- PyExc_SystemError, -- "NULL result without error in PyObject_Call"); -- } -- return result; --} --#endif -- --/* PyObjectCallOneArg */ -- #if CYTHON_COMPILING_IN_CPYTHON --static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { -- PyObject *result; -- PyObject *args = PyTuple_New(1); -- if (unlikely(!args)) return NULL; -- Py_INCREF(arg); -- PyTuple_SET_ITEM(args, 0, arg); -- result = __Pyx_PyObject_Call(func, args, NULL); -- Py_DECREF(args); -- return result; --} --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { --#if CYTHON_FAST_PYCALL -- if (PyFunction_Check(func)) { -- return __Pyx_PyFunction_FastCall(func, &arg, 1); -- } --#endif -- if (likely(PyCFunction_Check(func))) { -- if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { -- return __Pyx_PyObject_CallMethO(func, arg); --#if CYTHON_FAST_PYCCALL -- } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { -- return __Pyx_PyCFunction_FastCall(func, &arg, 1); --#endif -- } -- } -- return __Pyx__PyObject_CallOneArg(func, arg); --} --#else --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { -- PyObject *result; -- PyObject *args = PyTuple_Pack(1, arg); -- if (unlikely(!args)) return NULL; -- result = __Pyx_PyObject_Call(func, args, NULL); -- Py_DECREF(args); -- return result; --} --#endif -- --/* DictGetItem */ -- #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY --static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { -- PyObject *value; -- value = PyDict_GetItemWithError(d, key); -- if (unlikely(!value)) { -- if (!PyErr_Occurred()) { -- if (unlikely(PyTuple_Check(key))) { -- PyObject* args = PyTuple_Pack(1, key); -- if (likely(args)) { -- PyErr_SetObject(PyExc_KeyError, args); -- Py_DECREF(args); -- } -- } else { -- PyErr_SetObject(PyExc_KeyError, key); -- } -- } -- return NULL; -- } -- Py_INCREF(value); -- return value; --} --#endif -- --/* RaiseTooManyValuesToUnpack */ -- static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { -- PyErr_Format(PyExc_ValueError, -- "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); --} -- --/* RaiseNeedMoreValuesToUnpack */ -- static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { -- PyErr_Format(PyExc_ValueError, -- "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", -- index, (index == 1) ? "" : "s"); --} -- --/* RaiseNoneIterError */ -- static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); --} -- - /* GetTopmostException */ - #if CYTHON_USE_EXC_INFO_STACK - static _PyErr_StackItem * -@@ -8350,6 +6809,28 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam - return -1; - } - -+/* PyObjectGetAttrStrNoError */ -+ static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { -+ __Pyx_PyThreadState_declare -+ __Pyx_PyThreadState_assign -+ if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) -+ __Pyx_PyErr_Clear(); -+} -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { -+ PyObject *result; -+#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 -+ PyTypeObject* tp = Py_TYPE(obj); -+ if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { -+ return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); -+ } -+#endif -+ result = __Pyx_PyObject_GetAttrStr(obj, attr_name); -+ if (unlikely(!result)) { -+ __Pyx_PyObject_GetAttrStr_ClearAttributeError(); -+ } -+ return result; -+} -+ - /* SetupReduce */ - static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { - int ret; -@@ -8377,43 +6858,51 @@ static int __Pyx_setup_reduce(PyObject* type_obj) { - PyObject *setstate = NULL; - PyObject *setstate_cython = NULL; - #if CYTHON_USE_PYTYPE_LOOKUP -- if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #else -- if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #endif - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #else -- object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #endif -- reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; -+ reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; - if (reduce_ex == object_reduce_ex) { - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #else -- object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #endif -- reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; -+ reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; - if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { -- reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; -+ reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); -+ if (likely(reduce_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (reduce == object_reduce || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); - if (!setstate) PyErr_Clear(); - if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { -- setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; -+ setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); -+ if (likely(setstate_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (!setstate || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - } - PyType_Modified((PyTypeObject*)type_obj); - } - } -- goto GOOD; --BAD: -+ goto __PYX_GOOD; -+__PYX_BAD: - if (!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); - ret = -1; --GOOD: -+__PYX_GOOD: - #if !CYTHON_USE_PYTYPE_LOOKUP - Py_XDECREF(object_reduce); - Py_XDECREF(object_reduce_ex); -@@ -8535,7 +7024,7 @@ static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UIN - - /* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK --static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { -+static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) { - PyObject *use_cline; - PyObject *ptype, *pvalue, *ptraceback; - #if CYTHON_COMPILING_IN_CPYTHON -@@ -8565,7 +7054,7 @@ static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { - } - if (!use_cline) { - c_line = 0; -- PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); -+ (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; -@@ -8639,7 +7128,7 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - if (__pyx_code_cache.count == __pyx_code_cache.max_count) { - int new_max = __pyx_code_cache.max_count + 64; - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( -- __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); -+ __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); - if (unlikely(!entries)) { - return; - } -@@ -8662,30 +7151,31 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { -- PyCodeObject *py_code = 0; -- PyObject *py_srcfile = 0; -- PyObject *py_funcname = 0; -+ PyCodeObject *py_code = NULL; -+ PyObject *py_funcname = NULL; - #if PY_MAJOR_VERSION < 3 -+ PyObject *py_srcfile = NULL; - py_srcfile = PyString_FromString(filename); -- #else -- py_srcfile = PyUnicode_FromString(filename); -- #endif - if (!py_srcfile) goto bad; -+ #endif - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; -+ funcname = PyUnicode_AsUTF8(py_funcname); -+ if (!funcname) goto bad; - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); -- #else -- py_funcname = PyUnicode_FromString(funcname); -+ if (!py_funcname) goto bad; - #endif - } -- if (!py_funcname) goto bad; -+ #if PY_MAJOR_VERSION < 3 - py_code = __Pyx_PyCode_New( - 0, - 0, -@@ -8704,11 +7194,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); -- Py_DECREF(py_funcname); -+ #else -+ py_code = PyCode_NewEmpty(filename, funcname, py_line); -+ #endif -+ Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline - return py_code; - bad: -- Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); -+ #if PY_MAJOR_VERSION < 3 -+ Py_XDECREF(py_srcfile); -+ #endif - return NULL; - } - static void __Pyx_AddTraceback(const char *funcname, int c_line, -@@ -8743,7 +7238,6 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - #if PY_MAJOR_VERSION < 3 - static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) { - if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags); -- if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) return __pyx_pw_5numpy_7ndarray_1__getbuffer__(obj, view, flags); - PyErr_Format(PyExc_TypeError, "'%.200s' does not have the buffer interface", Py_TYPE(obj)->tp_name); - return -1; - } -@@ -8755,7 +7249,6 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - return; - } - if ((0)) {} -- else if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) __pyx_pw_5numpy_7ndarray_3__releasebuffer__(obj, view); - view->obj = NULL; - Py_DECREF(obj); - } -@@ -8784,37 +7277,6 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - return (target_type) value;\ - } - --/* CIntToPy */ -- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(int) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(int) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(int) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(int), -- little, !is_unsigned); -- } --} -- - /* Declarations */ - #if CYTHON_CCOMPLEX - #ifdef __cplusplus -@@ -8932,7 +7394,6 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_float(a, a); - return __Pyx_c_prod_float(a, a); - case 3: - z = __Pyx_c_prod_float(a, a); -@@ -9087,7 +7548,6 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_double(a, a); - return __Pyx_c_prod_double(a, a); - case 3: - z = __Pyx_c_prod_double(a, a); -@@ -9125,40 +7585,16 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - #endif - #endif - --/* CIntToPy */ -- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { -- const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(enum NPY_TYPES) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(enum NPY_TYPES) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), -- little, !is_unsigned); -- } --} -- - /* CIntFromPy */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -9345,9 +7781,54 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - return (int) -1; - } - -+/* CIntToPy */ -+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif -+ const int is_unsigned = neg_one > const_zero; -+ if (is_unsigned) { -+ if (sizeof(int) < sizeof(long)) { -+ return PyInt_FromLong((long) value); -+ } else if (sizeof(int) <= sizeof(unsigned long)) { -+ return PyLong_FromUnsignedLong((unsigned long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -+ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+#endif -+ } -+ } else { -+ if (sizeof(int) <= sizeof(long)) { -+ return PyInt_FromLong((long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -+ return PyLong_FromLongLong((PY_LONG_LONG) value); -+#endif -+ } -+ } -+ { -+ int one = 1; int little = (int)*(unsigned char *)&one; -+ unsigned char *bytes = (unsigned char *)&value; -+ return _PyLong_FromByteArray(bytes, sizeof(int), -+ little, !is_unsigned); -+ } -+} -+ - /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(long) < sizeof(long)) { -@@ -9378,7 +7859,14 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - - /* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -9966,6 +8454,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_DECREF(x); - return ival; - } -+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { -+ if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { -+ return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); -+#if PY_MAJOR_VERSION < 3 -+ } else if (likely(PyInt_CheckExact(o))) { -+ return PyInt_AS_LONG(o); -+#endif -+ } else { -+ Py_ssize_t ival; -+ PyObject *x; -+ x = PyNumber_Index(o); -+ if (!x) return -1; -+ ival = PyInt_AsLong(x); -+ Py_DECREF(x); -+ return ival; -+ } -+} - static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); - } -diff --git a/cylp/cy/CyClpPrimalColumnPivotBase.cpp b/cylp/cy/CyClpPrimalColumnPivotBase.cpp -index 10c5a89..ffa1838 100644 ---- a/cylp/cy/CyClpPrimalColumnPivotBase.cpp -+++ b/cylp/cy/CyClpPrimalColumnPivotBase.cpp -@@ -1,14 +1,16 @@ --/* Generated by Cython 0.29.12 */ -+/* 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_12" --#define CYTHON_HEX_VERSION 0x001D0CF0 -+#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) -@@ -449,7 +516,15 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) - #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) -+ #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 - #else - #define CYTHON_PEP393_ENABLED 0 - #define PyUnicode_1BYTE_KIND 1 -@@ -498,8 +573,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact -+#ifndef PyObject_Unicode - #define PyObject_Unicode PyObject_Str - #endif -+#endif - #if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) - #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) -@@ -510,6 +587,13 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #ifndef PySet_CheckExact - #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) - #endif -+#if PY_VERSION_HEX >= 0x030900A4 -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) -+#else -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) -+#endif - #if CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) - #else -@@ -543,13 +627,13 @@ 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) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) -+ #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) - #else - #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) - #endif -@@ -590,11 +674,10 @@ static CYTHON_INLINE float __PYX_NAN() { - #define __Pyx_truncl truncl - #endif - -- -+#define __PYX_MARK_ERR_POS(f_index, lineno) \ -+ { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } - #define __PYX_ERR(f_index, lineno, Ln_error) \ --{ \ -- __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ --} -+ { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } - - #ifndef __PYX_EXTERN_C - #ifdef __cplusplus -@@ -612,7 +695,13 @@ static CYTHON_INLINE float __PYX_NAN() { - #include "pythread.h" - #include "ICoinIndexedVector.hpp" - #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 "ClpDualRowPivot.hpp" - #include "ClpFactorization.hpp" - #include "IClpDualRowPivotBase.h" -@@ -641,11 +730,11 @@ static CYTHON_INLINE float __PYX_NAN() { - #include "OsiSolverInterface.hpp" - #include "CbcCompareUser.hpp" - #include "ICbcModel.hpp" -+#include - #include "ios" - #include "new" - #include "stdexcept" - #include "typeinfo" --#include - #include - #include "IClpPrimalColumnPivotBase.h" - #include "ClpPrimalColumnPivot.hpp" -@@ -746,6 +835,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 -@@ -881,23 +971,23 @@ static const char *__pyx_filename; - - static const char *__pyx_f[] = { - "stringsource", -- "cylp\\cy\\CyClpPrimalColumnPivotBase.pyx", -+ "cylp/cy/CyClpPrimalColumnPivotBase.pyx", - "__init__.pxd", - "type.pxd", - "bool.pxd", - "complex.pxd", -- "cylp\\cy\\CyCoinIndexedVector.pxd", -- "cylp\\cy\\CyClpDualRowPivotBase.pxd", -- "cylp\\cy\\CyCoinModel.pxd", -- "cylp\\cy\\CyCoinPackedMatrix.pxd", -- "cylp\\cy\\CyCgl.pxd", -- "cylp\\cy\\CyCbcNode.pxd", -- "cylp\\cy\\CyOsiSolverInterface.pxd", -- "cylp\\cy\\CyCbcModel.pxd", -- "cylp\\cy\\CyClpSimplex.pxd", -+ "cylp/cy/CyCoinIndexedVector.pxd", -+ "cylp/cy/CyClpDualRowPivotBase.pxd", -+ "cylp/cy/CyCoinModel.pxd", -+ "cylp/cy/CyCoinPackedMatrix.pxd", -+ "cylp/cy/CyCgl.pxd", -+ "cylp/cy/CyCbcNode.pxd", -+ "cylp/cy/CyOsiSolverInterface.pxd", -+ "cylp/cy/CyCbcModel.pxd", -+ "cylp/cy/CyClpSimplex.pxd", - }; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":776 -+/* "../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 # <<<<<<<<<<<<<< -@@ -906,7 +996,7 @@ static const char *__pyx_f[] = { - */ - typedef npy_int8 __pyx_t_5numpy_int8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":777 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":691 - * - * ctypedef npy_int8 int8_t - * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< -@@ -915,7 +1005,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; - */ - typedef npy_int16 __pyx_t_5numpy_int16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":778 -+/* "../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 # <<<<<<<<<<<<<< -@@ -924,7 +1014,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; - */ - typedef npy_int32 __pyx_t_5numpy_int32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":779 -+/* "../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 # <<<<<<<<<<<<<< -@@ -933,7 +1023,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; - */ - typedef npy_int64 __pyx_t_5numpy_int64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":783 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":697 - * #ctypedef npy_int128 int128_t - * - * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< -@@ -942,7 +1032,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; - */ - typedef npy_uint8 __pyx_t_5numpy_uint8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":784 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":698 - * - * ctypedef npy_uint8 uint8_t - * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< -@@ -951,7 +1041,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; - */ - typedef npy_uint16 __pyx_t_5numpy_uint16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":785 -+/* "../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 # <<<<<<<<<<<<<< -@@ -960,7 +1050,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; - */ - typedef npy_uint32 __pyx_t_5numpy_uint32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":786 -+/* "../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 # <<<<<<<<<<<<<< -@@ -969,7 +1059,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; - */ - typedef npy_uint64 __pyx_t_5numpy_uint64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":790 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":704 - * #ctypedef npy_uint128 uint128_t - * - * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< -@@ -978,7 +1068,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; - */ - typedef npy_float32 __pyx_t_5numpy_float32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":791 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":705 - * - * ctypedef npy_float32 float32_t - * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< -@@ -987,7 +1077,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; - */ - typedef npy_float64 __pyx_t_5numpy_float64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":800 -+/* "../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 # <<<<<<<<<<<<<< -@@ -996,7 +1086,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; - */ - typedef npy_long __pyx_t_5numpy_int_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":801 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1005,7 +1095,7 @@ typedef npy_long __pyx_t_5numpy_int_t; - */ - typedef npy_longlong __pyx_t_5numpy_long_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":802 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1014,7 +1104,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; - */ - typedef npy_longlong __pyx_t_5numpy_longlong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":804 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":718 - * ctypedef npy_longlong longlong_t - * - * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< -@@ -1023,7 +1113,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; - */ - typedef npy_ulong __pyx_t_5numpy_uint_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":805 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":719 - * - * ctypedef npy_ulong uint_t - * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< -@@ -1032,7 +1122,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":806 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1041,7 +1131,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":808 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":722 - * ctypedef npy_ulonglong ulonglong_t - * - * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< -@@ -1050,7 +1140,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - */ - typedef npy_intp __pyx_t_5numpy_intp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":809 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":723 - * - * ctypedef npy_intp intp_t - * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< -@@ -1059,7 +1149,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; - */ - typedef npy_uintp __pyx_t_5numpy_uintp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":811 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":725 - * ctypedef npy_uintp uintp_t - * - * ctypedef npy_double float_t # <<<<<<<<<<<<<< -@@ -1068,7 +1158,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; - */ - typedef npy_double __pyx_t_5numpy_float_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":812 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":726 - * - * ctypedef npy_double float_t - * ctypedef npy_double double_t # <<<<<<<<<<<<<< -@@ -1077,7 +1167,7 @@ typedef npy_double __pyx_t_5numpy_float_t; - */ - typedef npy_double __pyx_t_5numpy_double_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":813 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1139,7 +1229,7 @@ struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex; - struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus; - struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":815 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":729 - * ctypedef npy_longdouble longdouble_t - * - * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< -@@ -1148,7 +1238,7 @@ struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBa - */ - typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":816 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":730 - * - * ctypedef npy_cfloat cfloat_t - * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< -@@ -1157,7 +1247,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - */ - typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":817 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1166,7 +1256,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - */ - typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":819 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":733 - * ctypedef npy_clongdouble clongdouble_t - * - * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< -@@ -1891,11 +1981,45 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - #define CYTHON_FRAME_DEL(frame) Py_CLEAR(frame) - #endif - #define __Pyx_TraceDeclarations\ -- static PyCodeObject *__pyx_frame_code = NULL;\ -- CYTHON_FRAME_MODIFIER PyFrameObject *__pyx_frame = NULL;\ -- int __Pyx_use_tracing = 0; -+ static PyCodeObject *__pyx_frame_code = NULL;\ -+ CYTHON_FRAME_MODIFIER PyFrameObject *__pyx_frame = NULL;\ -+ int __Pyx_use_tracing = 0; - #define __Pyx_TraceFrameInit(codeobj)\ -- if (codeobj) __pyx_frame_code = (PyCodeObject*) codeobj; -+ if (codeobj) __pyx_frame_code = (PyCodeObject*) codeobj; -+#if PY_VERSION_HEX >= 0x030b00a2 -+ #define __Pyx_IsTracing(tstate, check_tracing, check_funcs)\ -+ (unlikely((tstate)->cframe->use_tracing) &&\ -+ (!(check_tracing) || !(tstate)->tracing) &&\ -+ (!(check_funcs) || (tstate)->c_profilefunc || (CYTHON_TRACE && (tstate)->c_tracefunc))) -+ #define __Pyx_EnterTracing(tstate) PyThreadState_EnterTracing(tstate) -+ #define __Pyx_LeaveTracing(tstate) PyThreadState_LeaveTracing(tstate) -+#elif PY_VERSION_HEX >= 0x030a00b1 -+ #define __Pyx_IsTracing(tstate, check_tracing, check_funcs)\ -+ (unlikely((tstate)->cframe->use_tracing) &&\ -+ (!(check_tracing) || !(tstate)->tracing) &&\ -+ (!(check_funcs) || (tstate)->c_profilefunc || (CYTHON_TRACE && (tstate)->c_tracefunc))) -+ #define __Pyx_EnterTracing(tstate)\ -+ do { tstate->tracing++; tstate->cframe->use_tracing = 0; } while (0) -+ #define __Pyx_LeaveTracing(tstate)\ -+ do {\ -+ tstate->tracing--;\ -+ tstate->cframe->use_tracing = ((CYTHON_TRACE && tstate->c_tracefunc != NULL)\ -+ || tstate->c_profilefunc != NULL);\ -+ } while (0) -+#else -+ #define __Pyx_IsTracing(tstate, check_tracing, check_funcs)\ -+ (unlikely((tstate)->use_tracing) &&\ -+ (!(check_tracing) || !(tstate)->tracing) &&\ -+ (!(check_funcs) || (tstate)->c_profilefunc || (CYTHON_TRACE && (tstate)->c_tracefunc))) -+ #define __Pyx_EnterTracing(tstate)\ -+ do { tstate->tracing++; tstate->use_tracing = 0; } while (0) -+ #define __Pyx_LeaveTracing(tstate)\ -+ do {\ -+ tstate->tracing--;\ -+ tstate->use_tracing = ((CYTHON_TRACE && tstate->c_tracefunc != NULL)\ -+ || tstate->c_profilefunc != NULL);\ -+ } while (0) -+#endif - #ifdef WITH_THREAD - #define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error)\ - if (nogil) {\ -@@ -1903,8 +2027,7 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - PyThreadState *tstate;\ - PyGILState_STATE state = PyGILState_Ensure();\ - tstate = __Pyx_PyThreadState_Current;\ -- if (unlikely(tstate->use_tracing) && !tstate->tracing &&\ -- (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\ -+ if (__Pyx_IsTracing(tstate, 1, 1)) {\ - __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\ - }\ - PyGILState_Release(state);\ -@@ -1912,8 +2035,7 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - }\ - } else {\ - PyThreadState* tstate = PyThreadState_GET();\ -- if (unlikely(tstate->use_tracing) && !tstate->tracing &&\ -- (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\ -+ if (__Pyx_IsTracing(tstate, 1, 1)) {\ - __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\ - if (unlikely(__Pyx_use_tracing < 0)) goto_error;\ - }\ -@@ -1921,8 +2043,7 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - #else - #define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error)\ - { PyThreadState* tstate = PyThreadState_GET();\ -- if (unlikely(tstate->use_tracing) && !tstate->tracing &&\ -- (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\ -+ if (__Pyx_IsTracing(tstate, 1, 1)) {\ - __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\ - if (unlikely(__Pyx_use_tracing < 0)) goto_error;\ - }\ -@@ -1931,10 +2052,8 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - #define __Pyx_TraceException()\ - if (likely(!__Pyx_use_tracing)); else {\ - PyThreadState* tstate = __Pyx_PyThreadState_Current;\ -- if (tstate->use_tracing &&\ -- (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\ -- tstate->tracing++;\ -- tstate->use_tracing = 0;\ -+ if (__Pyx_IsTracing(tstate, 0, 1)) {\ -+ __Pyx_EnterTracing(tstate);\ - PyObject *exc_info = __Pyx_GetExceptionTuple(tstate);\ - if (exc_info) {\ - if (CYTHON_TRACE && tstate->c_tracefunc)\ -@@ -1944,22 +2063,19 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - tstate->c_profileobj, __pyx_frame, PyTrace_EXCEPTION, exc_info);\ - Py_DECREF(exc_info);\ - }\ -- tstate->use_tracing = 1;\ -- tstate->tracing--;\ -+ __Pyx_LeaveTracing(tstate);\ - }\ - } - static void __Pyx_call_return_trace_func(PyThreadState *tstate, PyFrameObject *frame, PyObject *result) { - PyObject *type, *value, *traceback; - __Pyx_ErrFetchInState(tstate, &type, &value, &traceback); -- tstate->tracing++; -- tstate->use_tracing = 0; -+ __Pyx_EnterTracing(tstate); - if (CYTHON_TRACE && tstate->c_tracefunc) - tstate->c_tracefunc(tstate->c_traceobj, frame, PyTrace_RETURN, result); - if (tstate->c_profilefunc) - tstate->c_profilefunc(tstate->c_profileobj, frame, PyTrace_RETURN, result); - CYTHON_FRAME_DEL(frame); -- tstate->use_tracing = 1; -- tstate->tracing--; -+ __Pyx_LeaveTracing(tstate); - __Pyx_ErrRestoreInState(tstate, type, value, traceback); - } - #ifdef WITH_THREAD -@@ -1970,14 +2086,14 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - PyThreadState *tstate;\ - PyGILState_STATE state = PyGILState_Ensure();\ - tstate = __Pyx_PyThreadState_Current;\ -- if (tstate->use_tracing) {\ -+ if (__Pyx_IsTracing(tstate, 0, 0)) {\ - __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\ - }\ - PyGILState_Release(state);\ - }\ - } else {\ - PyThreadState* tstate = __Pyx_PyThreadState_Current;\ -- if (tstate->use_tracing) {\ -+ if (__Pyx_IsTracing(tstate, 0, 0)) {\ - __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\ - }\ - }\ -@@ -1986,7 +2102,7 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - #define __Pyx_TraceReturn(result, nogil)\ - if (likely(!__Pyx_use_tracing)); else {\ - PyThreadState* tstate = __Pyx_PyThreadState_Current;\ -- if (tstate->use_tracing) {\ -+ if (__Pyx_IsTracing(tstate, 0, 0)) {\ - __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\ - }\ - } -@@ -2006,11 +2122,9 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - PyObject *type, *value, *traceback; - __Pyx_ErrFetchInState(tstate, &type, &value, &traceback); - __Pyx_PyFrame_SetLineNumber(frame, lineno); -- tstate->tracing++; -- tstate->use_tracing = 0; -+ __Pyx_EnterTracing(tstate); - ret = tstate->c_tracefunc(tstate->c_traceobj, frame, PyTrace_LINE, NULL); -- tstate->use_tracing = 1; -- tstate->tracing--; -+ __Pyx_LeaveTracing(tstate); - if (likely(!ret)) { - __Pyx_ErrRestoreInState(tstate, type, value, traceback); - } else { -@@ -2029,7 +2143,7 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - PyThreadState *tstate;\ - PyGILState_STATE state = PyGILState_Ensure();\ - tstate = __Pyx_PyThreadState_Current;\ -- if (unlikely(tstate->use_tracing && tstate->c_tracefunc && __pyx_frame->f_trace)) {\ -+ if (__Pyx_IsTracing(tstate, 0, 0) && tstate->c_tracefunc && __pyx_frame->f_trace) {\ - ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\ - }\ - PyGILState_Release(state);\ -@@ -2037,7 +2151,7 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - }\ - } else {\ - PyThreadState* tstate = __Pyx_PyThreadState_Current;\ -- if (unlikely(tstate->use_tracing && tstate->c_tracefunc && __pyx_frame->f_trace)) {\ -+ if (__Pyx_IsTracing(tstate, 0, 0) && tstate->c_tracefunc && __pyx_frame->f_trace) {\ - int ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\ - if (unlikely(ret)) goto_error;\ - }\ -@@ -2047,7 +2161,7 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - #define __Pyx_TraceLine(lineno, nogil, goto_error)\ - if (likely(!__Pyx_use_tracing)); else {\ - PyThreadState* tstate = __Pyx_PyThreadState_Current;\ -- if (unlikely(tstate->use_tracing && tstate->c_tracefunc && __pyx_frame->f_trace)) {\ -+ if (__Pyx_IsTracing(tstate, 0, 0) && tstate->c_tracefunc && __pyx_frame->f_trace) {\ - int ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\ - if (unlikely(ret)) goto_error;\ - }\ -@@ -2079,67 +2193,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg - /* RaiseException.proto */ - static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); - --/* PyCFunctionFastCall.proto */ --#if CYTHON_FAST_PYCCALL --static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); --#else --#define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) --#endif -- --/* PyFunctionFastCall.proto */ --#if CYTHON_FAST_PYCALL --#define __Pyx_PyFunction_FastCall(func, args, nargs)\ -- __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) --#if 1 || PY_VERSION_HEX < 0x030600B1 --static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); --#else --#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) --#endif --#define __Pyx_BUILD_ASSERT_EXPR(cond)\ -- (sizeof(char [1 - 2*!(cond)]) - 1) --#ifndef Py_MEMBER_SIZE --#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) --#endif -- static size_t __pyx_pyframe_localsplus_offset = 0; -- #include "frameobject.h" -- #define __Pxy_PyFrame_Initialize_Offsets()\ -- ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ -- (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) -- #define __Pyx_PyFrame_GetLocalsplus(frame)\ -- (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) --#endif -- --/* PyObjectCallMethO.proto */ --#if CYTHON_COMPILING_IN_CPYTHON --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); --#endif -- --/* PyObjectCallOneArg.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); -- --/* 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); -@@ -2189,6 +2242,9 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam - /* SetVTable.proto */ - static int __Pyx_SetVtable(PyObject *dict, void *vtable); - -+/* PyObjectGetAttrStrNoError.proto */ -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); -+ - /* SetupReduce.proto */ - static int __Pyx_setup_reduce(PyObject* type_obj); - -@@ -2258,8 +2314,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); -+/* GCCDiagnostics.proto */ -+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -+#define __Pyx_HAS_GCC_DIAGNOSTIC -+#endif - - /* RealImag.proto */ - #if CYTHON_CCOMPLEX -@@ -2359,12 +2417,12 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int 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); - -@@ -2493,8 +2551,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.CyClpDualRowPivotBase' */ - static PyTypeObject *__pyx_ptype_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase = 0; -@@ -2556,58 +2623,38 @@ int __pyx_module_is_main_cylp__cy__CyClpPrimalColumnPivotBase = 0; - - /* Implementation of 'cylp.cy.CyClpPrimalColumnPivotBase' */ - static PyObject *__pyx_builtin_TypeError; --static PyObject *__pyx_builtin_ValueError; --static PyObject *__pyx_builtin_range; --static PyObject *__pyx_builtin_RuntimeError; - static PyObject *__pyx_builtin_ImportError; - static const char __pyx_k_main[] = "__main__"; - static const char __pyx_k_name[] = "__name__"; - static const char __pyx_k_test[] = "__test__"; --static const char __pyx_k_range[] = "range"; - static const char __pyx_k_reduce[] = "__reduce__"; - static const char __pyx_k_getstate[] = "__getstate__"; - static const char __pyx_k_setstate[] = "__setstate__"; - static const char __pyx_k_TypeError[] = "TypeError"; - static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; --static const char __pyx_k_ValueError[] = "ValueError"; - static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; - static const char __pyx_k_ImportError[] = "ImportError"; --static const char __pyx_k_RuntimeError[] = "RuntimeError"; - static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; - static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; - static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; - static const char __pyx_k_CyClpPrimalColumnPivotBase[] = "CyClpPrimalColumnPivotBase"; --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_CyClpPrimalColumnPivotBase_pyx_p[] = "CyClpPrimalColumnPivotBase.pyx: pivotColumn must be implemented."; - static const char __pyx_k_CyClpPrimalColumnPivotBase_pyx_s[] = "CyClpPrimalColumnPivotBase.pyx: saveWeights must be implemented."; --static const char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; --static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; --static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; - static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import"; - static const char __pyx_k_self_CppSelf_cannot_be_converted[] = "self.CppSelf cannot be converted to a Python object for pickling"; --static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; - static PyObject *__pyx_n_s_CyClpPrimalColumnPivotBase; - static PyObject *__pyx_kp_s_CyClpPrimalColumnPivotBase_pyx_p; - static PyObject *__pyx_kp_s_CyClpPrimalColumnPivotBase_pyx_s; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; - static PyObject *__pyx_n_s_ImportError; --static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; --static PyObject *__pyx_n_s_RuntimeError; - static PyObject *__pyx_n_s_TypeError; --static PyObject *__pyx_n_s_ValueError; - static PyObject *__pyx_n_s_cline_in_traceback; - static PyObject *__pyx_n_s_getstate; - static PyObject *__pyx_n_s_main; - static PyObject *__pyx_n_s_name; --static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous; --static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou; - static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; - static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; - static PyObject *__pyx_n_s_pyx_vtable; --static PyObject *__pyx_n_s_range; - static PyObject *__pyx_n_s_reduce; - static PyObject *__pyx_n_s_reduce_cython; - static PyObject *__pyx_n_s_reduce_ex; -@@ -2615,15 +2662,12 @@ static PyObject *__pyx_kp_s_self_CppSelf_cannot_be_converted; - static PyObject *__pyx_n_s_setstate; - static PyObject *__pyx_n_s_setstate_cython; - static PyObject *__pyx_n_s_test; --static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; - static int __pyx_pf_4cylp_2cy_26CyClpPrimalColumnPivotBase_26CyClpPrimalColumnPivotBase___init__(struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *__pyx_v_self); /* proto */ - static void __pyx_pf_4cylp_2cy_26CyClpPrimalColumnPivotBase_26CyClpPrimalColumnPivotBase_2__dealloc__(struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_26CyClpPrimalColumnPivotBase_26CyClpPrimalColumnPivotBase_5nRows___get__(struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_26CyClpPrimalColumnPivotBase_26CyClpPrimalColumnPivotBase_5nCols___get__(struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_26CyClpPrimalColumnPivotBase_26CyClpPrimalColumnPivotBase_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_26CyClpPrimalColumnPivotBase_26CyClpPrimalColumnPivotBase_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *__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_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ - static PyObject *__pyx_tuple_; - static PyObject *__pyx_tuple__2; -@@ -2631,11 +2675,6 @@ 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; --static PyObject *__pyx_tuple__11; - /* Late includes */ - - /* "cylp/cy/CyClpPrimalColumnPivotBase.pyx":7 -@@ -2652,6 +2691,9 @@ static int __pyx_f_4cylp_2cy_26CyClpPrimalColumnPivotBase_RunPivotColumn(void *_ - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_t_2; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("RunPivotColumn", 0); - __Pyx_TraceCall("RunPivotColumn", __pyx_f[1], 7, 0, __PYX_ERR(1, 7, __pyx_L1_error)); - -@@ -2700,6 +2742,9 @@ static ClpPrimalColumnPivot *__pyx_f_4cylp_2cy_26CyClpPrimalColumnPivotBase_RunC - ClpPrimalColumnPivot *__pyx_r; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("RunClone", 0); - __Pyx_TraceCall("RunClone", __pyx_f[1], 14, 0, __PYX_ERR(1, 14, __pyx_L1_error)); - -@@ -2742,6 +2787,9 @@ static ClpPrimalColumnPivot *__pyx_f_4cylp_2cy_26CyClpPrimalColumnPivotBase_RunC - static void __pyx_f_4cylp_2cy_26CyClpPrimalColumnPivotBase_RunSaveWeights(void *__pyx_v_ptr, IClpSimplex *__pyx_v_model, int __pyx_v_mode) { - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("RunSaveWeights", 0); - __Pyx_TraceCall("RunSaveWeights", __pyx_f[1], 17, 0, __PYX_ERR(1, 17, __pyx_L1_error)); - -@@ -2799,6 +2847,9 @@ static int __pyx_pf_4cylp_2cy_26CyClpPrimalColumnPivotBase_26CyClpPrimalColumnPi - int __pyx_r; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__init__", 0); - __Pyx_TraceCall("__init__", __pyx_f[1], 24, 0, __PYX_ERR(1, 24, __pyx_L1_error)); - -@@ -2862,6 +2913,9 @@ static void __pyx_pw_4cylp_2cy_26CyClpPrimalColumnPivotBase_26CyClpPrimalColumnP - static void __pyx_pf_4cylp_2cy_26CyClpPrimalColumnPivotBase_26CyClpPrimalColumnPivotBase_2__dealloc__(struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *__pyx_v_self) { - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__dealloc__", 0); - __Pyx_TraceCall("__dealloc__", __pyx_f[1], 32, 0, __PYX_ERR(1, 32, __pyx_L1_error)); - -@@ -2913,6 +2967,9 @@ static PyObject *__pyx_f_4cylp_2cy_26CyClpPrimalColumnPivotBase_26CyClpPrimalCol - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("pivotColumn", 0); - __Pyx_TraceCall("pivotColumn", __pyx_f[1], 36, 0, __PYX_ERR(1, 36, __pyx_L1_error)); - -@@ -2961,6 +3018,9 @@ static ClpPrimalColumnPivot *__pyx_f_4cylp_2cy_26CyClpPrimalColumnPivotBase_26Cy - ClpPrimalColumnPivot *__pyx_r; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("clone", 0); - __Pyx_TraceCall("clone", __pyx_f[1], 42, 0, __PYX_ERR(1, 42, __pyx_L1_error)); - -@@ -3013,6 +3073,9 @@ static void __pyx_f_4cylp_2cy_26CyClpPrimalColumnPivotBase_26CyClpPrimalColumnPi - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("saveWeights", 0); - __Pyx_TraceCall("saveWeights", __pyx_f[1], 51, 0, __PYX_ERR(1, 51, __pyx_L1_error)); - -@@ -3057,6 +3120,9 @@ static IClpSimplex *__pyx_f_4cylp_2cy_26CyClpPrimalColumnPivotBase_26CyClpPrimal - IClpSimplex *__pyx_r; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("model", 0); - __Pyx_TraceCall("model", __pyx_f[1], 55, 0, __PYX_ERR(1, 55, __pyx_L1_error)); - -@@ -3099,6 +3165,9 @@ static IClpSimplex *__pyx_f_4cylp_2cy_26CyClpPrimalColumnPivotBase_26CyClpPrimal - static void __pyx_f_4cylp_2cy_26CyClpPrimalColumnPivotBase_26CyClpPrimalColumnPivotBase_setModel(struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase *__pyx_v_self, IClpSimplex *__pyx_v_m) { - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("setModel", 0); - __Pyx_TraceCall("setModel", __pyx_f[1], 58, 0, __PYX_ERR(1, 58, __pyx_L1_error)); - -@@ -3140,6 +3209,9 @@ static double *__pyx_f_4cylp_2cy_26CyClpPrimalColumnPivotBase_26CyClpPrimalColum - double *__pyx_r; - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("getReducedCosts", 0); - __Pyx_TraceCall("getReducedCosts", __pyx_f[1], 61, 0, __PYX_ERR(1, 61, __pyx_L1_error)); - -@@ -3197,6 +3269,9 @@ static PyObject *__pyx_pf_4cylp_2cy_26CyClpPrimalColumnPivotBase_26CyClpPrimalCo - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - __Pyx_TraceCall("__get__", __pyx_f[1], 65, 0, __PYX_ERR(1, 65, __pyx_L1_error)); - -@@ -3259,6 +3334,9 @@ static PyObject *__pyx_pf_4cylp_2cy_26CyClpPrimalColumnPivotBase_26CyClpPrimalCo - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - __Pyx_TraceCall("__get__", __pyx_f[1], 69, 0, __PYX_ERR(1, 69, __pyx_L1_error)); - -@@ -3318,6 +3396,9 @@ static PyObject *__pyx_pf_4cylp_2cy_26CyClpPrimalColumnPivotBase_26CyClpPrimalCo - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__reduce_cython__", 0); - __Pyx_TraceCall("__reduce_cython__", __pyx_f[0], 1, 0, __PYX_ERR(0, 1, __pyx_L1_error)); - -@@ -3376,6 +3457,9 @@ static PyObject *__pyx_pf_4cylp_2cy_26CyClpPrimalColumnPivotBase_26CyClpPrimalCo - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__setstate_cython__", 0); - __Pyx_TraceCall("__setstate_cython__", __pyx_f[0], 3, 0, __PYX_ERR(0, 3, __pyx_L1_error)); - -@@ -3408,1952 +3492,355 @@ static PyObject *__pyx_pf_4cylp_2cy_26CyClpPrimalColumnPivotBase_26CyClpPrimalCo - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/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_TraceDeclarations - __Pyx_RefNannyDeclarations -- int __pyx_t_1; -- int __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- int __pyx_t_4; -- int __pyx_t_5; -- int __pyx_t_6; -- PyArray_Descr *__pyx_t_7; -- PyObject *__pyx_t_8 = NULL; -- char *__pyx_t_9; -- if (__pyx_v_info == NULL) { -- PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); -- return -1; -- } -- __Pyx_RefNannySetupContext("__getbuffer__", 0); -- __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); -- __Pyx_GIVEREF(__pyx_v_info->obj); -- __Pyx_TraceCall("__getbuffer__", __pyx_f[2], 258, 0, __PYX_ERR(2, 258, __pyx_L1_error)); -+ PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; -+ __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); -+ __Pyx_TraceCall("PyArray_MultiIterNew1", __pyx_f[2], 735, 0, __PYX_ERR(2, 735, __pyx_L1_error)); - -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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); - -- /* "../../../../Users/tkral/Anaconda3/lib/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_TraceReturn(__pyx_r, 0); -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} - -- /* "../../../../Users/tkral/Anaconda3/lib/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:; - -- /* "../../../../Users/tkral/Anaconda3/lib/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_TraceDeclarations -+ __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); -+ __Pyx_TraceCall("PyArray_MultiIterNew2", __pyx_f[2], 738, 0, __PYX_ERR(2, 738, __pyx_L1_error)); - -- /* "../../../../Users/tkral/Anaconda3/lib/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__5, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } - -- /* "../../../../Users/tkral/Anaconda3/lib/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_TraceReturn(__pyx_r, 0); -+ __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:; - -- /* "../../../../Users/tkral/Anaconda3/lib/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_TraceDeclarations -+ __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); -+ __Pyx_TraceCall("PyArray_MultiIterNew3", __pyx_f[2], 741, 0, __PYX_ERR(2, 741, __pyx_L1_error)); - -- /* "../../../../Users/tkral/Anaconda3/lib/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__6, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)))); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- */ -- (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } - -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- /*else*/ { -- __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); -+ /* 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_TraceReturn(__pyx_r, 0); -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} - -- /* "../../../../Users/tkral/Anaconda3/lib/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:; - -- /* "../../../../Users/tkral/Anaconda3/lib/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; -+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_TraceDeclarations -+ __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); -+ __Pyx_TraceCall("PyArray_MultiIterNew4", __pyx_f[2], 744, 0, __PYX_ERR(2, 744, __pyx_L1_error)); - -- /* "../../../../Users/tkral/Anaconda3/lib/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":745 - * -- */ -- __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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_MultiIterNew4(a, b, c, d): -+ * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< - * -- * cdef int t -+ * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): - */ -- __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":296 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":744 -+ * return PyArray_MultiIterNew(3, a, b, c) - * -- * cdef int t -- * cdef char* f = NULL # <<<<<<<<<<<<<< -- * cdef dtype descr = PyArray_DESCR(self) -- * cdef int offset -- */ -- __pyx_v_f = NULL; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":297 -- * cdef int t -- * cdef char* f = NULL -- * cdef dtype descr = PyArray_DESCR(self) # <<<<<<<<<<<<<< -- * cdef int offset -+ * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< -+ * return PyArray_MultiIterNew(4, a, b, c, 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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":300 -- * cdef int offset -+ /* 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_TraceReturn(__pyx_r, 0); -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 -+ * return PyArray_MultiIterNew(4, a, b, c, d) - * -- * info.obj = self # <<<<<<<<<<<<<< -+ * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -+ * return PyArray_MultiIterNew(5, a, b, c, d, e) - * -- * 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -+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_TraceDeclarations -+ __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); -+ __Pyx_TraceCall("PyArray_MultiIterNew5", __pyx_f[2], 747, 0, __PYX_ERR(2, 747, __pyx_L1_error)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":303 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":748 - * -- * if not PyDataType_HASFIELDS(descr): -- * t = descr.type_num # <<<<<<<<<<<<<< -- * if ((descr.byteorder == c'>' and little_endian) or -- * (descr.byteorder == c'<' and not little_endian)): -+ * 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_4 = __pyx_v_descr->type_num; -- __pyx_v_t = __pyx_t_4; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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__7, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]) = '^'; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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'; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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_TraceReturn(Py_None, 0); -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/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_TraceDeclarations -- __Pyx_RefNannyDeclarations -- int __pyx_t_1; -- __Pyx_RefNannySetupContext("__releasebuffer__", 0); -- __Pyx_TraceCall("__releasebuffer__", __pyx_f[2], 337, 0, __PYX_ERR(2, 337, __pyx_L1_error)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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): -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 */ -- goto __pyx_L0; -- __pyx_L1_error:; -- __Pyx_WriteUnraisable("numpy.ndarray.__releasebuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); -- __pyx_L0:; -- __Pyx_TraceReturn(Py_None, 0); -- __Pyx_RefNannyFinishContext(); --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -- * 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_TraceDeclarations -- __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); -- __Pyx_TraceCall("PyArray_MultiIterNew1", __pyx_f[2], 821, 0, __PYX_ERR(2, 821, __pyx_L1_error)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":822 -- * -- * 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, 822, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -- * 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_TraceReturn(__pyx_r, 0); -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -- * 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_TraceDeclarations -- __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); -- __Pyx_TraceCall("PyArray_MultiIterNew2", __pyx_f[2], 824, 0, __PYX_ERR(2, 824, __pyx_L1_error)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":825 -- * -- * 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, 825, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -- * 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_TraceReturn(__pyx_r, 0); -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -- * 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_TraceDeclarations -- __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); -- __Pyx_TraceCall("PyArray_MultiIterNew3", __pyx_f[2], 827, 0, __PYX_ERR(2, 827, __pyx_L1_error)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":828 -- * -- * 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, 828, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -- * 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_TraceReturn(__pyx_r, 0); -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -- * 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_TraceDeclarations -- __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); -- __Pyx_TraceCall("PyArray_MultiIterNew4", __pyx_f[2], 830, 0, __PYX_ERR(2, 830, __pyx_L1_error)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":831 -- * -- * 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, 831, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -- * 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_TraceReturn(__pyx_r, 0); -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -- * 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_TraceDeclarations -- __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); -- __Pyx_TraceCall("PyArray_MultiIterNew5", __pyx_f[2], 833, 0, __PYX_ERR(2, 833, __pyx_L1_error)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":834 -- * -- * 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, 834, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -- * 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) -- * -- */ -- -- /* 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_TraceReturn(__pyx_r, 0); -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -- * 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_TraceDeclarations -- __Pyx_RefNannyDeclarations -- int __pyx_t_1; -- __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); -- __Pyx_TraceCall("PyDataType_SHAPE", __pyx_f[2], 836, 0, __PYX_ERR(2, 836, __pyx_L1_error)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -- * -- * 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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":838 -- * 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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -- * -- * cdef inline tuple PyDataType_SHAPE(dtype d): -- * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -- * return d.subarray.shape -- * else: -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":840 -- * 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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -- * 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_L1_error:; -- __Pyx_AddTraceback("numpy.PyDataType_SHAPE", __pyx_clineno, __pyx_lineno, __pyx_filename); -- __pyx_r = 0; -- __pyx_L0:; -- __Pyx_XGIVEREF(__pyx_r); -- __Pyx_TraceReturn(__pyx_r, 0); -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -- * -- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< -- * # Recursive utility function used in __getbuffer__ to get format -- * # string. The new location in the format string is returned. -- */ -- --static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) { -- PyArray_Descr *__pyx_v_child = 0; -- int __pyx_v_endian_detector; -- int __pyx_v_little_endian; -- PyObject *__pyx_v_fields = 0; -- PyObject *__pyx_v_childname = NULL; -- PyObject *__pyx_v_new_offset = NULL; -- PyObject *__pyx_v_t = NULL; -- char *__pyx_r; -- __Pyx_TraceDeclarations -- __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- Py_ssize_t __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- PyObject *__pyx_t_4 = NULL; -- int __pyx_t_5; -- int __pyx_t_6; -- int __pyx_t_7; -- long __pyx_t_8; -- char *__pyx_t_9; -- __Pyx_RefNannySetupContext("_util_dtypestring", 0); -- __Pyx_TraceCall("_util_dtypestring", __pyx_f[2], 842, 0, __PYX_ERR(2, 842, __pyx_L1_error)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":848 -- * 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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- if (unlikely(__pyx_v_descr->names == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -- __PYX_ERR(2, 851, __pyx_L1_error) -- } -- __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; -- for (;;) { -- if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; -- #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, 851, __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, 851, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- #endif -- __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":852 -- * -- * for childname in descr.names: -- * fields = descr.fields[childname] # <<<<<<<<<<<<<< -- * child, new_offset = fields -- * -- */ -- if (unlikely(__pyx_v_descr->fields == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -- __PYX_ERR(2, 852, __pyx_L1_error) -- } -- __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":853 -- * 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, 853, __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, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- #endif -- } else { -- __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 853, __pyx_L1_error) -- } -- if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3)); -- __pyx_t_3 = 0; -- __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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__8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 856, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0); -- if (!__pyx_t_7) { -- goto __pyx_L8_next_or; -- } else { -- } -- __pyx_t_7 = (__pyx_v_little_endian != 0); -- if (!__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_L8_next_or:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":859 -- * -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< -- * raise ValueError(u"Non-native byte order not supported") -- * # One could encode it in the format string and have Cython -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0); -- if (__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0); -- __pyx_t_6 = __pyx_t_7; -- __pyx_L7_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":860 -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * # One could encode it in the format string and have Cython -- * # complain instead, BUT: < and > in format strings also imply -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 860, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 860, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":870 -- * -- * # Output padding bytes -- * while offset[0] < new_offset: # <<<<<<<<<<<<<< -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- */ -- while (1) { -- __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (!__pyx_t_6) break; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":871 -- * # Output padding bytes -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< -- * f += 1 -- * offset[0] += 1 -- */ -- (__pyx_v_f[0]) = 0x78; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":872 -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte -- * f += 1 # <<<<<<<<<<<<<< -- * offset[0] += 1 -- * -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":873 -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- * offset[0] += 1 # <<<<<<<<<<<<<< -- * -- * offset[0] += child.itemsize -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":875 -- * offset[0] += 1 -- * -- * offset[0] += child.itemsize # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(child): -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); -- if (__pyx_t_6) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":878 -- * -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num # <<<<<<<<<<<<<< -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") -- */ -- __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 878, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 880, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":883 -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 98; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":884 -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":885 -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x68; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":886 -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 72; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":887 -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x69; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":888 -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 73; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":889 -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x6C; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":890 -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 76; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":891 -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x71; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":892 -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 81; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":893 -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":894 -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x64; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":895 -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x67; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":896 -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x66; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":897 -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x64; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":898 -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x67; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":899 -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (likely(__pyx_t_6)) { -- (__pyx_v_f[0]) = 79; -- goto __pyx_L15; -- } -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 -+ * 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) -+ * -+ */ - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":901 -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< -- * f += 1 -- * else: -- */ -- /*else*/ { -- __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 901, __pyx_L1_error) -- } -- __pyx_L15:; -+ /* 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_TraceReturn(__pyx_r, 0); -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":902 -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- * f += 1 # <<<<<<<<<<<<<< -- * else: -- * # Cython ignores struct boundary information ("T{...}"), -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 -+ * return PyArray_MultiIterNew(5, a, b, c, d, e) -+ * -+ * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -+ * if PyDataType_HASSUBARRAY(d): -+ * return d.subarray.shape - */ -- __pyx_v_f = (__pyx_v_f + 1); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -+static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) { -+ PyObject *__pyx_r = NULL; -+ __Pyx_TraceDeclarations -+ __Pyx_RefNannyDeclarations -+ int __pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; -+ __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); -+ __Pyx_TraceCall("PyDataType_SHAPE", __pyx_f[2], 750, 0, __PYX_ERR(2, 750, __pyx_L1_error)); -+ -+ /* "../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) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":906 -- * # Cython ignores struct boundary information ("T{...}"), -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< -- * return f -- * -+ /* "../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, 906, __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * 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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":907 -- * # 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; -+ } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * 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_AddTraceback("numpy.PyDataType_SHAPE", __pyx_clineno, __pyx_lineno, __pyx_filename); -+ __pyx_r = 0; - __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_TraceReturn(Py_None, 0); -+ __Pyx_XGIVEREF(__pyx_r); -+ __Pyx_TraceReturn(__pyx_r, 0); - __Pyx_RefNannyFinishContext(); - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -+/* "../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): # <<<<<<<<<<<<<< -@@ -5364,10 +3851,13 @@ static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx - static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("set_array_base", 0); -- __Pyx_TraceCall("set_array_base", __pyx_f[2], 1022, 0, __PYX_ERR(2, 1022, __pyx_L1_error)); -+ __Pyx_TraceCall("set_array_base", __pyx_f[2], 929, 0, __PYX_ERR(2, 929, __pyx_L1_error)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1023 -+ /* "../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! # <<<<<<<<<<<<<< -@@ -5376,7 +3866,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - Py_INCREF(__pyx_v_base); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1024 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -5385,7 +3875,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -5402,7 +3892,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyFinishContext(); - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+/* "../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): # <<<<<<<<<<<<<< -@@ -5416,10 +3906,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __Pyx_TraceDeclarations - __Pyx_RefNannyDeclarations - int __pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("get_array_base", 0); -- __Pyx_TraceCall("get_array_base", __pyx_f[2], 1026, 0, __PYX_ERR(2, 1026, __pyx_L1_error)); -+ __Pyx_TraceCall("get_array_base", __pyx_f[2], 933, 0, __PYX_ERR(2, 933, __pyx_L1_error)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1027 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -5428,7 +3921,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - __pyx_v_base = PyArray_BASE(__pyx_v_arr); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -5438,7 +3931,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) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1029 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":936 - * base = PyArray_BASE(arr) - * if base is NULL: - * return None # <<<<<<<<<<<<<< -@@ -5449,7 +3942,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -5458,7 +3951,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1030 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":937 - * if base is NULL: - * return None - * return base # <<<<<<<<<<<<<< -@@ -5470,7 +3963,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = ((PyObject *)__pyx_v_base); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -5489,12 +3982,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { -@@ -5509,14 +4002,17 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_array", 0); -- __Pyx_TraceCall("import_array", __pyx_f[2], 1034, 0, __PYX_ERR(2, 1034, __pyx_L1_error)); -+ __Pyx_TraceCall("import_array", __pyx_f[2], 941, 0, __PYX_ERR(2, 941, __pyx_L1_error)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - { -@@ -5528,20 +4024,20 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1036 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":943 - * cdef inline int import_array() except -1: - * try: -- * _import_array() # <<<<<<<<<<<<<< -+ * __pyx_import_array() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") - */ -- __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1036, __pyx_L3_error) -+ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 943, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - } -@@ -5551,9 +4047,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1037 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":944 - * try: -- * _import_array() -+ * __pyx_import_array() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.multiarray failed to import") - * -@@ -5561,32 +4057,32 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1037, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 944, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 945, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __PYX_ERR(2, 945, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - __Pyx_XGIVEREF(__pyx_t_1); -@@ -5597,12 +4093,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - /* function exit code */ -@@ -5621,7 +4117,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -5641,10 +4137,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_umath", 0); -- __Pyx_TraceCall("import_umath", __pyx_f[2], 1040, 0, __PYX_ERR(2, 1040, __pyx_L1_error)); -+ __Pyx_TraceCall("import_umath", __pyx_f[2], 947, 0, __PYX_ERR(2, 947, __pyx_L1_error)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5660,16 +4159,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1042 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":949 - * cdef inline int import_umath() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1042, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 949, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5683,7 +4182,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1043 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":950 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< -@@ -5693,28 +4192,28 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1043, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 950, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 951, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __PYX_ERR(2, 951, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5729,7 +4228,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -5753,7 +4252,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -5773,10 +4272,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_ufunc", 0); -- __Pyx_TraceCall("import_ufunc", __pyx_f[2], 1046, 0, __PYX_ERR(2, 1046, __pyx_L1_error)); -+ __Pyx_TraceCall("import_ufunc", __pyx_f[2], 953, 0, __PYX_ERR(2, 953, __pyx_L1_error)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5792,16 +4294,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1048 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":955 - * cdef inline int import_ufunc() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1048, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 955, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5815,35 +4317,38 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1049 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":956 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.umath failed to import") -+ * - */ - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1049, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 956, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1050 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":957 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< -+ * -+ * cdef extern from *: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 957, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __PYX_ERR(2, 957, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5858,7 +4363,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -5881,6 +4386,225 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_RefNannyFinishContext(); - return __pyx_r; - } -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_TraceDeclarations -+ __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; -+ __Pyx_RefNannySetupContext("is_timedelta64_object", 0); -+ __Pyx_TraceCall("is_timedelta64_object", __pyx_f[2], 967, 0, __PYX_ERR(2, 967, __pyx_L1_error)); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":979 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L1_error:; -+ __Pyx_WriteUnraisable("numpy.is_timedelta64_object", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); -+ __pyx_r = 0; -+ __pyx_L0:; -+ __Pyx_TraceReturn(Py_None, 0); -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_TraceDeclarations -+ __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; -+ __Pyx_RefNannySetupContext("is_datetime64_object", 0); -+ __Pyx_TraceCall("is_datetime64_object", __pyx_f[2], 982, 0, __PYX_ERR(2, 982, __pyx_L1_error)); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":994 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L1_error:; -+ __Pyx_WriteUnraisable("numpy.is_datetime64_object", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); -+ __pyx_r = 0; -+ __pyx_L0:; -+ __Pyx_TraceReturn(Py_None, 0); -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { -+ npy_datetime __pyx_r; -+ __Pyx_TraceDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; -+ __Pyx_TraceCall("get_datetime64_value", __pyx_f[2], 997, 1, __PYX_ERR(2, 997, __pyx_L1_error)); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1004 -+ * also needed. That can be found using `get_datetime64_unit`. -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L1_error:; -+ __Pyx_WriteUnraisable("numpy.get_datetime64_value", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1); -+ __pyx_r = 0; -+ __pyx_L0:; -+ __Pyx_TraceReturn(Py_None, 1); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { -+ npy_timedelta __pyx_r; -+ __Pyx_TraceDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; -+ __Pyx_TraceCall("get_timedelta64_value", __pyx_f[2], 1007, 1, __PYX_ERR(2, 1007, __pyx_L1_error)); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1011 -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L1_error:; -+ __Pyx_WriteUnraisable("numpy.get_timedelta64_value", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1); -+ __pyx_r = 0; -+ __pyx_L0:; -+ __Pyx_TraceReturn(Py_None, 1); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { -+ NPY_DATETIMEUNIT __pyx_r; -+ __Pyx_TraceDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; -+ __Pyx_TraceCall("get_datetime64_unit", __pyx_f[2], 1014, 1, __PYX_ERR(2, 1014, __pyx_L1_error)); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1018 -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ * """ -+ * return (obj).obmeta.base # <<<<<<<<<<<<<< -+ */ -+ __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+ /* function exit code */ -+ __pyx_L1_error:; -+ __Pyx_WriteUnraisable("numpy.get_datetime64_unit", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1); -+ __pyx_r = (NPY_DATETIMEUNIT) 0; -+ __pyx_L0:; -+ __Pyx_TraceReturn(Py_None, 1); -+ return __pyx_r; -+} - static struct __pyx_vtabstruct_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase __pyx_vtable_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase; - - static PyObject *__pyx_tp_new_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { -@@ -5909,9 +4633,9 @@ static void __pyx_tp_dealloc_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalC - { - PyObject *etype, *eval, *etb; - PyErr_Fetch(&etype, &eval, &etb); -- ++Py_REFCNT(o); -+ __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1); - __pyx_pw_4cylp_2cy_26CyClpPrimalColumnPivotBase_26CyClpPrimalColumnPivotBase_3__dealloc__(o); -- --Py_REFCNT(o); -+ __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1); - PyErr_Restore(etype, eval, etb); - } - Py_CLEAR(p->cyModel); -@@ -5962,7 +4686,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrima - sizeof(struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -6015,6 +4744,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrima - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyMethodDef __pyx_methods[] = { -@@ -6066,23 +4801,15 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_CyClpPrimalColumnPivotBase, __pyx_k_CyClpPrimalColumnPivotBase, sizeof(__pyx_k_CyClpPrimalColumnPivotBase), 0, 0, 1, 1}, - {&__pyx_kp_s_CyClpPrimalColumnPivotBase_pyx_p, __pyx_k_CyClpPrimalColumnPivotBase_pyx_p, sizeof(__pyx_k_CyClpPrimalColumnPivotBase_pyx_p), 0, 0, 1, 0}, - {&__pyx_kp_s_CyClpPrimalColumnPivotBase_pyx_s, __pyx_k_CyClpPrimalColumnPivotBase_pyx_s, sizeof(__pyx_k_CyClpPrimalColumnPivotBase_pyx_s), 0, 0, 1, 0}, -- {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, -- {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, - {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, -- {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, -- {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, -- {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, - {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, -- {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, -- {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, - {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0}, - {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0}, - {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, -- {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, -@@ -6090,15 +4817,11 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, - {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, -- {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, - {0, 0, 0, 0, 0, 0, 0} - }; - static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 2, __pyx_L1_error) -- __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(2, 272, __pyx_L1_error) -- __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(2, 285, __pyx_L1_error) -- __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(2, 856, __pyx_L1_error) -- __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 1038, __pyx_L1_error) -+ __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 945, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -@@ -6130,101 +4853,46 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_GOTREF(__pyx_tuple__2); - __Pyx_GIVEREF(__pyx_tuple__2); - -- /* "(tree fragment)":2 -- * def __reduce_cython__(self): -- * raise TypeError("self.CppSelf cannot be converted to a Python object for pickling") # <<<<<<<<<<<<<< -- * def __setstate_cython__(self, __pyx_state): -- * raise TypeError("self.CppSelf cannot be converted to a Python object for pickling") -- */ -- __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_self_CppSelf_cannot_be_converted); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 2, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__3); -- __Pyx_GIVEREF(__pyx_tuple__3); -- -- /* "(tree fragment)":4 -- * raise TypeError("self.CppSelf cannot be converted to a Python object for pickling") -- * def __setstate_cython__(self, __pyx_state): -- * raise TypeError("self.CppSelf cannot be converted to a Python object for pickling") # <<<<<<<<<<<<<< -- */ -- __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_self_CppSelf_cannot_be_converted); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 4, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__4); -- __Pyx_GIVEREF(__pyx_tuple__4); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":272 -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(2, 272, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__5); -- __Pyx_GIVEREF(__pyx_tuple__5); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":276 -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(2, 276, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__6); -- __Pyx_GIVEREF(__pyx_tuple__6); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":306 -- * if ((descr.byteorder == c'>' and little_endian) or -- * (descr.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * if t == NPY_BYTE: f = "b" -- * elif t == NPY_UBYTE: f = "B" -- */ -- __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(2, 306, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__7); -- __Pyx_GIVEREF(__pyx_tuple__7); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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 -+ /* "(tree fragment)":2 -+ * def __reduce_cython__(self): -+ * raise TypeError("self.CppSelf cannot be converted to a Python object for pickling") # <<<<<<<<<<<<<< -+ * def __setstate_cython__(self, __pyx_state): -+ * raise TypeError("self.CppSelf cannot be converted to a Python object for pickling") - */ -- __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__8); -- __Pyx_GIVEREF(__pyx_tuple__8); -+ __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_self_CppSelf_cannot_be_converted); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 2, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__3); -+ __Pyx_GIVEREF(__pyx_tuple__3); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -+ /* "(tree fragment)":4 -+ * raise TypeError("self.CppSelf cannot be converted to a Python object for pickling") -+ * def __setstate_cython__(self, __pyx_state): -+ * raise TypeError("self.CppSelf cannot be converted to a Python object for pickling") # <<<<<<<<<<<<<< - */ -- __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__9); -- __Pyx_GIVEREF(__pyx_tuple__9); -+ __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_self_CppSelf_cannot_be_converted); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 4, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__4); -+ __Pyx_GIVEREF(__pyx_tuple__4); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(2, 1038, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__10); -- __Pyx_GIVEREF(__pyx_tuple__10); -+ __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(2, 945, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__5); -+ __Pyx_GIVEREF(__pyx_tuple__5); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(2, 1044, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__11); -- __Pyx_GIVEREF(__pyx_tuple__11); -+ __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(2, 951, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__6); -+ __Pyx_GIVEREF(__pyx_tuple__6); - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; -@@ -6265,6 +4933,9 @@ static int __Pyx_modinit_variable_export_code(void) { - - static int __Pyx_modinit_function_export_code(void) { - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); - /*--- Function export code ---*/ - if (__Pyx_ExportFunction("RunPivotColumn", (void (*)(void))__pyx_f_4cylp_2cy_26CyClpPrimalColumnPivotBase_RunPivotColumn, "int (void *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error) -@@ -6279,6 +4950,9 @@ static int __Pyx_modinit_function_export_code(void) { - - static int __Pyx_modinit_type_init_code(void) { - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ - __pyx_vtabptr_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase = &__pyx_vtable_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase; -@@ -6309,6 +4983,9 @@ static int __Pyx_modinit_type_init_code(void) { - static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error) -@@ -6338,18 +5015,38 @@ static int __Pyx_modinit_type_import_code(void) { - if (!__pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector) __PYX_ERR(6, 22, __pyx_L1_error) - __pyx_vtabptr_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector = (struct __pyx_vtabstruct_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector*)__Pyx_GetVtable(__pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector->tp_dict); if (unlikely(!__pyx_vtabptr_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector)) __PYX_ERR(6, 22, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 206, __pyx_L1_error) -+ __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 206, __pyx_L1_error) -- __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 229, __pyx_L1_error) -- __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 233, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 200, __pyx_L1_error) -+ __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 223, __pyx_L1_error) -+ __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 227, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 242, __pyx_L1_error) -- __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 918, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 239, __pyx_L1_error) -+ __pyx_ptype_5numpy_generic = __Pyx_ImportType(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 771, __pyx_L1_error) -+ __pyx_ptype_5numpy_number = __Pyx_ImportType(__pyx_t_1, "numpy", "number", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 773, __pyx_L1_error) -+ __pyx_ptype_5numpy_integer = __Pyx_ImportType(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 775, __pyx_L1_error) -+ __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 777, __pyx_L1_error) -+ __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 779, __pyx_L1_error) -+ __pyx_ptype_5numpy_inexact = __Pyx_ImportType(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 781, __pyx_L1_error) -+ __pyx_ptype_5numpy_floating = __Pyx_ImportType(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 783, __pyx_L1_error) -+ __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 785, __pyx_L1_error) -+ __pyx_ptype_5numpy_flexible = __Pyx_ImportType(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 787, __pyx_L1_error) -+ __pyx_ptype_5numpy_character = __Pyx_ImportType(__pyx_t_1, "numpy", "character", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 789, __pyx_L1_error) -+ __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 827, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyClpDualRowPivotBase"); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 72, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); -@@ -6458,17 +5155,19 @@ static int __Pyx_modinit_function_import_code(void) { - } - - --#if PY_MAJOR_VERSION < 3 --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC void --#else -+#ifndef CYTHON_NO_PYINIT_EXPORT - #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#elif PY_MAJOR_VERSION < 3 -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" void -+#else -+#define __Pyx_PyMODINIT_FUNC void - #endif - #else --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC PyObject * -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * - #else --#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#define __Pyx_PyMODINIT_FUNC PyObject * - #endif - #endif - -@@ -6551,6 +5250,9 @@ static CYTHON_SMALL_CODE int __pyx_pymod_exec_CyClpPrimalColumnPivotBase(PyObjec - { - __Pyx_TraceDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { -@@ -6598,11 +5300,9 @@ if (!__Pyx_RefNanny) { - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ -- #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS -- #ifdef WITH_THREAD /* Python build with threading support? */ -+ #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - PyEval_InitThreads(); - #endif -- #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; -@@ -6639,15 +5339,15 @@ if (!__Pyx_RefNanny) { - } - #endif - /*--- Builtin init code ---*/ -- if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Constants init code ---*/ -- if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(); - (void)__Pyx_modinit_variable_export_code(); -- if (unlikely(__Pyx_modinit_function_export_code() != 0)) goto __pyx_L1_error; -- if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; -- if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; -+ if (unlikely(__Pyx_modinit_function_export_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) -+ if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) -+ if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) - (void)__Pyx_modinit_variable_import_code(); - (void)__Pyx_modinit_function_import_code(); - /*--- Execution code ---*/ -@@ -6666,12 +5366,12 @@ if (!__Pyx_RefNanny) { - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -- * raise ImportError("numpy.core.umath failed to import") -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -- * try: -- * _import_umath() -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ - __Pyx_TraceReturn(Py_None, 0); - -@@ -6800,10 +5500,9 @@ static int __Pyx_TraceSetupAndCall(PyCodeObject** code, - (*frame)->f_tstate = tstate; - #endif - } -- __Pyx_PyFrame_SetLineNumber(*frame, firstlineno); -+ __Pyx_PyFrame_SetLineNumber(*frame, firstlineno); - retval = 1; -- tstate->tracing++; -- tstate->use_tracing = 0; -+ __Pyx_EnterTracing(tstate); - __Pyx_ErrFetchInState(tstate, &type, &value, &traceback); - #if CYTHON_TRACE - if (tstate->c_tracefunc) -@@ -6811,12 +5510,10 @@ static int __Pyx_TraceSetupAndCall(PyCodeObject** code, - if (retval && tstate->c_profilefunc) - #endif - retval = tstate->c_profilefunc(tstate->c_profileobj, *frame, PyTrace_CALL, NULL) == 0; -- tstate->use_tracing = (tstate->c_profilefunc || -- (CYTHON_TRACE && tstate->c_tracefunc)); -- tstate->tracing--; -+ __Pyx_LeaveTracing(tstate); - if (retval) { - __Pyx_ErrRestoreInState(tstate, type, value, traceback); -- return tstate->use_tracing && retval; -+ return __Pyx_IsTracing(tstate, 0, 0) && retval; - } else { - Py_XDECREF(type); - Py_XDECREF(value); -@@ -6974,7 +5671,7 @@ static int __Pyx_CheckKeywordStrings( - #if CYTHON_COMPILING_IN_CPYTHON - static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; -- ternaryfunc call = func->ob_type->tp_call; -+ ternaryfunc call = Py_TYPE(func)->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -@@ -7149,263 +5846,6 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject - } - #endif - --/* PyCFunctionFastCall */ --#if CYTHON_FAST_PYCCALL --static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { -- PyCFunctionObject *func = (PyCFunctionObject*)func_obj; -- PyCFunction meth = PyCFunction_GET_FUNCTION(func); -- PyObject *self = PyCFunction_GET_SELF(func); -- int flags = PyCFunction_GET_FLAGS(func); -- assert(PyCFunction_Check(func)); -- assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); -- assert(nargs >= 0); -- assert(nargs == 0 || args != NULL); -- /* _PyCFunction_FastCallDict() must not be called with an exception set, -- because it may clear it (directly or indirectly) and so the -- caller loses its exception */ -- assert(!PyErr_Occurred()); -- if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { -- return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); -- } else { -- return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); -- } --} --#endif -- --/* PyFunctionFastCall */ --#if CYTHON_FAST_PYCALL --static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, -- PyObject *globals) { -- PyFrameObject *f; -- PyThreadState *tstate = __Pyx_PyThreadState_Current; -- PyObject **fastlocals; -- Py_ssize_t i; -- PyObject *result; -- assert(globals != NULL); -- /* XXX Perhaps we should create a specialized -- PyFrame_New() that doesn't take locals, but does -- take builtins without sanity checking them. -- */ -- assert(tstate != NULL); -- f = PyFrame_New(tstate, co, globals, NULL); -- if (f == NULL) { -- return NULL; -- } -- fastlocals = __Pyx_PyFrame_GetLocalsplus(f); -- for (i = 0; i < na; i++) { -- Py_INCREF(*args); -- fastlocals[i] = *args++; -- } -- result = PyEval_EvalFrameEx(f,0); -- ++tstate->recursion_depth; -- Py_DECREF(f); -- --tstate->recursion_depth; -- return result; --} --#if 1 || PY_VERSION_HEX < 0x030600B1 --static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { -- PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); -- PyObject *globals = PyFunction_GET_GLOBALS(func); -- PyObject *argdefs = PyFunction_GET_DEFAULTS(func); -- PyObject *closure; --#if PY_MAJOR_VERSION >= 3 -- PyObject *kwdefs; --#endif -- PyObject *kwtuple, **k; -- PyObject **d; -- Py_ssize_t nd; -- Py_ssize_t nk; -- PyObject *result; -- assert(kwargs == NULL || PyDict_Check(kwargs)); -- nk = kwargs ? PyDict_Size(kwargs) : 0; -- if (Py_EnterRecursiveCall((char*)" while calling a Python object")) { -- return NULL; -- } -- if ( --#if PY_MAJOR_VERSION >= 3 -- co->co_kwonlyargcount == 0 && --#endif -- likely(kwargs == NULL || nk == 0) && -- co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { -- if (argdefs == NULL && co->co_argcount == nargs) { -- result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); -- goto done; -- } -- else if (nargs == 0 && argdefs != NULL -- && co->co_argcount == Py_SIZE(argdefs)) { -- /* function called with no arguments, but all parameters have -- a default value: use default values as arguments .*/ -- args = &PyTuple_GET_ITEM(argdefs, 0); -- result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); -- goto done; -- } -- } -- if (kwargs != NULL) { -- Py_ssize_t pos, i; -- kwtuple = PyTuple_New(2 * nk); -- if (kwtuple == NULL) { -- result = NULL; -- goto done; -- } -- k = &PyTuple_GET_ITEM(kwtuple, 0); -- pos = i = 0; -- while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { -- Py_INCREF(k[i]); -- Py_INCREF(k[i+1]); -- i += 2; -- } -- nk = i / 2; -- } -- else { -- kwtuple = NULL; -- k = NULL; -- } -- closure = PyFunction_GET_CLOSURE(func); --#if PY_MAJOR_VERSION >= 3 -- kwdefs = PyFunction_GET_KW_DEFAULTS(func); --#endif -- if (argdefs != NULL) { -- d = &PyTuple_GET_ITEM(argdefs, 0); -- nd = Py_SIZE(argdefs); -- } -- else { -- d = NULL; -- nd = 0; -- } --#if PY_MAJOR_VERSION >= 3 -- result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, -- args, (int)nargs, -- k, (int)nk, -- d, (int)nd, kwdefs, closure); --#else -- result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, -- args, (int)nargs, -- k, (int)nk, -- d, (int)nd, closure); --#endif -- Py_XDECREF(kwtuple); --done: -- Py_LeaveRecursiveCall(); -- return result; --} --#endif --#endif -- --/* PyObjectCallMethO */ --#if CYTHON_COMPILING_IN_CPYTHON --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { -- PyObject *self, *result; -- PyCFunction cfunc; -- cfunc = PyCFunction_GET_FUNCTION(func); -- self = PyCFunction_GET_SELF(func); -- if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -- return NULL; -- result = cfunc(self, arg); -- Py_LeaveRecursiveCall(); -- if (unlikely(!result) && unlikely(!PyErr_Occurred())) { -- PyErr_SetString( -- PyExc_SystemError, -- "NULL result without error in PyObject_Call"); -- } -- return result; --} --#endif -- --/* PyObjectCallOneArg */ --#if CYTHON_COMPILING_IN_CPYTHON --static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { -- PyObject *result; -- PyObject *args = PyTuple_New(1); -- if (unlikely(!args)) return NULL; -- Py_INCREF(arg); -- PyTuple_SET_ITEM(args, 0, arg); -- result = __Pyx_PyObject_Call(func, args, NULL); -- Py_DECREF(args); -- return result; --} --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { --#if CYTHON_FAST_PYCALL -- if (PyFunction_Check(func)) { -- return __Pyx_PyFunction_FastCall(func, &arg, 1); -- } --#endif -- if (likely(PyCFunction_Check(func))) { -- if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { -- return __Pyx_PyObject_CallMethO(func, arg); --#if CYTHON_FAST_PYCCALL -- } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { -- return __Pyx_PyCFunction_FastCall(func, &arg, 1); --#endif -- } -- } -- return __Pyx__PyObject_CallOneArg(func, arg); --} --#else --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { -- PyObject *result; -- PyObject *args = PyTuple_Pack(1, arg); -- if (unlikely(!args)) return NULL; -- result = __Pyx_PyObject_Call(func, args, NULL); -- Py_DECREF(args); -- return result; --} --#endif -- --/* DictGetItem */ --#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY --static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { -- PyObject *value; -- value = PyDict_GetItemWithError(d, key); -- if (unlikely(!value)) { -- if (!PyErr_Occurred()) { -- if (unlikely(PyTuple_Check(key))) { -- PyObject* args = PyTuple_Pack(1, key); -- if (likely(args)) { -- PyErr_SetObject(PyExc_KeyError, args); -- Py_DECREF(args); -- } -- } else { -- PyErr_SetObject(PyExc_KeyError, key); -- } -- } -- return NULL; -- } -- Py_INCREF(value); -- return value; --} --#endif -- --/* RaiseTooManyValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { -- PyErr_Format(PyExc_ValueError, -- "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); --} -- --/* RaiseNeedMoreValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { -- PyErr_Format(PyExc_ValueError, -- "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", -- index, (index == 1) ? "" : "s"); --} -- --/* RaiseNoneIterError */ --static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); --} -- --/* ExtTypeTest */ --static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { -- if (unlikely(!type)) { -- PyErr_SetString(PyExc_SystemError, "Missing type object"); -- return 0; -- } -- if (likely(__Pyx_TypeCheck(obj, type))) -- return 1; -- PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", -- Py_TYPE(obj)->tp_name, type->tp_name); -- return 0; --} -- - /* GetTopmostException */ - #if CYTHON_USE_EXC_INFO_STACK - static _PyErr_StackItem * -@@ -7629,6 +6069,28 @@ static int __Pyx_SetVtable(PyObject *dict, void *vtable) { - return -1; - } - -+/* PyObjectGetAttrStrNoError */ -+static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { -+ __Pyx_PyThreadState_declare -+ __Pyx_PyThreadState_assign -+ if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) -+ __Pyx_PyErr_Clear(); -+} -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { -+ PyObject *result; -+#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 -+ PyTypeObject* tp = Py_TYPE(obj); -+ if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { -+ return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); -+ } -+#endif -+ result = __Pyx_PyObject_GetAttrStr(obj, attr_name); -+ if (unlikely(!result)) { -+ __Pyx_PyObject_GetAttrStr_ClearAttributeError(); -+ } -+ return result; -+} -+ - /* SetupReduce */ - static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { - int ret; -@@ -7656,43 +6118,51 @@ static int __Pyx_setup_reduce(PyObject* type_obj) { - PyObject *setstate = NULL; - PyObject *setstate_cython = NULL; - #if CYTHON_USE_PYTYPE_LOOKUP -- if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #else -- if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #endif - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #else -- object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #endif -- reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; -+ reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; - if (reduce_ex == object_reduce_ex) { - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #else -- object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #endif -- reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; -+ reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; - if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { -- reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; -+ reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); -+ if (likely(reduce_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (reduce == object_reduce || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); - if (!setstate) PyErr_Clear(); - if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { -- setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; -+ setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); -+ if (likely(setstate_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (!setstate || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - } - PyType_Modified((PyTypeObject*)type_obj); - } - } -- goto GOOD; --BAD: -+ goto __PYX_GOOD; -+__PYX_BAD: - if (!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); - ret = -1; --GOOD: -+__PYX_GOOD: - #if !CYTHON_USE_PYTYPE_LOOKUP - Py_XDECREF(object_reduce); - Py_XDECREF(object_reduce_ex); -@@ -7814,7 +6284,7 @@ static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UIN - - /* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK --static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { -+static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) { - PyObject *use_cline; - PyObject *ptype, *pvalue, *ptraceback; - #if CYTHON_COMPILING_IN_CPYTHON -@@ -7844,7 +6314,7 @@ static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { - } - if (!use_cline) { - c_line = 0; -- PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); -+ (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; -@@ -7918,7 +6388,7 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - if (__pyx_code_cache.count == __pyx_code_cache.max_count) { - int new_max = __pyx_code_cache.max_count + 64; - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( -- __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); -+ __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); - if (unlikely(!entries)) { - return; - } -@@ -7941,30 +6411,31 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { -- PyCodeObject *py_code = 0; -- PyObject *py_srcfile = 0; -- PyObject *py_funcname = 0; -+ PyCodeObject *py_code = NULL; -+ PyObject *py_funcname = NULL; - #if PY_MAJOR_VERSION < 3 -+ PyObject *py_srcfile = NULL; - py_srcfile = PyString_FromString(filename); -- #else -- py_srcfile = PyUnicode_FromString(filename); -- #endif - if (!py_srcfile) goto bad; -+ #endif - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; -+ funcname = PyUnicode_AsUTF8(py_funcname); -+ if (!funcname) goto bad; - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); -- #else -- py_funcname = PyUnicode_FromString(funcname); -+ if (!py_funcname) goto bad; - #endif - } -- if (!py_funcname) goto bad; -+ #if PY_MAJOR_VERSION < 3 - py_code = __Pyx_PyCode_New( - 0, - 0, -@@ -7983,11 +6454,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); -- Py_DECREF(py_funcname); -+ #else -+ py_code = PyCode_NewEmpty(filename, funcname, py_line); -+ #endif -+ Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline - return py_code; - bad: -- Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); -+ #if PY_MAJOR_VERSION < 3 -+ Py_XDECREF(py_srcfile); -+ #endif - return NULL; - } - static void __Pyx_AddTraceback(const char *funcname, int c_line, -@@ -8041,37 +6517,6 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - return (target_type) value;\ - } - --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(int) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(int) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(int) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(int), -- little, !is_unsigned); -- } --} -- - /* Declarations */ - #if CYTHON_CCOMPLEX - #ifdef __cplusplus -@@ -8189,7 +6634,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_float(a, a); - return __Pyx_c_prod_float(a, a); - case 3: - z = __Pyx_c_prod_float(a, a); -@@ -8344,7 +6788,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_double(a, a); - return __Pyx_c_prod_double(a, a); - case 3: - z = __Pyx_c_prod_double(a, a); -@@ -8382,40 +6825,16 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - #endif - #endif - --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { -- const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(enum NPY_TYPES) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(enum NPY_TYPES) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), -- little, !is_unsigned); -- } --} -- - /* CIntFromPy */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -8602,9 +7021,54 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - return (int) -1; - } - -+/* CIntToPy */ -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif -+ const int is_unsigned = neg_one > const_zero; -+ if (is_unsigned) { -+ if (sizeof(int) < sizeof(long)) { -+ return PyInt_FromLong((long) value); -+ } else if (sizeof(int) <= sizeof(unsigned long)) { -+ return PyLong_FromUnsignedLong((unsigned long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -+ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+#endif -+ } -+ } else { -+ if (sizeof(int) <= sizeof(long)) { -+ return PyInt_FromLong((long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -+ return PyLong_FromLongLong((PY_LONG_LONG) value); -+#endif -+ } -+ } -+ { -+ int one = 1; int little = (int)*(unsigned char *)&one; -+ unsigned char *bytes = (unsigned char *)&value; -+ return _PyLong_FromByteArray(bytes, sizeof(int), -+ little, !is_unsigned); -+ } -+} -+ - /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(long) < sizeof(long)) { -@@ -8635,7 +7099,14 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - - /* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -9223,6 +7694,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_DECREF(x); - return ival; - } -+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { -+ if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { -+ return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); -+#if PY_MAJOR_VERSION < 3 -+ } else if (likely(PyInt_CheckExact(o))) { -+ return PyInt_AS_LONG(o); -+#endif -+ } else { -+ Py_ssize_t ival; -+ PyObject *x; -+ x = PyNumber_Index(o); -+ if (!x) return -1; -+ ival = PyInt_AsLong(x); -+ Py_DECREF(x); -+ return ival; -+ } -+} - static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); - } -diff --git a/cylp/cy/CyClpSimplex.cpp b/cylp/cy/CyClpSimplex.cpp -index 8acc740..4a84cb1 100644 ---- a/cylp/cy/CyClpSimplex.cpp -+++ b/cylp/cy/CyClpSimplex.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)) -@@ -627,7 +698,13 @@ static CYTHON_INLINE float __PYX_NAN() { - #include "ClpFactorization.hpp" - #include "IClpPrimalColumnPivotBase.h" - #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 "ClpDualRowPivot.hpp" - #include "IClpDualRowPivotBase.h" - #include "CoinModel.hpp" -@@ -655,11 +732,11 @@ static CYTHON_INLINE float __PYX_NAN() { - #include "OsiSolverInterface.hpp" - #include "CbcCompareUser.hpp" - #include "ICbcModel.hpp" -+#include - #include "ios" - #include "new" - #include "stdexcept" - #include "typeinfo" --#include - #include - #include "IClpSimplex.hpp" - #include "ICoinMpsIO.hpp" -@@ -759,6 +836,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 -@@ -951,7 +1029,7 @@ typedef struct { - } __Pyx_BufFmt_Context; - - --/* "../../.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 # <<<<<<<<<<<<<< -@@ -960,7 +1038,7 @@ typedef struct { - */ - 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 # <<<<<<<<<<<<<< -@@ -969,7 +1047,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 # <<<<<<<<<<<<<< -@@ -978,7 +1056,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 # <<<<<<<<<<<<<< -@@ -987,7 +1065,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 # <<<<<<<<<<<<<< -@@ -996,7 +1074,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 # <<<<<<<<<<<<<< -@@ -1005,7 +1083,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 # <<<<<<<<<<<<<< -@@ -1014,7 +1092,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 # <<<<<<<<<<<<<< -@@ -1023,7 +1101,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 # <<<<<<<<<<<<<< -@@ -1032,7 +1110,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 # <<<<<<<<<<<<<< -@@ -1041,7 +1119,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 # <<<<<<<<<<<<<< -@@ -1050,7 +1128,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 # <<<<<<<<<<<<<< -@@ -1059,7 +1137,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 # <<<<<<<<<<<<<< -@@ -1068,7 +1146,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 # <<<<<<<<<<<<<< -@@ -1077,7 +1155,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 # <<<<<<<<<<<<<< -@@ -1086,7 +1164,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 # <<<<<<<<<<<<<< -@@ -1095,7 +1173,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 # <<<<<<<<<<<<<< -@@ -1104,7 +1182,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 # <<<<<<<<<<<<<< -@@ -1113,7 +1191,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 # <<<<<<<<<<<<<< -@@ -1122,7 +1200,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 # <<<<<<<<<<<<<< -@@ -1131,7 +1209,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 # <<<<<<<<<<<<<< -@@ -1198,7 +1276,7 @@ struct __pyx_obj_4cylp_2cy_11CyCoinMpsIO_CyCoinMpsIO; - struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex; - struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus; - --/* "../../.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 # <<<<<<<<<<<<<< -@@ -1207,7 +1285,7 @@ struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus; - */ - 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 # <<<<<<<<<<<<<< -@@ -1216,7 +1294,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 # <<<<<<<<<<<<<< -@@ -1225,7 +1303,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 # <<<<<<<<<<<<<< -@@ -2082,11 +2160,45 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - #define CYTHON_FRAME_DEL(frame) Py_CLEAR(frame) - #endif - #define __Pyx_TraceDeclarations\ -- static PyCodeObject *__pyx_frame_code = NULL;\ -- CYTHON_FRAME_MODIFIER PyFrameObject *__pyx_frame = NULL;\ -- int __Pyx_use_tracing = 0; -+ static PyCodeObject *__pyx_frame_code = NULL;\ -+ CYTHON_FRAME_MODIFIER PyFrameObject *__pyx_frame = NULL;\ -+ int __Pyx_use_tracing = 0; - #define __Pyx_TraceFrameInit(codeobj)\ -- if (codeobj) __pyx_frame_code = (PyCodeObject*) codeobj; -+ if (codeobj) __pyx_frame_code = (PyCodeObject*) codeobj; -+#if PY_VERSION_HEX >= 0x030b00a2 -+ #define __Pyx_IsTracing(tstate, check_tracing, check_funcs)\ -+ (unlikely((tstate)->cframe->use_tracing) &&\ -+ (!(check_tracing) || !(tstate)->tracing) &&\ -+ (!(check_funcs) || (tstate)->c_profilefunc || (CYTHON_TRACE && (tstate)->c_tracefunc))) -+ #define __Pyx_EnterTracing(tstate) PyThreadState_EnterTracing(tstate) -+ #define __Pyx_LeaveTracing(tstate) PyThreadState_LeaveTracing(tstate) -+#elif PY_VERSION_HEX >= 0x030a00b1 -+ #define __Pyx_IsTracing(tstate, check_tracing, check_funcs)\ -+ (unlikely((tstate)->cframe->use_tracing) &&\ -+ (!(check_tracing) || !(tstate)->tracing) &&\ -+ (!(check_funcs) || (tstate)->c_profilefunc || (CYTHON_TRACE && (tstate)->c_tracefunc))) -+ #define __Pyx_EnterTracing(tstate)\ -+ do { tstate->tracing++; tstate->cframe->use_tracing = 0; } while (0) -+ #define __Pyx_LeaveTracing(tstate)\ -+ do {\ -+ tstate->tracing--;\ -+ tstate->cframe->use_tracing = ((CYTHON_TRACE && tstate->c_tracefunc != NULL)\ -+ || tstate->c_profilefunc != NULL);\ -+ } while (0) -+#else -+ #define __Pyx_IsTracing(tstate, check_tracing, check_funcs)\ -+ (unlikely((tstate)->use_tracing) &&\ -+ (!(check_tracing) || !(tstate)->tracing) &&\ -+ (!(check_funcs) || (tstate)->c_profilefunc || (CYTHON_TRACE && (tstate)->c_tracefunc))) -+ #define __Pyx_EnterTracing(tstate)\ -+ do { tstate->tracing++; tstate->use_tracing = 0; } while (0) -+ #define __Pyx_LeaveTracing(tstate)\ -+ do {\ -+ tstate->tracing--;\ -+ tstate->use_tracing = ((CYTHON_TRACE && tstate->c_tracefunc != NULL)\ -+ || tstate->c_profilefunc != NULL);\ -+ } while (0) -+#endif - #ifdef WITH_THREAD - #define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error)\ - if (nogil) {\ -@@ -2094,8 +2206,7 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - PyThreadState *tstate;\ - PyGILState_STATE state = PyGILState_Ensure();\ - tstate = __Pyx_PyThreadState_Current;\ -- if (unlikely(tstate->use_tracing) && !tstate->tracing &&\ -- (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\ -+ if (__Pyx_IsTracing(tstate, 1, 1)) {\ - __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\ - }\ - PyGILState_Release(state);\ -@@ -2103,8 +2214,7 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - }\ - } else {\ - PyThreadState* tstate = PyThreadState_GET();\ -- if (unlikely(tstate->use_tracing) && !tstate->tracing &&\ -- (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\ -+ if (__Pyx_IsTracing(tstate, 1, 1)) {\ - __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\ - if (unlikely(__Pyx_use_tracing < 0)) goto_error;\ - }\ -@@ -2112,8 +2222,7 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - #else - #define __Pyx_TraceCall(funcname, srcfile, firstlineno, nogil, goto_error)\ - { PyThreadState* tstate = PyThreadState_GET();\ -- if (unlikely(tstate->use_tracing) && !tstate->tracing &&\ -- (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\ -+ if (__Pyx_IsTracing(tstate, 1, 1)) {\ - __Pyx_use_tracing = __Pyx_TraceSetupAndCall(&__pyx_frame_code, &__pyx_frame, tstate, funcname, srcfile, firstlineno);\ - if (unlikely(__Pyx_use_tracing < 0)) goto_error;\ - }\ -@@ -2122,10 +2231,8 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - #define __Pyx_TraceException()\ - if (likely(!__Pyx_use_tracing)); else {\ - PyThreadState* tstate = __Pyx_PyThreadState_Current;\ -- if (tstate->use_tracing &&\ -- (tstate->c_profilefunc || (CYTHON_TRACE && tstate->c_tracefunc))) {\ -- tstate->tracing++;\ -- tstate->use_tracing = 0;\ -+ if (__Pyx_IsTracing(tstate, 0, 1)) {\ -+ __Pyx_EnterTracing(tstate);\ - PyObject *exc_info = __Pyx_GetExceptionTuple(tstate);\ - if (exc_info) {\ - if (CYTHON_TRACE && tstate->c_tracefunc)\ -@@ -2135,22 +2242,19 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - tstate->c_profileobj, __pyx_frame, PyTrace_EXCEPTION, exc_info);\ - Py_DECREF(exc_info);\ - }\ -- tstate->use_tracing = 1;\ -- tstate->tracing--;\ -+ __Pyx_LeaveTracing(tstate);\ - }\ - } - static void __Pyx_call_return_trace_func(PyThreadState *tstate, PyFrameObject *frame, PyObject *result) { - PyObject *type, *value, *traceback; - __Pyx_ErrFetchInState(tstate, &type, &value, &traceback); -- tstate->tracing++; -- tstate->use_tracing = 0; -+ __Pyx_EnterTracing(tstate); - if (CYTHON_TRACE && tstate->c_tracefunc) - tstate->c_tracefunc(tstate->c_traceobj, frame, PyTrace_RETURN, result); - if (tstate->c_profilefunc) - tstate->c_profilefunc(tstate->c_profileobj, frame, PyTrace_RETURN, result); - CYTHON_FRAME_DEL(frame); -- tstate->use_tracing = 1; -- tstate->tracing--; -+ __Pyx_LeaveTracing(tstate); - __Pyx_ErrRestoreInState(tstate, type, value, traceback); - } - #ifdef WITH_THREAD -@@ -2161,14 +2265,14 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - PyThreadState *tstate;\ - PyGILState_STATE state = PyGILState_Ensure();\ - tstate = __Pyx_PyThreadState_Current;\ -- if (tstate->use_tracing) {\ -+ if (__Pyx_IsTracing(tstate, 0, 0)) {\ - __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\ - }\ - PyGILState_Release(state);\ - }\ - } else {\ - PyThreadState* tstate = __Pyx_PyThreadState_Current;\ -- if (tstate->use_tracing) {\ -+ if (__Pyx_IsTracing(tstate, 0, 0)) {\ - __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\ - }\ - }\ -@@ -2177,7 +2281,7 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - #define __Pyx_TraceReturn(result, nogil)\ - if (likely(!__Pyx_use_tracing)); else {\ - PyThreadState* tstate = __Pyx_PyThreadState_Current;\ -- if (tstate->use_tracing) {\ -+ if (__Pyx_IsTracing(tstate, 0, 0)) {\ - __Pyx_call_return_trace_func(tstate, __pyx_frame, (PyObject*)result);\ - }\ - } -@@ -2197,11 +2301,9 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - PyObject *type, *value, *traceback; - __Pyx_ErrFetchInState(tstate, &type, &value, &traceback); - __Pyx_PyFrame_SetLineNumber(frame, lineno); -- tstate->tracing++; -- tstate->use_tracing = 0; -+ __Pyx_EnterTracing(tstate); - ret = tstate->c_tracefunc(tstate->c_traceobj, frame, PyTrace_LINE, NULL); -- tstate->use_tracing = 1; -- tstate->tracing--; -+ __Pyx_LeaveTracing(tstate); - if (likely(!ret)) { - __Pyx_ErrRestoreInState(tstate, type, value, traceback); - } else { -@@ -2220,7 +2322,7 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - PyThreadState *tstate;\ - PyGILState_STATE state = PyGILState_Ensure();\ - tstate = __Pyx_PyThreadState_Current;\ -- if (unlikely(tstate->use_tracing && tstate->c_tracefunc && __pyx_frame->f_trace)) {\ -+ if (__Pyx_IsTracing(tstate, 0, 0) && tstate->c_tracefunc && __pyx_frame->f_trace) {\ - ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\ - }\ - PyGILState_Release(state);\ -@@ -2228,7 +2330,7 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - }\ - } else {\ - PyThreadState* tstate = __Pyx_PyThreadState_Current;\ -- if (unlikely(tstate->use_tracing && tstate->c_tracefunc && __pyx_frame->f_trace)) {\ -+ if (__Pyx_IsTracing(tstate, 0, 0) && tstate->c_tracefunc && __pyx_frame->f_trace) {\ - int ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\ - if (unlikely(ret)) goto_error;\ - }\ -@@ -2238,7 +2340,7 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - #define __Pyx_TraceLine(lineno, nogil, goto_error)\ - if (likely(!__Pyx_use_tracing)); else {\ - PyThreadState* tstate = __Pyx_PyThreadState_Current;\ -- if (unlikely(tstate->use_tracing && tstate->c_tracefunc && __pyx_frame->f_trace)) {\ -+ if (__Pyx_IsTracing(tstate, 0, 0) && tstate->c_tracefunc && __pyx_frame->f_trace) {\ - int ret = __Pyx_call_line_trace_func(tstate, __pyx_frame, lineno);\ - if (unlikely(ret)) goto_error;\ - }\ -@@ -2262,6 +2364,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()\ -@@ -2269,6 +2372,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 */ -@@ -2582,9 +2686,6 @@ static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject * - /* HasAttr.proto */ - static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *); - --/* RaiseNoneIterError.proto */ --static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); -- - /* PyObject_GenericGetAttrNoDict.proto */ - #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 - static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name); -@@ -2675,18 +2776,14 @@ typedef struct { - #endif - - -+/* GCCDiagnostics.proto */ -+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -+#define __Pyx_HAS_GCC_DIAGNOSTIC -+#endif -+ - /* None.proto */ - static CYTHON_INLINE long __Pyx_pow_long(long, long); - --/* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); -- --/* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); -- --/* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__IClpSimplex_3a__3a_Status(enum IClpSimplex::Status value); -- - /* RealImag.proto */ - #if CYTHON_CCOMPLEX - #ifdef __cplusplus -@@ -2785,18 +2882,24 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__IClpSimplex_3a__3a_Status( - #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_long(long value); -+ - /* CIntFromPy.proto */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); - -+/* CIntToPy.proto */ -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); -+ - /* CIntFromPy.proto */ - static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *); - -+/* CIntToPy.proto */ -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__IClpSimplex_3a__3a_Status(enum IClpSimplex::Status value); -+ - /* CIntFromPy.proto */ - static CYTHON_INLINE enum IClpSimplex::Status __Pyx_PyInt_As_enum__IClpSimplex_3a__3a_Status(PyObject *); - -@@ -2948,8 +3051,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*/ - static CYTHON_INLINE int __pyx_f_5numpy_import_array(void); /*proto*/ - - /* Module declarations from 'cylp.cy.CyClpDualRowPivotBase' */ -@@ -3031,8 +3143,6 @@ static PyObject *__pyx_builtin_xrange; - static PyObject *__pyx_builtin_range; - static PyObject *__pyx_builtin_print; - static PyObject *__pyx_builtin_open; --static PyObject *__pyx_builtin_ValueError; --static PyObject *__pyx_builtin_RuntimeError; - static const char __pyx_k_A[] = "A"; - static const char __pyx_k_B[] = "B"; - static const char __pyx_k_D[] = "D"; -@@ -3210,7 +3320,6 @@ static const char __pyx_k_pyx_state[] = "__pyx_state"; - static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; - static const char __pyx_k_rowStarts[] = "rowStarts"; - static const char __pyx_k_variables[] = "variables"; --static const char __pyx_k_ValueError[] = "ValueError"; - static const char __pyx_k_constIndex[] = "constIndex"; - static const char __pyx_k_coo_matrix[] = "coo_matrix"; - static const char __pyx_k_filterVars[] = "filterVars"; -@@ -3239,7 +3348,6 @@ static const char __pyx_k_setRowUpper[] = "setRowUpper"; - static const char __pyx_k_useRowNames[] = "useRowNames"; - static const char __pyx_k_CyClpSimplex[] = "CyClpSimplex"; - static const char __pyx_k_CyLPSolution[] = "CyLPSolution"; --static const char __pyx_k_RuntimeError[] = "RuntimeError"; - static const char __pyx_k_atLowerBound[] = "atLowerBound"; - static const char __pyx_k_atUpperBound[] = "atUpperBound"; - static const char __pyx_k_columnStarts[] = "columnStarts"; -@@ -3338,7 +3446,6 @@ static const char __pyx_k_unrecognised_extension_s[] = "unrecognised extension % - static const char __pyx_k_No_CyClpSimplex_cyLPModel[] = "No CyClpSimplex cyLPModel."; - static const char __pyx_k_cylp_py_modeling_CyLPModel[] = "cylp.py.modeling.CyLPModel"; - static const char __pyx_k_CyClpSimplex_dual_line_1577[] = "CyClpSimplex.dual (line 1577)"; --static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; - static const char __pyx_k_setColumnLowerFirstElements[] = "setColumnLowerFirstElements"; - static const char __pyx_k_setColumnUpperFirstElements[] = "setColumnUpperFirstElements"; - static const char __pyx_k_stopped_on_iterations_or_time[] = "stopped on iterations or time"; -@@ -3355,7 +3462,6 @@ static const char __pyx_k_To_remove_a_constraint_you_must[] = "To remove a const - static const char __pyx_k_dualPivotMethodObject_should_be[] = "dualPivotMethodObject should be of a class derived from DualPivotPythonBase"; - static const char __pyx_k_if_arg_is_an_integer_mark_varia[] = "\n if ``arg`` is an integer: mark variable index ``arg`` as integer.\n if ``arg`` is a :class:`CyLPVar` object: mark variable\n ``arg`` as integer. Here is an example of the latter:\n\n >>> import numpy as np\n >>> from cylp.cy import CyClpSimplex\n >>> from cylp.py.modeling.CyLPModel import CyLPModel, CyLPArray\n >>> model = CyLPModel()\n >>>\n >>> x = model.addVariable('x', 3)\n >>> y = model.addVariable('y', 2)\n >>>\n >>> A = np.matrix([[1., 2., 0],[1., 0, 1.]])\n >>> B = np.matrix([[1., 0, 0], [0, 0, 1.]])\n >>> D = np.matrix([[1., 2.],[0, 1]])\n >>> a = CyLPArray([5, 2.5])\n >>> b = CyLPArray([4.2, 3])\n >>> x_u= CyLPArray([2., 3.5])\n >>>\n >>> model += A*x <= a\n >>> model += 2 <= B * x + D * y <= b\n >>> model += y >= 0\n >>> model += 1.1 <= x[1:3] <= x_u\n >>>\n >>> c = CyLPArray([1., -2., 3.])\n >>> model.objective = c * x + 2 * y.sum()\n >>>\n >>>\n >>> s = CyClpSimplex(model)\n >>> s.setInteger(x[1:3])\n >>>\n >>> cbcModel = s.getCbcModel()\n >>> cbcModel.solve()\n 0\n >>> print(cbcModel.status)\n 'solution'\n >>>\n >>> sol_x = cbcModel.primalVariableSolution['x']\n >>> (abs(sol_x -\n ... np.array([0.5, 2, 2]) ) <= 10**-6).all()\n True\n >>> sol_y = cbcModel.primalVariableSolution['y']\n >>> (abs(sol_y -\n ... np.array([0, 0.75]) ) <= 10**-6).all()\n True\n\n "; - 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_CyClpPrimalColumnPivotBase_pyx_p[] = "CyClpPrimalColumnPivotBase.pyx: pivot column should be implemented."; - static const char __pyx_k_CyClpSimplex_initialDualSolve_li[] = "CyClpSimplex.initialDualSolve (line 1274)"; - static const char __pyx_k_CyClpSimplex_initialSolve_line_1[] = "CyClpSimplex.initialSolve (line 1233)"; -@@ -3368,11 +3474,9 @@ static const char __pyx_k_CyClpSimplex_setConstraintStatus[] = "CyClpSimplex.set - static const char __pyx_k_CyClpSimplex_setInteger_line_167[] = "CyClpSimplex.setInteger (line 1678)"; - static const char __pyx_k_CyClpSimplex_setVariableStatus_l[] = "CyClpSimplex.setVariableStatus (line 1006)"; - static const char __pyx_k_Expected_a_CyLPModel_as_an_argum[] = "Expected a CyLPModel as an argument to cylpSimplex constructor. Got %s"; --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_Hessian_can_be_set_to_a_matrix_t[] = "Hessian can be set to a matrix that implements *tocoo* method"; - static const char __pyx_k_Incompatible_checksums_s_vs_0xd4[] = "Incompatible checksums (%s vs 0xd41d8cd = ())"; - static const char __pyx_k_No_write_access_for_s_or_an_inte[] = "No write access for %s or an intermediate directory does not exist."; --static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; - static const char __pyx_k_Presolve_says_problem_infeasible[] = "Presolve says problem infeasible."; - static const char __pyx_k_The_argument_of_getVarStatus_can[] = "The argument of getVarStatus can be a CyLPVar only if the object is built using a CyLPModel."; - static const char __pyx_k_The_argument_of_setInteger_can_b[] = "The argument of setInteger can be a CyLPVar only if the object is built using a CyLPModel."; -@@ -3383,13 +3487,11 @@ static const char __pyx_k_To_set_the_objective_function_of[] = "To set the objec - static const char __pyx_k_Variables_should_have_the_same_d[] = "Variables should have the same dimensions to be complements. Got %s: %g and %s: %g"; - static const char __pyx_k_coefMatrix_must_be_a_scipy_spars[] = "coefMatrix must be a scipy sparse matrix."; - static const char __pyx_k_cylp_py_pivots_DualPivotPythonBa[] = "cylp.py.pivots.DualPivotPythonBase"; --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_pivotMethodObject_should_be_of_a[] = "pivotMethodObject should be of a class derived from PivotPythonBase"; - static const char __pyx_k_stopped_by_event_handler_virtual[] = "stopped by event handler (virtual int ClpEventHandler::event())"; - static const char __pyx_k_Run_CLP_s_initalPrimalSolve_The_2[] = "\n Run CLP's initalPrimalSolve. The same as :func:`initalSolve` but force\n the use of dual Simplex.\n\n **Usage example**\n\n >>> from cylp.cy.CyClpSimplex import CyClpSimplex, getMpsExample\n >>> s = CyClpSimplex()\n >>> f = getMpsExample()\n >>> s.readMps(f)\n 0\n >>> s.initialDualSolve()\n 'optimal'\n >>> round(s.objectiveValue, 4)\n 2520.5717\n\n "; --static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; - static PyObject *__pyx_n_s_A; - static PyObject *__pyx_n_s_B; - static PyObject *__pyx_n_s_CLP_deleteConstraints; -@@ -3417,8 +3519,6 @@ static PyObject *__pyx_n_s_CyLPVar; - static PyObject *__pyx_n_s_D; - static PyObject *__pyx_n_s_DualPivotPythonBase; - static PyObject *__pyx_kp_s_Expected_a_CyLPModel_as_an_argum; --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_Hessian; - static PyObject *__pyx_kp_s_Hessian_can_be_set_to_a_matrix_t; - static PyObject *__pyx_n_s_ImportError; -@@ -3429,7 +3529,6 @@ static PyObject *__pyx_kp_s_No_cylpSimplex_cyLPModel_is_set; - static PyObject *__pyx_kp_s_No_such_constraint_s; - static PyObject *__pyx_kp_s_No_such_variable_s; - static PyObject *__pyx_kp_s_No_write_access_for_s_or_an_inte; --static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; - static PyObject *__pyx_n_s_PickleError; - static PyObject *__pyx_n_s_PivotPythonBase; - static PyObject *__pyx_kp_s_Presolve_says_problem_infeasible; -@@ -3437,7 +3536,6 @@ static PyObject *__pyx_kp_u_Run_CLP_s_initalPrimalSolve_The; - static PyObject *__pyx_kp_u_Run_CLP_s_initalPrimalSolve_The_2; - static PyObject *__pyx_kp_u_Run_CLP_s_initialSolve_It_does; - static PyObject *__pyx_kp_u_Runs_CLP_dual_simplex_Usage_Exa; --static PyObject *__pyx_n_s_RuntimeError; - static PyObject *__pyx_kp_u_Set_the_coefficient_matrix_cons; - static PyObject *__pyx_kp_u_Set_the_status_of_a_constraint; - static PyObject *__pyx_kp_u_Set_the_status_of_a_variable_ar; -@@ -3450,7 +3548,6 @@ static PyObject *__pyx_kp_s_To_remove_a_constraint_you_must; - static PyObject *__pyx_kp_s_To_remove_a_variable_you_must_se; - static PyObject *__pyx_kp_s_To_set_the_objective_function_of; - static PyObject *__pyx_n_s_TypeError; --static PyObject *__pyx_n_s_ValueError; - static PyObject *__pyx_n_s_VarStatus; - static PyObject *__pyx_kp_s_Variables_should_have_the_same_d; - static PyObject *__pyx_kp_s__8; -@@ -3604,8 +3701,6 @@ static PyObject *__pyx_n_s_nVars; - static PyObject *__pyx_n_s_name; - static PyObject *__pyx_n_s_name_2; - static PyObject *__pyx_n_s_ncol; --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_new; - static PyObject *__pyx_n_s_newNumberColumns; - static PyObject *__pyx_n_s_newNumberRows; -@@ -3713,7 +3808,6 @@ static PyObject *__pyx_n_s_test; - static PyObject *__pyx_n_s_toarray; - static PyObject *__pyx_n_s_tocoo; - static PyObject *__pyx_n_s_tryPlusMinusOne; --static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; - static PyObject *__pyx_kp_s_unrecognised_extension_s; - static PyObject *__pyx_n_s_update; - static PyObject *__pyx_n_s_updateStatus; -@@ -3942,8 +4036,6 @@ static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_4getMpsExample(CYTHON_UNUSED - static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_9VarStatus___reduce_cython__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_9VarStatus_2__setstate_cython__(struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus *__pyx_v_self, PyObject *__pyx_v___pyx_state); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_12CyClpSimplex_6__pyx_unpickle_VarStatus(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v___pyx_type, long __pyx_v___pyx_checksum, 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_12CyClpSimplex_CyClpSimplex(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ - static PyObject *__pyx_tp_new_4cylp_2cy_12CyClpSimplex_VarStatus(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ - static PyObject *__pyx_float_0_; -@@ -3998,11 +4090,6 @@ static PyObject *__pyx_tuple__30; - static PyObject *__pyx_tuple__31; - static PyObject *__pyx_tuple__32; - static PyObject *__pyx_tuple__33; --static PyObject *__pyx_tuple__34; --static PyObject *__pyx_tuple__35; --static PyObject *__pyx_tuple__36; --static PyObject *__pyx_tuple__37; --static PyObject *__pyx_tuple__38; - static PyObject *__pyx_codeobj__23; - static PyObject *__pyx_codeobj__27; - static PyObject *__pyx_codeobj__28; -@@ -37604,879 +37691,7 @@ static PyObject *__pyx_f_4cylp_2cy_12CyClpSimplex___pyx_unpickle_VarStatus__set_ - 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. -- */ -- --/* Python wrapper */ --static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ --static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { -- int __pyx_r; -- __Pyx_RefNannyDeclarations -- __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); -- __pyx_r = __pyx_pf_5numpy_7ndarray___getbuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); -- -- /* function exit code */ -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { -- int __pyx_v_i; -- int __pyx_v_ndim; -- int __pyx_v_endian_detector; -- int __pyx_v_little_endian; -- int __pyx_v_t; -- char *__pyx_v_f; -- PyArray_Descr *__pyx_v_descr = 0; -- int __pyx_v_offset; -- int __pyx_r; -- __Pyx_TraceDeclarations -- __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; -- 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_TraceCall("__getbuffer__", __pyx_f[2], 258, 0, __PYX_ERR(2, 258, __pyx_L1_error)); -- -- /* "../../.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) -- * -- */ -- __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) # <<<<<<<<<<<<<< -- * -- * ndim = PyArray_NDIM(self) -- */ -- __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); -- -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":268 -- * cdef bint little_endian = ((&endian_detector)[0] != 0) -- * -- * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- */ -- __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); -- -- /* "../../.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; -- } -- -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":271 -- * -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< -- * raise ValueError(u"ndarray is not C contiguous") -- * -- */ -- __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_C_CONTIGUOUS) != 0)) != 0); -- __pyx_t_1 = __pyx_t_2; -- __pyx_L4_bool_binop_done:; -- -- /* "../../.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)) { -- -- /* "../../.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") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__29, 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) -- * -- * 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") -- */ -- } -- -- /* "../../.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") -- */ -- __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 -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< -- * raise ValueError(u"ndarray is not Fortran contiguous") -- * -- */ -- __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_F_CONTIGUOUS) != 0)) != 0); -- __pyx_t_1 = __pyx_t_2; -- __pyx_L7_bool_binop_done:; -- -- /* "../../.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)) { -- -- /* "../../.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") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__30, 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") -- * -- * 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") -- */ -- } -- -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":278 -- * raise ValueError(u"ndarray is not Fortran contiguous") -- * -- * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< -- * info.ndim = ndim -- * if sizeof(npy_intp) != sizeof(Py_ssize_t): -- */ -- __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); -- -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":279 -- * -- * info.buf = PyArray_DATA(self) -- * info.ndim = ndim # <<<<<<<<<<<<<< -- * if sizeof(npy_intp) != sizeof(Py_ssize_t): -- * # Allocate new buffer for strides and shape info. -- */ -- __pyx_v_info->ndim = __pyx_v_ndim; -- -- /* "../../.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]); -- -- /* "../../.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) -- */ -- (__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; -- } -- -- /* "../../.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 -- */ -- /*else*/ { -- __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); -- -- /* "../../.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) -- */ -- __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; -- -- /* "../../.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) -- * -- */ -- __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 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; -- -- /* "../../.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 -- * -- */ -- __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; -- -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":300 -- * cdef int offset -- * -- * info.obj = self # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(descr): -- */ -- __Pyx_INCREF(((PyObject *)__pyx_v_self)); -- __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); -- __Pyx_GOTREF(__pyx_v_info->obj); -- __Pyx_DECREF(__pyx_v_info->obj); -- __pyx_v_info->obj = ((PyObject *)__pyx_v_self); -- -- /* "../../.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__31, 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_TraceReturn(Py_None, 0); -- __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_TraceDeclarations -- __Pyx_RefNannyDeclarations -- int __pyx_t_1; -- int __pyx_lineno = 0; -- const char *__pyx_filename = NULL; -- int __pyx_clineno = 0; -- __Pyx_RefNannySetupContext("__releasebuffer__", 0); -- __Pyx_TraceCall("__releasebuffer__", __pyx_f[2], 337, 0, __PYX_ERR(2, 337, __pyx_L1_error)); -- -- /* "../../.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 */ -- goto __pyx_L0; -- __pyx_L1_error:; -- __Pyx_WriteUnraisable("numpy.ndarray.__releasebuffer__", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); -- __pyx_L0:; -- __Pyx_TraceReturn(Py_None, 0); -- __Pyx_RefNannyFinishContext(); --} -- --/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":820 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735 - * ctypedef npy_cdouble complex_t - * - * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< -@@ -38493,9 +37708,9 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); -- __Pyx_TraceCall("PyArray_MultiIterNew1", __pyx_f[2], 820, 0, __PYX_ERR(2, 820, __pyx_L1_error)); -+ __Pyx_TraceCall("PyArray_MultiIterNew1", __pyx_f[2], 735, 0, __PYX_ERR(2, 735, __pyx_L1_error)); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":821 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":736 - * - * cdef inline object PyArray_MultiIterNew1(a): - * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< -@@ -38503,13 +37718,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - * 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_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":820 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735 - * ctypedef npy_cdouble complex_t - * - * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< -@@ -38529,7 +37744,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - return __pyx_r; - } - --/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":823 -+/* "../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): # <<<<<<<<<<<<<< -@@ -38546,9 +37761,9 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); -- __Pyx_TraceCall("PyArray_MultiIterNew2", __pyx_f[2], 823, 0, __PYX_ERR(2, 823, __pyx_L1_error)); -+ __Pyx_TraceCall("PyArray_MultiIterNew2", __pyx_f[2], 738, 0, __PYX_ERR(2, 738, __pyx_L1_error)); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":824 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":739 - * - * cdef inline object PyArray_MultiIterNew2(a, b): - * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< -@@ -38556,13 +37771,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - * 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_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":823 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -38582,7 +37797,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - return __pyx_r; - } - --/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":826 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741 - * return PyArray_MultiIterNew(2, a, b) - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< -@@ -38599,9 +37814,9 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); -- __Pyx_TraceCall("PyArray_MultiIterNew3", __pyx_f[2], 826, 0, __PYX_ERR(2, 826, __pyx_L1_error)); -+ __Pyx_TraceCall("PyArray_MultiIterNew3", __pyx_f[2], 741, 0, __PYX_ERR(2, 741, __pyx_L1_error)); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":827 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":742 - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): - * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< -@@ -38609,13 +37824,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - * 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_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":826 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741 - * return PyArray_MultiIterNew(2, a, b) - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< -@@ -38635,7 +37850,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - return __pyx_r; - } - --/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":829 -+/* "../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): # <<<<<<<<<<<<<< -@@ -38652,9 +37867,9 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); -- __Pyx_TraceCall("PyArray_MultiIterNew4", __pyx_f[2], 829, 0, __PYX_ERR(2, 829, __pyx_L1_error)); -+ __Pyx_TraceCall("PyArray_MultiIterNew4", __pyx_f[2], 744, 0, __PYX_ERR(2, 744, __pyx_L1_error)); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":830 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -38662,13 +37877,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - * 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_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":829 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -38688,7 +37903,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - return __pyx_r; - } - --/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":832 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 - * return PyArray_MultiIterNew(4, a, b, c, d) - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -@@ -38705,9 +37920,9 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); -- __Pyx_TraceCall("PyArray_MultiIterNew5", __pyx_f[2], 832, 0, __PYX_ERR(2, 832, __pyx_L1_error)); -+ __Pyx_TraceCall("PyArray_MultiIterNew5", __pyx_f[2], 747, 0, __PYX_ERR(2, 747, __pyx_L1_error)); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":833 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -38715,13 +37930,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - * 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_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":832 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 - * return PyArray_MultiIterNew(4, a, b, c, d) - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -@@ -38741,7 +37956,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - return __pyx_r; - } - --/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":835 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -@@ -38758,9 +37973,9 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); -- __Pyx_TraceCall("PyDataType_SHAPE", __pyx_f[2], 835, 0, __PYX_ERR(2, 835, __pyx_L1_error)); -+ __Pyx_TraceCall("PyDataType_SHAPE", __pyx_f[2], 750, 0, __PYX_ERR(2, 750, __pyx_L1_error)); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":836 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -@@ -38770,7 +37985,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - __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 -+ /* "../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 # <<<<<<<<<<<<<< -@@ -38782,7 +37997,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); - goto __pyx_L0; - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":836 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -@@ -38791,12 +38006,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - */ - } - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":839 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":754 - * 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); -@@ -38805,7 +38020,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - goto __pyx_L0; - } - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":835 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -@@ -38824,759 +38039,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - 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_TraceDeclarations -- __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); -- __Pyx_TraceCall("_util_dtypestring", __pyx_f[2], 841, 0, __PYX_ERR(2, 841, __pyx_L1_error)); -- -- /* "../../.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__32, 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__31, 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__33, 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.") -- * -- */ -- } -- -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":882 -- * -- * # 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) -- */ -- __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); -- -- /* "../../.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: -- */ -- goto __pyx_L13; -- } -- -- /* "../../.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 -- * -- */ -- /*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:; -- -- /* "../../.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 -- */ -- } -- __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 # <<<<<<<<<<<<<< -- * -- * -- */ -- __pyx_r = __pyx_v_f; -- goto __pyx_L0; -- -- /* "../../.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. -- */ -- -- /* 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_TraceReturn(Py_None, 0); -- __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): # <<<<<<<<<<<<<< -@@ -39591,9 +38054,9 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("set_array_base", 0); -- __Pyx_TraceCall("set_array_base", __pyx_f[2], 1021, 0, __PYX_ERR(2, 1021, __pyx_L1_error)); -+ __Pyx_TraceCall("set_array_base", __pyx_f[2], 929, 0, __PYX_ERR(2, 929, __pyx_L1_error)); - -- /* "../../.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! # <<<<<<<<<<<<<< -@@ -39602,7 +38065,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) # <<<<<<<<<<<<<< -@@ -39611,7 +38074,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): # <<<<<<<<<<<<<< -@@ -39628,7 +38091,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): # <<<<<<<<<<<<<< -@@ -39646,9 +38109,9 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("get_array_base", 0); -- __Pyx_TraceCall("get_array_base", __pyx_f[2], 1025, 0, __PYX_ERR(2, 1025, __pyx_L1_error)); -+ __Pyx_TraceCall("get_array_base", __pyx_f[2], 933, 0, __PYX_ERR(2, 933, __pyx_L1_error)); - -- /* "../../.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) # <<<<<<<<<<<<<< -@@ -39657,7 +38120,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: # <<<<<<<<<<<<<< -@@ -39667,7 +38130,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 # <<<<<<<<<<<<<< -@@ -39678,7 +38141,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: # <<<<<<<<<<<<<< -@@ -39687,7 +38150,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 base # <<<<<<<<<<<<<< -@@ -39699,7 +38162,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = ((PyObject *)__pyx_v_base); - goto __pyx_L0; - -- /* "../../.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): # <<<<<<<<<<<<<< -@@ -39718,12 +38181,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - return __pyx_r; - } - --/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1033 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { -@@ -39742,13 +38205,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_array", 0); -- __Pyx_TraceCall("import_array", __pyx_f[2], 1033, 0, __PYX_ERR(2, 1033, __pyx_L1_error)); -+ __Pyx_TraceCall("import_array", __pyx_f[2], 941, 0, __PYX_ERR(2, 941, __pyx_L1_error)); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - { -@@ -39760,20 +38223,20 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":943 - * cdef inline int import_array() except -1: - * try: -- * _import_array() # <<<<<<<<<<<<<< -+ * __pyx_import_array() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") - */ -- __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1035, __pyx_L3_error) -+ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 943, __pyx_L3_error) - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - } -@@ -39783,9 +38246,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1036 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":944 - * try: -- * _import_array() -+ * __pyx_import_array() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.multiarray failed to import") - * -@@ -39793,32 +38256,32 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1036, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 944, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1037 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__34, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1037, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__29, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 945, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1037, __pyx_L5_except_error) -+ __PYX_ERR(2, 945, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - __Pyx_XGIVEREF(__pyx_t_1); -@@ -39829,12 +38292,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_L8_try_end:; - } - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1033 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - /* function exit code */ -@@ -39853,7 +38316,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - return __pyx_r; - } - --/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1039 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -39877,9 +38340,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_umath", 0); -- __Pyx_TraceCall("import_umath", __pyx_f[2], 1039, 0, __PYX_ERR(2, 1039, __pyx_L1_error)); -+ __Pyx_TraceCall("import_umath", __pyx_f[2], 947, 0, __PYX_ERR(2, 947, __pyx_L1_error)); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -39895,16 +38358,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":949 - * cdef inline int import_umath() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1041, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 949, __pyx_L3_error) - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -39918,7 +38381,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1042 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":950 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< -@@ -39928,28 +38391,28 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1042, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 950, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1043 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1043, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__30, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 951, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1043, __pyx_L5_except_error) -+ __PYX_ERR(2, 951, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -39964,7 +38427,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_L8_try_end:; - } - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1039 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -39988,7 +38451,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - return __pyx_r; - } - --/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1045 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -40012,9 +38475,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_ufunc", 0); -- __Pyx_TraceCall("import_ufunc", __pyx_f[2], 1045, 0, __PYX_ERR(2, 1045, __pyx_L1_error)); -+ __Pyx_TraceCall("import_ufunc", __pyx_f[2], 953, 0, __PYX_ERR(2, 953, __pyx_L1_error)); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -40030,16 +38493,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":955 - * cdef inline int import_ufunc() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1047, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 955, __pyx_L3_error) - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -40053,35 +38516,38 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1048 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":956 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.umath failed to import") -+ * - */ - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1048, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 956, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1049 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":957 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< -+ * -+ * cdef extern from *: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1049, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__30, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 957, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1049, __pyx_L5_except_error) -+ __PYX_ERR(2, 957, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -40096,7 +38562,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __pyx_L8_try_end:; - } - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1045 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -40119,6 +38585,225 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_RefNannyFinishContext(); - return __pyx_r; - } -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_TraceDeclarations -+ __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; -+ __Pyx_RefNannySetupContext("is_timedelta64_object", 0); -+ __Pyx_TraceCall("is_timedelta64_object", __pyx_f[2], 967, 0, __PYX_ERR(2, 967, __pyx_L1_error)); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":979 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L1_error:; -+ __Pyx_WriteUnraisable("numpy.is_timedelta64_object", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); -+ __pyx_r = 0; -+ __pyx_L0:; -+ __Pyx_TraceReturn(Py_None, 0); -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_TraceDeclarations -+ __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; -+ __Pyx_RefNannySetupContext("is_datetime64_object", 0); -+ __Pyx_TraceCall("is_datetime64_object", __pyx_f[2], 982, 0, __PYX_ERR(2, 982, __pyx_L1_error)); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":994 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L1_error:; -+ __Pyx_WriteUnraisable("numpy.is_datetime64_object", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); -+ __pyx_r = 0; -+ __pyx_L0:; -+ __Pyx_TraceReturn(Py_None, 0); -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { -+ npy_datetime __pyx_r; -+ __Pyx_TraceDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; -+ __Pyx_TraceCall("get_datetime64_value", __pyx_f[2], 997, 1, __PYX_ERR(2, 997, __pyx_L1_error)); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1004 -+ * also needed. That can be found using `get_datetime64_unit`. -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L1_error:; -+ __Pyx_WriteUnraisable("numpy.get_datetime64_value", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1); -+ __pyx_r = 0; -+ __pyx_L0:; -+ __Pyx_TraceReturn(Py_None, 1); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { -+ npy_timedelta __pyx_r; -+ __Pyx_TraceDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; -+ __Pyx_TraceCall("get_timedelta64_value", __pyx_f[2], 1007, 1, __PYX_ERR(2, 1007, __pyx_L1_error)); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1011 -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L1_error:; -+ __Pyx_WriteUnraisable("numpy.get_timedelta64_value", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1); -+ __pyx_r = 0; -+ __pyx_L0:; -+ __Pyx_TraceReturn(Py_None, 1); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { -+ NPY_DATETIMEUNIT __pyx_r; -+ __Pyx_TraceDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; -+ __Pyx_TraceCall("get_datetime64_unit", __pyx_f[2], 1014, 1, __PYX_ERR(2, 1014, __pyx_L1_error)); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1018 -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ * """ -+ * return (obj).obmeta.base # <<<<<<<<<<<<<< -+ */ -+ __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+ /* function exit code */ -+ __pyx_L1_error:; -+ __Pyx_WriteUnraisable("numpy.get_datetime64_unit", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 1); -+ __pyx_r = (NPY_DATETIMEUNIT) 0; -+ __pyx_L0:; -+ __Pyx_TraceReturn(Py_None, 1); -+ return __pyx_r; -+} - static struct __pyx_vtabstruct_4cylp_2cy_12CyClpSimplex_CyClpSimplex __pyx_vtable_4cylp_2cy_12CyClpSimplex_CyClpSimplex; - - static PyObject *__pyx_tp_new_4cylp_2cy_12CyClpSimplex_CyClpSimplex(PyTypeObject *t, PyObject *a, PyObject *k) { -@@ -40976,6 +39661,9 @@ static PyTypeObject __pyx_type_4cylp_2cy_12CyClpSimplex_CyClpSimplex = { - #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 - 0, /*tp_print*/ - #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyObject *__pyx_tp_new_4cylp_2cy_12CyClpSimplex_VarStatus(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { -@@ -41071,6 +39759,9 @@ static PyTypeObject __pyx_type_4cylp_2cy_12CyClpSimplex_VarStatus = { - #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 - 0, /*tp_print*/ - #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyMethodDef __pyx_methods[] = { -@@ -41147,8 +39838,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_D, __pyx_k_D, sizeof(__pyx_k_D), 0, 0, 1, 1}, - {&__pyx_n_s_DualPivotPythonBase, __pyx_k_DualPivotPythonBase, sizeof(__pyx_k_DualPivotPythonBase), 0, 0, 1, 1}, - {&__pyx_kp_s_Expected_a_CyLPModel_as_an_argum, __pyx_k_Expected_a_CyLPModel_as_an_argum, sizeof(__pyx_k_Expected_a_CyLPModel_as_an_argum), 0, 0, 1, 0}, -- {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, -- {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, - {&__pyx_n_s_Hessian, __pyx_k_Hessian, sizeof(__pyx_k_Hessian), 0, 0, 1, 1}, - {&__pyx_kp_s_Hessian_can_be_set_to_a_matrix_t, __pyx_k_Hessian_can_be_set_to_a_matrix_t, sizeof(__pyx_k_Hessian_can_be_set_to_a_matrix_t), 0, 0, 1, 0}, - {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, -@@ -41159,7 +39848,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_kp_s_No_such_constraint_s, __pyx_k_No_such_constraint_s, sizeof(__pyx_k_No_such_constraint_s), 0, 0, 1, 0}, - {&__pyx_kp_s_No_such_variable_s, __pyx_k_No_such_variable_s, sizeof(__pyx_k_No_such_variable_s), 0, 0, 1, 0}, - {&__pyx_kp_s_No_write_access_for_s_or_an_inte, __pyx_k_No_write_access_for_s_or_an_inte, sizeof(__pyx_k_No_write_access_for_s_or_an_inte), 0, 0, 1, 0}, -- {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, - {&__pyx_n_s_PickleError, __pyx_k_PickleError, sizeof(__pyx_k_PickleError), 0, 0, 1, 1}, - {&__pyx_n_s_PivotPythonBase, __pyx_k_PivotPythonBase, sizeof(__pyx_k_PivotPythonBase), 0, 0, 1, 1}, - {&__pyx_kp_s_Presolve_says_problem_infeasible, __pyx_k_Presolve_says_problem_infeasible, sizeof(__pyx_k_Presolve_says_problem_infeasible), 0, 0, 1, 0}, -@@ -41167,7 +39855,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_kp_u_Run_CLP_s_initalPrimalSolve_The_2, __pyx_k_Run_CLP_s_initalPrimalSolve_The_2, sizeof(__pyx_k_Run_CLP_s_initalPrimalSolve_The_2), 0, 1, 0, 0}, - {&__pyx_kp_u_Run_CLP_s_initialSolve_It_does, __pyx_k_Run_CLP_s_initialSolve_It_does, sizeof(__pyx_k_Run_CLP_s_initialSolve_It_does), 0, 1, 0, 0}, - {&__pyx_kp_u_Runs_CLP_dual_simplex_Usage_Exa, __pyx_k_Runs_CLP_dual_simplex_Usage_Exa, sizeof(__pyx_k_Runs_CLP_dual_simplex_Usage_Exa), 0, 1, 0, 0}, -- {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_kp_u_Set_the_coefficient_matrix_cons, __pyx_k_Set_the_coefficient_matrix_cons, sizeof(__pyx_k_Set_the_coefficient_matrix_cons), 0, 1, 0, 0}, - {&__pyx_kp_u_Set_the_status_of_a_constraint, __pyx_k_Set_the_status_of_a_constraint, sizeof(__pyx_k_Set_the_status_of_a_constraint), 0, 1, 0, 0}, - {&__pyx_kp_u_Set_the_status_of_a_variable_ar, __pyx_k_Set_the_status_of_a_variable_ar, sizeof(__pyx_k_Set_the_status_of_a_variable_ar), 0, 1, 0, 0}, -@@ -41180,7 +39867,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_kp_s_To_remove_a_variable_you_must_se, __pyx_k_To_remove_a_variable_you_must_se, sizeof(__pyx_k_To_remove_a_variable_you_must_se), 0, 0, 1, 0}, - {&__pyx_kp_s_To_set_the_objective_function_of, __pyx_k_To_set_the_objective_function_of, sizeof(__pyx_k_To_set_the_objective_function_of), 0, 0, 1, 0}, - {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, -- {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_n_s_VarStatus, __pyx_k_VarStatus, sizeof(__pyx_k_VarStatus), 0, 0, 1, 1}, - {&__pyx_kp_s_Variables_should_have_the_same_d, __pyx_k_Variables_should_have_the_same_d, sizeof(__pyx_k_Variables_should_have_the_same_d), 0, 0, 1, 0}, - {&__pyx_kp_s__8, __pyx_k__8, sizeof(__pyx_k__8), 0, 0, 1, 0}, -@@ -41334,8 +40020,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, - {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1}, - {&__pyx_n_s_ncol, __pyx_k_ncol, sizeof(__pyx_k_ncol), 0, 0, 1, 1}, -- {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, -- {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, - {&__pyx_n_s_new, __pyx_k_new, sizeof(__pyx_k_new), 0, 0, 1, 1}, - {&__pyx_n_s_newNumberColumns, __pyx_k_newNumberColumns, sizeof(__pyx_k_newNumberColumns), 0, 0, 1, 1}, - {&__pyx_n_s_newNumberRows, __pyx_k_newNumberRows, sizeof(__pyx_k_newNumberRows), 0, 0, 1, 1}, -@@ -41443,7 +40127,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_toarray, __pyx_k_toarray, sizeof(__pyx_k_toarray), 0, 0, 1, 1}, - {&__pyx_n_s_tocoo, __pyx_k_tocoo, sizeof(__pyx_k_tocoo), 0, 0, 1, 1}, - {&__pyx_n_s_tryPlusMinusOne, __pyx_k_tryPlusMinusOne, sizeof(__pyx_k_tryPlusMinusOne), 0, 0, 1, 1}, -- {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, - {&__pyx_kp_s_unrecognised_extension_s, __pyx_k_unrecognised_extension_s, sizeof(__pyx_k_unrecognised_extension_s), 0, 0, 1, 0}, - {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1}, - {&__pyx_n_s_updateStatus, __pyx_k_updateStatus, sizeof(__pyx_k_updateStatus), 0, 0, 1, 1}, -@@ -41491,8 +40174,6 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 314, __pyx_L1_error) - __pyx_builtin_print = __Pyx_GetBuiltinName(__pyx_n_s_print); if (!__pyx_builtin_print) __PYX_ERR(0, 1500, __pyx_L1_error) - __pyx_builtin_open = __Pyx_GetBuiltinName(__pyx_n_s_open); if (!__pyx_builtin_open) __PYX_ERR(0, 1807, __pyx_L1_error) -- __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(2, 272, __pyx_L1_error) -- __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(2, 855, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -@@ -41730,82 +40411,27 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_GOTREF(__pyx_slice__26); - __Pyx_GIVEREF(__pyx_slice__26); - -- /* "../../.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") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_tuple__29 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(2, 272, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__29); -- __Pyx_GIVEREF(__pyx_tuple__29); -- -- /* "../../.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") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_tuple__30 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(2, 276, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__30); -- __Pyx_GIVEREF(__pyx_tuple__30); -- -- /* "../../.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_tuple__31 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(2, 306, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__31); -- __Pyx_GIVEREF(__pyx_tuple__31); -- -- /* "../../.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_tuple__32 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__32); -- __Pyx_GIVEREF(__pyx_tuple__32); -- -- /* "../../.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_tuple__33 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(2, 879, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__33); -- __Pyx_GIVEREF(__pyx_tuple__33); -- -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1037 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_tuple__34 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(2, 1037, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__34); -- __Pyx_GIVEREF(__pyx_tuple__34); -+ __pyx_tuple__29 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(2, 945, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__29); -+ __Pyx_GIVEREF(__pyx_tuple__29); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1043 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_tuple__35 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(2, 1043, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__35); -- __Pyx_GIVEREF(__pyx_tuple__35); -+ __pyx_tuple__30 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(2, 951, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__30); -+ __Pyx_GIVEREF(__pyx_tuple__30); - - /* "cylp/cy/CyClpSimplex.pyx":2178 - * -@@ -41814,10 +40440,10 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - * ''' - * Return a model example to be used in doctests. - */ -- __pyx_tuple__36 = PyTuple_Pack(14, __pyx_n_s_np, __pyx_n_s_CyLPModel, __pyx_n_s_CyLPArray, __pyx_n_s_CyClpSimplex, __pyx_n_s_model, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_A, __pyx_n_s_B, __pyx_n_s_D, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_x_u, __pyx_n_s_c); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(0, 2178, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__36); -- __Pyx_GIVEREF(__pyx_tuple__36); -- __pyx_codeobj__23 = (PyObject*)__Pyx_PyCode_New(0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__36, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cylp_cy_CyClpSimplex_pyx, __pyx_n_s_getModelExample, 2178, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__23)) __PYX_ERR(0, 2178, __pyx_L1_error) -+ __pyx_tuple__31 = PyTuple_Pack(14, __pyx_n_s_np, __pyx_n_s_CyLPModel, __pyx_n_s_CyLPArray, __pyx_n_s_CyClpSimplex, __pyx_n_s_model, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_A, __pyx_n_s_B, __pyx_n_s_D, __pyx_n_s_a, __pyx_n_s_b, __pyx_n_s_x_u, __pyx_n_s_c); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 2178, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__31); -+ __Pyx_GIVEREF(__pyx_tuple__31); -+ __pyx_codeobj__23 = (PyObject*)__Pyx_PyCode_New(0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cylp_cy_CyClpSimplex_pyx, __pyx_n_s_getModelExample, 2178, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__23)) __PYX_ERR(0, 2178, __pyx_L1_error) - - /* "cylp/cy/CyClpSimplex.pyx":2212 - * -@@ -41826,20 +40452,20 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - * ''' - * Return full path to an MPS example file for doctests - */ -- __pyx_tuple__37 = PyTuple_Pack(3, __pyx_n_s_os, __pyx_n_s_inspect, __pyx_n_s_curpath); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(0, 2212, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__37); -- __Pyx_GIVEREF(__pyx_tuple__37); -- __pyx_codeobj__27 = (PyObject*)__Pyx_PyCode_New(0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cylp_cy_CyClpSimplex_pyx, __pyx_n_s_getMpsExample, 2212, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__27)) __PYX_ERR(0, 2212, __pyx_L1_error) -+ __pyx_tuple__32 = PyTuple_Pack(3, __pyx_n_s_os, __pyx_n_s_inspect, __pyx_n_s_curpath); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(0, 2212, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__32); -+ __Pyx_GIVEREF(__pyx_tuple__32); -+ __pyx_codeobj__27 = (PyObject*)__Pyx_PyCode_New(0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__32, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cylp_cy_CyClpSimplex_pyx, __pyx_n_s_getMpsExample, 2212, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__27)) __PYX_ERR(0, 2212, __pyx_L1_error) - - /* "(tree fragment)":1 - * def __pyx_unpickle_VarStatus(__pyx_type, long __pyx_checksum, __pyx_state): # <<<<<<<<<<<<<< - * cdef object __pyx_PickleError - * cdef object __pyx_result - */ -- __pyx_tuple__38 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(1, 1, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__38); -- __Pyx_GIVEREF(__pyx_tuple__38); -- __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__38, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_VarStatus, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(1, 1, __pyx_L1_error) -+ __pyx_tuple__33 = PyTuple_Pack(5, __pyx_n_s_pyx_type, __pyx_n_s_pyx_checksum, __pyx_n_s_pyx_state, __pyx_n_s_pyx_PickleError, __pyx_n_s_pyx_result); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(1, 1, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__33); -+ __Pyx_GIVEREF(__pyx_tuple__33); -+ __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__33, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_stringsource, __pyx_n_s_pyx_unpickle_VarStatus, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; -@@ -42017,18 +40643,38 @@ static int __Pyx_modinit_type_import_code(void) { - if (!__pyx_ptype_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase) __PYX_ERR(7, 67, __pyx_L1_error) - __pyx_vtabptr_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase = (struct __pyx_vtabstruct_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase*)__Pyx_GetVtable(__pyx_ptype_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase->tp_dict); if (unlikely(!__pyx_vtabptr_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase)) __PYX_ERR(7, 67, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 206, __pyx_L1_error) -+ __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 206, __pyx_L1_error) -- __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 229, __pyx_L1_error) -- __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 233, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 200, __pyx_L1_error) -+ __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 223, __pyx_L1_error) -+ __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 227, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 242, __pyx_L1_error) -- __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 917, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 239, __pyx_L1_error) -+ __pyx_ptype_5numpy_generic = __Pyx_ImportType(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 771, __pyx_L1_error) -+ __pyx_ptype_5numpy_number = __Pyx_ImportType(__pyx_t_1, "numpy", "number", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 773, __pyx_L1_error) -+ __pyx_ptype_5numpy_integer = __Pyx_ImportType(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 775, __pyx_L1_error) -+ __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 777, __pyx_L1_error) -+ __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 779, __pyx_L1_error) -+ __pyx_ptype_5numpy_inexact = __Pyx_ImportType(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 781, __pyx_L1_error) -+ __pyx_ptype_5numpy_floating = __Pyx_ImportType(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 783, __pyx_L1_error) -+ __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 785, __pyx_L1_error) -+ __pyx_ptype_5numpy_flexible = __Pyx_ImportType(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 787, __pyx_L1_error) -+ __pyx_ptype_5numpy_character = __Pyx_ImportType(__pyx_t_1, "numpy", "character", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 789, __pyx_L1_error) -+ __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 827, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyClpDualRowPivotBase"); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 72, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); -@@ -42315,11 +40961,9 @@ if (!__Pyx_RefNanny) { - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ -- #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS -- #ifdef WITH_THREAD /* Python build with threading support? */ -+ #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - PyEval_InitThreads(); - #endif -- #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; -@@ -43083,12 +41727,12 @@ if (!__Pyx_RefNanny) { - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1045 -- * raise ImportError("numpy.core.umath failed to import") -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -- * try: -- * _import_umath() -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ - __Pyx_TraceReturn(Py_None, 0); - -@@ -43367,10 +42011,9 @@ static int __Pyx_TraceSetupAndCall(PyCodeObject** code, - (*frame)->f_tstate = tstate; - #endif - } -- __Pyx_PyFrame_SetLineNumber(*frame, firstlineno); -+ __Pyx_PyFrame_SetLineNumber(*frame, firstlineno); - retval = 1; -- tstate->tracing++; -- tstate->use_tracing = 0; -+ __Pyx_EnterTracing(tstate); - __Pyx_ErrFetchInState(tstate, &type, &value, &traceback); - #if CYTHON_TRACE - if (tstate->c_tracefunc) -@@ -43378,12 +42021,10 @@ static int __Pyx_TraceSetupAndCall(PyCodeObject** code, - if (retval && tstate->c_profilefunc) - #endif - retval = tstate->c_profilefunc(tstate->c_profileobj, *frame, PyTrace_CALL, NULL) == 0; -- tstate->use_tracing = (tstate->c_profilefunc || -- (CYTHON_TRACE && tstate->c_tracefunc)); -- tstate->tracing--; -+ __Pyx_LeaveTracing(tstate); - if (retval) { - __Pyx_ErrRestoreInState(tstate, type, value, traceback); -- return tstate->use_tracing && retval; -+ return __Pyx_IsTracing(tstate, 0, 0) && retval; - } else { - Py_XDECREF(type); - Py_XDECREF(value); -@@ -43552,7 +42193,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, - #if CYTHON_COMPILING_IN_CPYTHON - static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; -- ternaryfunc call = func->ob_type->tp_call; -+ ternaryfunc call = Py_TYPE(func)->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -@@ -43745,7 +42386,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec - if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { - return __Pyx_PyObject_CallMethO(func, arg); - #if CYTHON_FAST_PYCCALL -- } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { -+ } else if (__Pyx_PyFastCFunction_Check(func)) { - return __Pyx_PyCFunction_FastCall(func, &arg, 1); - #endif - } -@@ -45623,11 +44264,6 @@ static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *o, PyObject *n, PyObject - } - } - --/* RaiseNoneIterError */ -- static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); --} -- - /* PyObject_GenericGetAttrNoDict */ - #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 - static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) { -@@ -45935,7 +44571,7 @@ static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int - } - if (!use_cline) { - c_line = 0; -- PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); -+ (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; -@@ -46032,30 +44668,31 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { -- PyCodeObject *py_code = 0; -- PyObject *py_srcfile = 0; -- PyObject *py_funcname = 0; -+ PyCodeObject *py_code = NULL; -+ PyObject *py_funcname = NULL; - #if PY_MAJOR_VERSION < 3 -+ PyObject *py_srcfile = NULL; - py_srcfile = PyString_FromString(filename); -- #else -- py_srcfile = PyUnicode_FromString(filename); -- #endif - if (!py_srcfile) goto bad; -+ #endif - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; -+ funcname = PyUnicode_AsUTF8(py_funcname); -+ if (!funcname) goto bad; - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); -- #else -- py_funcname = PyUnicode_FromString(funcname); -+ if (!py_funcname) goto bad; - #endif - } -- if (!py_funcname) goto bad; -+ #if PY_MAJOR_VERSION < 3 - py_code = __Pyx_PyCode_New( - 0, - 0, -@@ -46074,11 +44711,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); -- Py_DECREF(py_funcname); -+ #else -+ py_code = PyCode_NewEmpty(filename, funcname, py_line); -+ #endif -+ Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline - return py_code; - bad: -- Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); -+ #if PY_MAJOR_VERSION < 3 -+ Py_XDECREF(py_srcfile); -+ #endif - return NULL; - } - static void __Pyx_AddTraceback(const char *funcname, int c_line, -@@ -46113,7 +44755,6 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - #if PY_MAJOR_VERSION < 3 - static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) { - if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags); -- if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) return __pyx_pw_5numpy_7ndarray_1__getbuffer__(obj, view, flags); - PyErr_Format(PyExc_TypeError, "'%.200s' does not have the buffer interface", Py_TYPE(obj)->tp_name); - return -1; - } -@@ -46125,7 +44766,6 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - return; - } - if ((0)) {} -- else if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) __pyx_pw_5numpy_7ndarray_3__releasebuffer__(obj, view); - view->obj = NULL; - Py_DECREF(obj); - } -@@ -46181,99 +44821,6 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - return t; - } - --/* CIntToPy */ -- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(long) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(long) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(long) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(long), -- little, !is_unsigned); -- } --} -- --/* CIntToPy */ -- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(int) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(int) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(int) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(int), -- little, !is_unsigned); -- } --} -- --/* CIntToPy */ -- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__IClpSimplex_3a__3a_Status(enum IClpSimplex::Status value) { -- const enum IClpSimplex::Status neg_one = (enum IClpSimplex::Status) ((enum IClpSimplex::Status) 0 - (enum IClpSimplex::Status) 1), const_zero = (enum IClpSimplex::Status) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(enum IClpSimplex::Status) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(enum IClpSimplex::Status) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum IClpSimplex::Status) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(enum IClpSimplex::Status) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum IClpSimplex::Status) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(enum IClpSimplex::Status), -- little, !is_unsigned); -- } --} -- - /* Declarations */ - #if CYTHON_CCOMPLEX - #ifdef __cplusplus -@@ -46582,40 +45129,16 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - #endif - #endif - --/* CIntToPy */ -- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { -- const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(enum NPY_TYPES) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(enum NPY_TYPES) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), -- little, !is_unsigned); -- } --} -- - /* CIntFromPy */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -46802,9 +45325,54 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - return (int) -1; - } - -+/* CIntToPy */ -+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif -+ const int is_unsigned = neg_one > const_zero; -+ if (is_unsigned) { -+ if (sizeof(long) < sizeof(long)) { -+ return PyInt_FromLong((long) value); -+ } else if (sizeof(long) <= sizeof(unsigned long)) { -+ return PyLong_FromUnsignedLong((unsigned long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -+ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+#endif -+ } -+ } else { -+ if (sizeof(long) <= sizeof(long)) { -+ return PyInt_FromLong((long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -+ return PyLong_FromLongLong((PY_LONG_LONG) value); -+#endif -+ } -+ } -+ { -+ int one = 1; int little = (int)*(unsigned char *)&one; -+ unsigned char *bytes = (unsigned char *)&value; -+ return _PyLong_FromByteArray(bytes, sizeof(long), -+ little, !is_unsigned); -+ } -+} -+ - /* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -46991,9 +45559,54 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - return (long) -1; - } - -+/* CIntToPy */ -+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif -+ const int is_unsigned = neg_one > const_zero; -+ if (is_unsigned) { -+ if (sizeof(int) < sizeof(long)) { -+ return PyInt_FromLong((long) value); -+ } else if (sizeof(int) <= sizeof(unsigned long)) { -+ return PyLong_FromUnsignedLong((unsigned long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -+ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+#endif -+ } -+ } else { -+ if (sizeof(int) <= sizeof(long)) { -+ return PyInt_FromLong((long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -+ return PyLong_FromLongLong((PY_LONG_LONG) value); -+#endif -+ } -+ } -+ { -+ int one = 1; int little = (int)*(unsigned char *)&one; -+ unsigned char *bytes = (unsigned char *)&value; -+ return _PyLong_FromByteArray(bytes, sizeof(int), -+ little, !is_unsigned); -+ } -+} -+ - /* CIntFromPy */ - static CYTHON_INLINE size_t __Pyx_PyInt_As_size_t(PyObject *x) { -- const size_t neg_one = (size_t) ((size_t) 0 - (size_t) 1), const_zero = (size_t) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const size_t neg_one = (size_t) -1, const_zero = (size_t) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -47180,9 +45793,54 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - return (size_t) -1; - } - -+/* CIntToPy */ -+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__IClpSimplex_3a__3a_Status(enum IClpSimplex::Status value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const enum IClpSimplex::Status neg_one = (enum IClpSimplex::Status) -1, const_zero = (enum IClpSimplex::Status) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif -+ const int is_unsigned = neg_one > const_zero; -+ if (is_unsigned) { -+ if (sizeof(enum IClpSimplex::Status) < sizeof(long)) { -+ return PyInt_FromLong((long) value); -+ } else if (sizeof(enum IClpSimplex::Status) <= sizeof(unsigned long)) { -+ return PyLong_FromUnsignedLong((unsigned long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(enum IClpSimplex::Status) <= sizeof(unsigned PY_LONG_LONG)) { -+ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+#endif -+ } -+ } else { -+ if (sizeof(enum IClpSimplex::Status) <= sizeof(long)) { -+ return PyInt_FromLong((long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(enum IClpSimplex::Status) <= sizeof(PY_LONG_LONG)) { -+ return PyLong_FromLongLong((PY_LONG_LONG) value); -+#endif -+ } -+ } -+ { -+ int one = 1; int little = (int)*(unsigned char *)&one; -+ unsigned char *bytes = (unsigned char *)&value; -+ return _PyLong_FromByteArray(bytes, sizeof(enum IClpSimplex::Status), -+ little, !is_unsigned); -+ } -+} -+ - /* CIntFromPy */ - static CYTHON_INLINE enum IClpSimplex::Status __Pyx_PyInt_As_enum__IClpSimplex_3a__3a_Status(PyObject *x) { -- const enum IClpSimplex::Status neg_one = (enum IClpSimplex::Status) ((enum IClpSimplex::Status) 0 - (enum IClpSimplex::Status) 1), const_zero = (enum IClpSimplex::Status) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const enum IClpSimplex::Status neg_one = (enum IClpSimplex::Status) -1, const_zero = (enum IClpSimplex::Status) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -47371,7 +46029,14 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - - /* CIntFromPy */ - static CYTHON_INLINE Py_intptr_t __Pyx_PyInt_As_Py_intptr_t(PyObject *x) { -- const Py_intptr_t neg_one = (Py_intptr_t) ((Py_intptr_t) 0 - (Py_intptr_t) 1), const_zero = (Py_intptr_t) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const Py_intptr_t neg_one = (Py_intptr_t) -1, const_zero = (Py_intptr_t) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -47959,6 +46624,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_DECREF(x); - return ival; - } -+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { -+ if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { -+ return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); -+#if PY_MAJOR_VERSION < 3 -+ } else if (likely(PyInt_CheckExact(o))) { -+ return PyInt_AS_LONG(o); -+#endif -+ } else { -+ Py_ssize_t ival; -+ PyObject *x; -+ x = PyNumber_Index(o); -+ if (!x) return -1; -+ ival = PyInt_AsLong(x); -+ Py_DECREF(x); -+ return ival; -+ } -+} - static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); - } -diff --git a/cylp/cy/CyCoinIndexedVector.cpp b/cylp/cy/CyCoinIndexedVector.cpp -index d2f3446..c247ad2 100644 ---- a/cylp/cy/CyCoinIndexedVector.cpp -+++ b/cylp/cy/CyCoinIndexedVector.cpp -@@ -1,14 +1,16 @@ --/* Generated by Cython 0.29.12 */ -+/* 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_12" --#define CYTHON_HEX_VERSION 0x001D0CF0 -+#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) -@@ -449,7 +516,15 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) - #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) -+ #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 - #else - #define CYTHON_PEP393_ENABLED 0 - #define PyUnicode_1BYTE_KIND 1 -@@ -498,8 +573,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact -+#ifndef PyObject_Unicode - #define PyObject_Unicode PyObject_Str - #endif -+#endif - #if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) - #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) -@@ -510,6 +587,13 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #ifndef PySet_CheckExact - #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) - #endif -+#if PY_VERSION_HEX >= 0x030900A4 -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) -+#else -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) -+#endif - #if CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) - #else -@@ -543,13 +627,13 @@ 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) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) -+ #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) - #else - #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) - #endif -@@ -590,11 +674,10 @@ static CYTHON_INLINE float __PYX_NAN() { - #define __Pyx_truncl truncl - #endif - -- -+#define __PYX_MARK_ERR_POS(f_index, lineno) \ -+ { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } - #define __PYX_ERR(f_index, lineno, Ln_error) \ --{ \ -- __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ --} -+ { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } - - #ifndef __PYX_EXTERN_C - #ifdef __cplusplus -@@ -706,6 +789,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 -@@ -819,7 +903,7 @@ static const char *__pyx_filename; - - static const char *__pyx_f[] = { - "stringsource", -- "cylp\\cy\\CyCoinIndexedVector.pyx", -+ "cylp/cy/CyCoinIndexedVector.pyx", - "type.pxd", - }; - -@@ -984,6 +1068,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()\ -@@ -991,6 +1076,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 */ -@@ -1075,6 +1161,17 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam - /* SetVTable.proto */ - static int __Pyx_SetVtable(PyObject *dict, void *vtable); - -+/* PyErrExceptionMatches.proto */ -+#if CYTHON_FAST_THREAD_STATE -+#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err) -+static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err); -+#else -+#define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err) -+#endif -+ -+/* PyObjectGetAttrStrNoError.proto */ -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); -+ - /* SetupReduce.proto */ - static int __Pyx_setup_reduce(PyObject* type_obj); - -@@ -1115,12 +1212,17 @@ 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); -+/* GCCDiagnostics.proto */ -+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -+#define __Pyx_HAS_GCC_DIAGNOSTIC -+#endif - - /* 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); - -@@ -1395,6 +1497,9 @@ static PyObject *__pyx_f_4cylp_2cy_19CyCoinIndexedVector_19CyCoinIndexedVector_r - PyObject *__pyx_t_3 = NULL; - PyObject *__pyx_t_4 = NULL; - int __pyx_t_5; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("reserve", 0); - /* Check if called by wrapper */ - if (unlikely(__pyx_skip_dispatch)) ; -@@ -1495,6 +1600,9 @@ static PyObject *__pyx_pf_4cylp_2cy_19CyCoinIndexedVector_19CyCoinIndexedVector_ - 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("reserve", 0); - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_4cylp_2cy_19CyCoinIndexedVector_19CyCoinIndexedVector_reserve(__pyx_v_self, __pyx_v_n, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 38, __pyx_L1_error) -@@ -1540,6 +1648,9 @@ static PyObject *__pyx_pf_4cylp_2cy_19CyCoinIndexedVector_19CyCoinIndexedVector_ - __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__getitem__", 0); - - /* "cylp/cy/CyCoinIndexedVector.pyx":42 -@@ -1601,6 +1712,9 @@ static int __pyx_pf_4cylp_2cy_19CyCoinIndexedVector_19CyCoinIndexedVector_8__set - int __pyx_r; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__setitem__", 0); - - /* "cylp/cy/CyCoinIndexedVector.pyx":45 -@@ -1754,6 +1868,9 @@ static PyObject *__pyx_f_4cylp_2cy_19CyCoinIndexedVector_19CyCoinIndexedVector_a - PyObject *__pyx_t_4 = NULL; - int __pyx_t_5; - PyObject *__pyx_t_6 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("assign", 0); - /* Check if called by wrapper */ - if (unlikely(__pyx_skip_dispatch)) ; -@@ -1872,6 +1989,9 @@ static char __pyx_doc_4cylp_2cy_19CyCoinIndexedVector_19CyCoinIndexedVector_14as - static PyObject *__pyx_pw_4cylp_2cy_19CyCoinIndexedVector_19CyCoinIndexedVector_15assign(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_ind = 0; - PyObject *__pyx_v_other = 0; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("assign (wrapper)", 0); -@@ -1932,6 +2052,9 @@ static PyObject *__pyx_pf_4cylp_2cy_19CyCoinIndexedVector_19CyCoinIndexedVector_ - 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("assign", 0); - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __pyx_f_4cylp_2cy_19CyCoinIndexedVector_19CyCoinIndexedVector_assign(__pyx_v_self, __pyx_v_ind, __pyx_v_other, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 58, __pyx_L1_error) -@@ -2086,6 +2209,9 @@ static PyObject *__pyx_pf_4cylp_2cy_19CyCoinIndexedVector_19CyCoinIndexedVector_ - 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("__get__", 0); - - /* "cylp/cy/CyCoinIndexedVector.pyx":71 -@@ -2146,6 +2272,9 @@ static int __pyx_pf_4cylp_2cy_19CyCoinIndexedVector_19CyCoinIndexedVector_9nElem - int __pyx_r; - __Pyx_RefNannyDeclarations - int __pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__set__", 0); - - /* "cylp/cy/CyCoinIndexedVector.pyx":74 -@@ -2201,6 +2330,9 @@ static PyObject *__pyx_pf_4cylp_2cy_19CyCoinIndexedVector_19CyCoinIndexedVector_ - 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("__get__", 0); - - /* "cylp/cy/CyCoinIndexedVector.pyx":78 -@@ -2257,6 +2389,9 @@ static PyObject *__pyx_pf_4cylp_2cy_19CyCoinIndexedVector_19CyCoinIndexedVector_ - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -2312,6 +2447,9 @@ static PyObject *__pyx_pf_4cylp_2cy_19CyCoinIndexedVector_19CyCoinIndexedVector_ - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -2458,7 +2596,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVect - sizeof(struct __pyx_obj_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -2511,6 +2654,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVect - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyMethodDef __pyx_methods[] = { -@@ -2656,6 +2805,9 @@ static int __Pyx_modinit_function_export_code(void) { - - static int __Pyx_modinit_type_init_code(void) { - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ - __pyx_vtabptr_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector = &__pyx_vtable_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector; -@@ -2683,6 +2835,9 @@ static int __Pyx_modinit_type_init_code(void) { - static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 9, __pyx_L1_error) -@@ -2721,17 +2876,19 @@ static int __Pyx_modinit_function_import_code(void) { - } - - --#if PY_MAJOR_VERSION < 3 --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC void --#else -+#ifndef CYTHON_NO_PYINIT_EXPORT - #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#elif PY_MAJOR_VERSION < 3 -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" void -+#else -+#define __Pyx_PyMODINIT_FUNC void - #endif - #else --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC PyObject * -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * - #else --#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#define __Pyx_PyMODINIT_FUNC PyObject * - #endif - #endif - -@@ -2813,6 +2970,9 @@ static CYTHON_SMALL_CODE int __pyx_pymod_exec_CyCoinIndexedVector(PyObject *__py - #endif - { - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { -@@ -2860,11 +3020,9 @@ if (!__Pyx_RefNanny) { - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ -- #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS -- #ifdef WITH_THREAD /* Python build with threading support? */ -+ #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - PyEval_InitThreads(); - #endif -- #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; -@@ -2901,15 +3059,15 @@ if (!__Pyx_RefNanny) { - } - #endif - /*--- Builtin init code ---*/ -- if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Constants init code ---*/ -- if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(); - (void)__Pyx_modinit_variable_export_code(); - (void)__Pyx_modinit_function_export_code(); -- if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; -- if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; -+ if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) -+ if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) - (void)__Pyx_modinit_variable_import_code(); - (void)__Pyx_modinit_function_import_code(); - /*--- Execution code ---*/ -@@ -3235,7 +3393,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, - #if CYTHON_COMPILING_IN_CPYTHON - static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; -- ternaryfunc call = func->ob_type->tp_call; -+ ternaryfunc call = Py_TYPE(func)->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -@@ -3322,7 +3480,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec - if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { - return __Pyx_PyObject_CallMethO(func, arg); - #if CYTHON_FAST_PYCCALL -- } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { -+ } else if (__Pyx_PyFastCFunction_Check(func)) { - return __Pyx_PyCFunction_FastCall(func, &arg, 1); - #endif - } -@@ -3376,7 +3534,7 @@ static int __Pyx_ParseOptionalKeywords( - } - name = first_kw_arg; - #if PY_MAJOR_VERSION < 3 -- if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { -+ if (likely(PyString_Check(key))) { - while (*name) { - if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) - && _PyString_Eq(**name, key)) { -@@ -3403,7 +3561,7 @@ static int __Pyx_ParseOptionalKeywords( - while (*name) { - int cmp = (**name == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 -- (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : -+ (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**name, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; -@@ -3419,7 +3577,7 @@ static int __Pyx_ParseOptionalKeywords( - while (argname != first_kw_arg) { - int cmp = (**argname == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 -- (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : -+ (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**argname, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; -@@ -3707,6 +3865,53 @@ static int __Pyx_SetVtable(PyObject *dict, void *vtable) { - return -1; - } - -+/* PyErrExceptionMatches */ -+#if CYTHON_FAST_THREAD_STATE -+static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { -+ Py_ssize_t i, n; -+ n = PyTuple_GET_SIZE(tuple); -+#if PY_MAJOR_VERSION >= 3 -+ for (i=0; icurexc_type; -+ if (exc_type == err) return 1; -+ if (unlikely(!exc_type)) return 0; -+ if (unlikely(PyTuple_Check(err))) -+ return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err); -+ return __Pyx_PyErr_GivenExceptionMatches(exc_type, err); -+} -+#endif -+ -+/* PyObjectGetAttrStrNoError */ -+static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { -+ __Pyx_PyThreadState_declare -+ __Pyx_PyThreadState_assign -+ if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) -+ __Pyx_PyErr_Clear(); -+} -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { -+ PyObject *result; -+#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 -+ PyTypeObject* tp = Py_TYPE(obj); -+ if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { -+ return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); -+ } -+#endif -+ result = __Pyx_PyObject_GetAttrStr(obj, attr_name); -+ if (unlikely(!result)) { -+ __Pyx_PyObject_GetAttrStr_ClearAttributeError(); -+ } -+ return result; -+} -+ - /* SetupReduce */ - static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { - int ret; -@@ -3734,43 +3939,51 @@ static int __Pyx_setup_reduce(PyObject* type_obj) { - PyObject *setstate = NULL; - PyObject *setstate_cython = NULL; - #if CYTHON_USE_PYTYPE_LOOKUP -- if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #else -- if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #endif - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #else -- object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #endif -- reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; -+ reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; - if (reduce_ex == object_reduce_ex) { - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #else -- object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #endif -- reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; -+ reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; - if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { -- reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; -+ reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); -+ if (likely(reduce_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (reduce == object_reduce || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); - if (!setstate) PyErr_Clear(); - if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { -- setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; -+ setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); -+ if (likely(setstate_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (!setstate || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - } - PyType_Modified((PyTypeObject*)type_obj); - } - } -- goto GOOD; --BAD: -+ goto __PYX_GOOD; -+__PYX_BAD: - if (!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); - ret = -1; --GOOD: -+__PYX_GOOD: - #if !CYTHON_USE_PYTYPE_LOOKUP - Py_XDECREF(object_reduce); - Py_XDECREF(object_reduce_ex); -@@ -3846,7 +4059,7 @@ static PyTypeObject *__Pyx_ImportType(PyObject *module, const char *module_name, - - /* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK --static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { -+static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) { - PyObject *use_cline; - PyObject *ptype, *pvalue, *ptraceback; - #if CYTHON_COMPILING_IN_CPYTHON -@@ -3876,7 +4089,7 @@ static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { - } - if (!use_cline) { - c_line = 0; -- PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); -+ (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; -@@ -3950,7 +4163,7 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - if (__pyx_code_cache.count == __pyx_code_cache.max_count) { - int new_max = __pyx_code_cache.max_count + 64; - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( -- __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); -+ __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); - if (unlikely(!entries)) { - return; - } -@@ -3973,30 +4186,31 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { -- PyCodeObject *py_code = 0; -- PyObject *py_srcfile = 0; -- PyObject *py_funcname = 0; -+ PyCodeObject *py_code = NULL; -+ PyObject *py_funcname = NULL; - #if PY_MAJOR_VERSION < 3 -+ PyObject *py_srcfile = NULL; - py_srcfile = PyString_FromString(filename); -- #else -- py_srcfile = PyUnicode_FromString(filename); -- #endif - if (!py_srcfile) goto bad; -+ #endif - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; -+ funcname = PyUnicode_AsUTF8(py_funcname); -+ if (!funcname) goto bad; - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); -- #else -- py_funcname = PyUnicode_FromString(funcname); -+ if (!py_funcname) goto bad; - #endif - } -- if (!py_funcname) goto bad; -+ #if PY_MAJOR_VERSION < 3 - py_code = __Pyx_PyCode_New( - 0, - 0, -@@ -4015,11 +4229,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); -- Py_DECREF(py_funcname); -+ #else -+ py_code = PyCode_NewEmpty(filename, funcname, py_line); -+ #endif -+ Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline - return py_code; - bad: -- Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); -+ #if PY_MAJOR_VERSION < 3 -+ Py_XDECREF(py_srcfile); -+ #endif - return NULL; - } - static void __Pyx_AddTraceback(const char *funcname, int c_line, -@@ -4073,40 +4292,16 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - return (target_type) value;\ - } - --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(int) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(int) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(int) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(int), -- little, !is_unsigned); -- } --} -- - /* CIntFromPy */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -4293,9 +4488,54 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - return (int) -1; - } - -+/* CIntToPy */ -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif -+ const int is_unsigned = neg_one > const_zero; -+ if (is_unsigned) { -+ if (sizeof(int) < sizeof(long)) { -+ return PyInt_FromLong((long) value); -+ } else if (sizeof(int) <= sizeof(unsigned long)) { -+ return PyLong_FromUnsignedLong((unsigned long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -+ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+#endif -+ } -+ } else { -+ if (sizeof(int) <= sizeof(long)) { -+ return PyInt_FromLong((long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -+ return PyLong_FromLongLong((PY_LONG_LONG) value); -+#endif -+ } -+ } -+ { -+ int one = 1; int little = (int)*(unsigned char *)&one; -+ unsigned char *bytes = (unsigned char *)&value; -+ return _PyLong_FromByteArray(bytes, sizeof(int), -+ little, !is_unsigned); -+ } -+} -+ - /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(long) < sizeof(long)) { -@@ -4326,7 +4566,14 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - - /* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -4877,6 +5124,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_DECREF(x); - return ival; - } -+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { -+ if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { -+ return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); -+#if PY_MAJOR_VERSION < 3 -+ } else if (likely(PyInt_CheckExact(o))) { -+ return PyInt_AS_LONG(o); -+#endif -+ } else { -+ Py_ssize_t ival; -+ PyObject *x; -+ x = PyNumber_Index(o); -+ if (!x) return -1; -+ ival = PyInt_AsLong(x); -+ Py_DECREF(x); -+ return ival; -+ } -+} - static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); - } -diff --git a/cylp/cy/CyCoinModel.cpp b/cylp/cy/CyCoinModel.cpp -index af39332..7fdaea8 100644 ---- a/cylp/cy/CyCoinModel.cpp -+++ b/cylp/cy/CyCoinModel.cpp -@@ -1,14 +1,16 @@ --/* Generated by Cython 0.29.12 */ -+/* 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_12" --#define CYTHON_HEX_VERSION 0x001D0CF0 -+#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) -@@ -449,7 +516,15 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) - #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) -+ #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 - #else - #define CYTHON_PEP393_ENABLED 0 - #define PyUnicode_1BYTE_KIND 1 -@@ -498,8 +573,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact -+#ifndef PyObject_Unicode - #define PyObject_Unicode PyObject_Str - #endif -+#endif - #if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) - #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) -@@ -510,6 +587,13 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #ifndef PySet_CheckExact - #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) - #endif -+#if PY_VERSION_HEX >= 0x030900A4 -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) -+#else -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) -+#endif - #if CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) - #else -@@ -543,13 +627,13 @@ 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) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) -+ #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) - #else - #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) - #endif -@@ -590,11 +674,10 @@ static CYTHON_INLINE float __PYX_NAN() { - #define __Pyx_truncl truncl - #endif - -- -+#define __PYX_MARK_ERR_POS(f_index, lineno) \ -+ { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } - #define __PYX_ERR(f_index, lineno, Ln_error) \ --{ \ -- __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ --} -+ { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } - - #ifndef __PYX_EXTERN_C - #ifdef __cplusplus -@@ -610,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 "CoinModel.hpp" - #ifdef _OPENMP - #include -@@ -708,6 +797,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 -@@ -843,7 +933,7 @@ static const char *__pyx_filename; - - static const char *__pyx_f[] = { - "stringsource", -- "cylp\\cy\\CyCoinModel.pyx", -+ "cylp/cy/CyCoinModel.pyx", - "__init__.pxd", - "type.pxd", - }; -@@ -884,7 +974,7 @@ typedef struct { - } __Pyx_BufFmt_Context; - - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":776 -+/* "../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 # <<<<<<<<<<<<<< -@@ -893,7 +983,7 @@ typedef struct { - */ - typedef npy_int8 __pyx_t_5numpy_int8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":777 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":691 - * - * ctypedef npy_int8 int8_t - * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< -@@ -902,7 +992,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; - */ - typedef npy_int16 __pyx_t_5numpy_int16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":778 -+/* "../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 # <<<<<<<<<<<<<< -@@ -911,7 +1001,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; - */ - typedef npy_int32 __pyx_t_5numpy_int32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":779 -+/* "../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 # <<<<<<<<<<<<<< -@@ -920,7 +1010,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; - */ - typedef npy_int64 __pyx_t_5numpy_int64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":783 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":697 - * #ctypedef npy_int128 int128_t - * - * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< -@@ -929,7 +1019,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; - */ - typedef npy_uint8 __pyx_t_5numpy_uint8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":784 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":698 - * - * ctypedef npy_uint8 uint8_t - * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< -@@ -938,7 +1028,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; - */ - typedef npy_uint16 __pyx_t_5numpy_uint16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":785 -+/* "../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 # <<<<<<<<<<<<<< -@@ -947,7 +1037,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; - */ - typedef npy_uint32 __pyx_t_5numpy_uint32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":786 -+/* "../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 # <<<<<<<<<<<<<< -@@ -956,7 +1046,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; - */ - typedef npy_uint64 __pyx_t_5numpy_uint64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":790 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":704 - * #ctypedef npy_uint128 uint128_t - * - * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< -@@ -965,7 +1055,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; - */ - typedef npy_float32 __pyx_t_5numpy_float32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":791 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":705 - * - * ctypedef npy_float32 float32_t - * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< -@@ -974,7 +1064,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; - */ - typedef npy_float64 __pyx_t_5numpy_float64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":800 -+/* "../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 # <<<<<<<<<<<<<< -@@ -983,7 +1073,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; - */ - typedef npy_long __pyx_t_5numpy_int_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":801 -+/* "../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 # <<<<<<<<<<<<<< -@@ -992,7 +1082,7 @@ typedef npy_long __pyx_t_5numpy_int_t; - */ - typedef npy_longlong __pyx_t_5numpy_long_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":802 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1001,7 +1091,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; - */ - typedef npy_longlong __pyx_t_5numpy_longlong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":804 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":718 - * ctypedef npy_longlong longlong_t - * - * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< -@@ -1010,7 +1100,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; - */ - typedef npy_ulong __pyx_t_5numpy_uint_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":805 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":719 - * - * ctypedef npy_ulong uint_t - * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< -@@ -1019,7 +1109,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":806 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1028,7 +1118,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":808 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":722 - * ctypedef npy_ulonglong ulonglong_t - * - * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< -@@ -1037,7 +1127,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - */ - typedef npy_intp __pyx_t_5numpy_intp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":809 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":723 - * - * ctypedef npy_intp intp_t - * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< -@@ -1046,7 +1136,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; - */ - typedef npy_uintp __pyx_t_5numpy_uintp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":811 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":725 - * ctypedef npy_uintp uintp_t - * - * ctypedef npy_double float_t # <<<<<<<<<<<<<< -@@ -1055,7 +1145,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; - */ - typedef npy_double __pyx_t_5numpy_float_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":812 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":726 - * - * ctypedef npy_double float_t - * ctypedef npy_double double_t # <<<<<<<<<<<<<< -@@ -1064,7 +1154,7 @@ typedef npy_double __pyx_t_5numpy_float_t; - */ - typedef npy_double __pyx_t_5numpy_double_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":813 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1100,7 +1190,7 @@ static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(do - /*--- Type declarations ---*/ - struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":815 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":729 - * ctypedef npy_longdouble longdouble_t - * - * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< -@@ -1109,7 +1199,7 @@ struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel; - */ - typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":816 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":730 - * - * ctypedef npy_cfloat cfloat_t - * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< -@@ -1118,7 +1208,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - */ - typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":817 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1127,7 +1217,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - */ - typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":819 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":733 - * ctypedef npy_clongdouble clongdouble_t - * - * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< -@@ -1327,67 +1417,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg - /* RaiseException.proto */ - static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); - --/* PyCFunctionFastCall.proto */ --#if CYTHON_FAST_PYCCALL --static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); --#else --#define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) --#endif -- --/* PyFunctionFastCall.proto */ --#if CYTHON_FAST_PYCALL --#define __Pyx_PyFunction_FastCall(func, args, nargs)\ -- __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) --#if 1 || PY_VERSION_HEX < 0x030600B1 --static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); --#else --#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) --#endif --#define __Pyx_BUILD_ASSERT_EXPR(cond)\ -- (sizeof(char [1 - 2*!(cond)]) - 1) --#ifndef Py_MEMBER_SIZE --#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) --#endif -- static size_t __pyx_pyframe_localsplus_offset = 0; -- #include "frameobject.h" -- #define __Pxy_PyFrame_Initialize_Offsets()\ -- ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ -- (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) -- #define __Pyx_PyFrame_GetLocalsplus(frame)\ -- (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) --#endif -- --/* PyObjectCallMethO.proto */ --#if CYTHON_COMPILING_IN_CPYTHON --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); --#endif -- --/* PyObjectCallOneArg.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); -- --/* 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); -@@ -1437,6 +1466,9 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam - /* SetVTable.proto */ - static int __Pyx_SetVtable(PyObject *dict, void *vtable); - -+/* PyObjectGetAttrStrNoError.proto */ -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); -+ - /* SetupReduce.proto */ - static int __Pyx_setup_reduce(PyObject* type_obj); - -@@ -1568,8 +1600,10 @@ static void __Pyx_CppExn2PyErr() { - } - #endif - --/* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); -+/* GCCDiagnostics.proto */ -+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -+#define __Pyx_HAS_GCC_DIAGNOSTIC -+#endif - - /* RealImag.proto */ - #if CYTHON_CCOMPLEX -@@ -1669,12 +1703,12 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int 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); - -@@ -1729,8 +1763,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' */ - -@@ -1744,9 +1787,6 @@ int __pyx_module_is_main_cylp__cy__CyCoinModel = 0; - - /* Implementation of 'cylp.cy.CyCoinModel' */ - static PyObject *__pyx_builtin_TypeError; --static PyObject *__pyx_builtin_ValueError; --static PyObject *__pyx_builtin_range; --static PyObject *__pyx_builtin_RuntimeError; - static PyObject *__pyx_builtin_ImportError; - static const char __pyx_k_ind[] = "ind"; - static const char __pyx_k_val[] = "val"; -@@ -1754,7 +1794,6 @@ static const char __pyx_k_main[] = "__main__"; - static const char __pyx_k_name[] = "__name__"; - static const char __pyx_k_rows[] = "rows"; - static const char __pyx_k_test[] = "__test__"; --static const char __pyx_k_range[] = "range"; - static const char __pyx_k_reduce[] = "__reduce__"; - static const char __pyx_k_varInd[] = "varInd"; - static const char __pyx_k_columns[] = "columns"; -@@ -1766,35 +1805,22 @@ static const char __pyx_k_setstate[] = "__setstate__"; - static const char __pyx_k_TypeError[] = "TypeError"; - static const char __pyx_k_objective[] = "objective"; - static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; --static const char __pyx_k_ValueError[] = "ValueError"; - static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; - static const char __pyx_k_CyCoinModel[] = "CyCoinModel"; - static const char __pyx_k_ImportError[] = "ImportError"; - static const char __pyx_k_columnLower[] = "columnLower"; - static const char __pyx_k_columnUpper[] = "columnUpper"; - static const char __pyx_k_numberInRow[] = "numberInRow"; --static const char __pyx_k_RuntimeError[] = "RuntimeError"; - static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; - static const char __pyx_k_numberInColumn[] = "numberInColumn"; - static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; - static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; --static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; - static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import"; --static const char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%d)"; --static const char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; --static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; --static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; - static const char __pyx_k_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_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; - static PyObject *__pyx_n_s_CyCoinModel; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; - static PyObject *__pyx_n_s_ImportError; --static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; --static PyObject *__pyx_n_s_RuntimeError; - static PyObject *__pyx_n_s_TypeError; --static PyObject *__pyx_n_s_ValueError; - static PyObject *__pyx_n_s_cline_in_traceback; - static PyObject *__pyx_n_s_columnLower; - static PyObject *__pyx_n_s_columnUpper; -@@ -1804,8 +1830,6 @@ static PyObject *__pyx_n_s_getstate; - static PyObject *__pyx_n_s_ind; - static PyObject *__pyx_n_s_main; - static PyObject *__pyx_n_s_name; --static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous; --static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou; - static PyObject *__pyx_kp_s_no_default___reduce___due_to_non; - static PyObject *__pyx_n_s_numberInColumn; - static PyObject *__pyx_n_s_numberInRow; -@@ -1813,7 +1837,6 @@ static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; - static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; - static PyObject *__pyx_n_s_objective; - static PyObject *__pyx_n_s_pyx_vtable; --static PyObject *__pyx_n_s_range; - static PyObject *__pyx_n_s_reduce; - static PyObject *__pyx_n_s_reduce_cython; - static PyObject *__pyx_n_s_reduce_ex; -@@ -1823,7 +1846,6 @@ static PyObject *__pyx_n_s_rows; - static PyObject *__pyx_n_s_setstate; - static PyObject *__pyx_n_s_setstate_cython; - static PyObject *__pyx_n_s_test; --static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; - static PyObject *__pyx_n_s_val; - static PyObject *__pyx_n_s_varInd; - static int __pyx_pf_4cylp_2cy_11CyCoinModel_11CyCoinModel___cinit__(struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel *__pyx_v_self); /* proto */ -@@ -1838,18 +1860,11 @@ static PyObject *__pyx_pf_4cylp_2cy_11CyCoinModel_11CyCoinModel_16getNumVariable - static PyObject *__pyx_pf_4cylp_2cy_11CyCoinModel_11CyCoinModel_18getNumConstraints(struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_11CyCoinModel_11CyCoinModel_20__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_11CyCoinModel_11CyCoinModel_22__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel *__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_11CyCoinModel_CyCoinModel(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ - static PyObject *__pyx_tuple_; - static PyObject *__pyx_tuple__2; - static PyObject *__pyx_tuple__3; - static PyObject *__pyx_tuple__4; --static PyObject *__pyx_tuple__5; --static PyObject *__pyx_tuple__6; --static PyObject *__pyx_tuple__7; --static PyObject *__pyx_tuple__8; --static PyObject *__pyx_tuple__9; - /* Late includes */ - - /* "cylp/cy/CyCoinModel.pyx":42 -@@ -1880,6 +1895,9 @@ static int __pyx_pf_4cylp_2cy_11CyCoinModel_11CyCoinModel___cinit__(struct __pyx - int __pyx_r; - __Pyx_RefNannyDeclarations - CoinModel *__pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 0); - - /* "cylp/cy/CyCoinModel.pyx":43 -@@ -1967,6 +1985,9 @@ static PyObject *__pyx_pw_4cylp_2cy_11CyCoinModel_11CyCoinModel_3addVariable(PyO - PyObject *__pyx_v_columnLower = 0; - PyObject *__pyx_v_columnUpper = 0; - PyObject *__pyx_v_objective = 0; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("addVariable (wrapper)", 0); -@@ -2080,6 +2101,9 @@ static PyObject *__pyx_pf_4cylp_2cy_11CyCoinModel_11CyCoinModel_2addVariable(str - double __pyx_t_2; - double __pyx_t_3; - double __pyx_t_4; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("addVariable", 0); - __pyx_pybuffer_rows.pybuffer.buf = NULL; - __pyx_pybuffer_rows.refcount = 0; -@@ -2218,6 +2242,9 @@ static PyObject *__pyx_pw_4cylp_2cy_11CyCoinModel_11CyCoinModel_5addConstraint(P - PyArrayObject *__pyx_v_elements = 0; - PyObject *__pyx_v_rowLower = 0; - PyObject *__pyx_v_rowUpper = 0; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("addConstraint (wrapper)", 0); -@@ -2320,6 +2347,9 @@ static PyObject *__pyx_pf_4cylp_2cy_11CyCoinModel_11CyCoinModel_4addConstraint(s - int __pyx_t_1; - double __pyx_t_2; - double __pyx_t_3; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("addConstraint", 0); - __pyx_pybuffer_columns.pybuffer.buf = NULL; - __pyx_pybuffer_columns.refcount = 0; -@@ -2413,6 +2443,9 @@ static char __pyx_doc_4cylp_2cy_11CyCoinModel_11CyCoinModel_6setVariableLower[] - static PyObject *__pyx_pw_4cylp_2cy_11CyCoinModel_11CyCoinModel_7setVariableLower(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_ind = 0; - PyObject *__pyx_v_val = 0; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("setVariableLower (wrapper)", 0); -@@ -2474,6 +2507,9 @@ static PyObject *__pyx_pf_4cylp_2cy_11CyCoinModel_11CyCoinModel_6setVariableLowe - __Pyx_RefNannyDeclarations - int __pyx_t_1; - double __pyx_t_2; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("setVariableLower", 0); - - /* "cylp/cy/CyCoinModel.pyx":124 -@@ -2521,6 +2557,9 @@ static char __pyx_doc_4cylp_2cy_11CyCoinModel_11CyCoinModel_8setVariableUpper[] - static PyObject *__pyx_pw_4cylp_2cy_11CyCoinModel_11CyCoinModel_9setVariableUpper(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_ind = 0; - PyObject *__pyx_v_val = 0; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("setVariableUpper (wrapper)", 0); -@@ -2582,6 +2621,9 @@ static PyObject *__pyx_pf_4cylp_2cy_11CyCoinModel_11CyCoinModel_8setVariableUppe - __Pyx_RefNannyDeclarations - int __pyx_t_1; - double __pyx_t_2; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("setVariableUpper", 0); - - /* "cylp/cy/CyCoinModel.pyx":127 -@@ -2629,6 +2671,9 @@ static char __pyx_doc_4cylp_2cy_11CyCoinModel_11CyCoinModel_10setConstraintLower - static PyObject *__pyx_pw_4cylp_2cy_11CyCoinModel_11CyCoinModel_11setConstraintLower(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_ind = 0; - PyObject *__pyx_v_val = 0; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("setConstraintLower (wrapper)", 0); -@@ -2690,6 +2735,9 @@ static PyObject *__pyx_pf_4cylp_2cy_11CyCoinModel_11CyCoinModel_10setConstraintL - __Pyx_RefNannyDeclarations - int __pyx_t_1; - double __pyx_t_2; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("setConstraintLower", 0); - - /* "cylp/cy/CyCoinModel.pyx":130 -@@ -2737,6 +2785,9 @@ static char __pyx_doc_4cylp_2cy_11CyCoinModel_11CyCoinModel_12setConstraintUpper - static PyObject *__pyx_pw_4cylp_2cy_11CyCoinModel_11CyCoinModel_13setConstraintUpper(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_ind = 0; - PyObject *__pyx_v_val = 0; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("setConstraintUpper (wrapper)", 0); -@@ -2798,6 +2849,9 @@ static PyObject *__pyx_pf_4cylp_2cy_11CyCoinModel_11CyCoinModel_12setConstraintU - __Pyx_RefNannyDeclarations - int __pyx_t_1; - double __pyx_t_2; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("setConstraintUpper", 0); - - /* "cylp/cy/CyCoinModel.pyx":133 -@@ -2845,6 +2899,9 @@ static char __pyx_doc_4cylp_2cy_11CyCoinModel_11CyCoinModel_14setObjective[] = " - static PyObject *__pyx_pw_4cylp_2cy_11CyCoinModel_11CyCoinModel_15setObjective(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_varInd = 0; - PyObject *__pyx_v_val = 0; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("setObjective (wrapper)", 0); -@@ -2906,6 +2963,9 @@ static PyObject *__pyx_pf_4cylp_2cy_11CyCoinModel_11CyCoinModel_14setObjective(s - __Pyx_RefNannyDeclarations - int __pyx_t_1; - double __pyx_t_2; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("setObjective", 0); - - /* "cylp/cy/CyCoinModel.pyx":136 -@@ -2965,6 +3025,9 @@ static PyObject *__pyx_pf_4cylp_2cy_11CyCoinModel_11CyCoinModel_16getNumVariable - 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("getNumVariables", 0); - - /* "cylp/cy/CyCoinModel.pyx":139 -@@ -3025,6 +3088,9 @@ static PyObject *__pyx_pf_4cylp_2cy_11CyCoinModel_11CyCoinModel_18getNumConstrai - 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("getNumConstraints", 0); - - /* "cylp/cy/CyCoinModel.pyx":142 -@@ -3081,6 +3147,9 @@ static PyObject *__pyx_pf_4cylp_2cy_11CyCoinModel_11CyCoinModel_20__reduce_cytho - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -3136,6 +3205,9 @@ static PyObject *__pyx_pf_4cylp_2cy_11CyCoinModel_11CyCoinModel_22__setstate_cyt - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -3166,863 +3238,7 @@ static PyObject *__pyx_pf_4cylp_2cy_11CyCoinModel_11CyCoinModel_22__setstate_cyt - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":258 -- * # experimental exception made for __getbuffer__ and __releasebuffer__ -- * # -- the details of this may change. -- * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< -- * # This implementation of getbuffer is geared towards Cython -- * # requirements, and does not yet fulfill the PEP. -- */ -- --/* Python wrapper */ --static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ --static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { -- int __pyx_r; -- __Pyx_RefNannyDeclarations -- __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); -- __pyx_r = __pyx_pf_5numpy_7ndarray___getbuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); -- -- /* function exit code */ -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { -- int __pyx_v_i; -- int __pyx_v_ndim; -- int __pyx_v_endian_detector; -- int __pyx_v_little_endian; -- int __pyx_v_t; -- char *__pyx_v_f; -- PyArray_Descr *__pyx_v_descr = 0; -- int __pyx_v_offset; -- int __pyx_r; -- __Pyx_RefNannyDeclarations -- int __pyx_t_1; -- int __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- int __pyx_t_4; -- int __pyx_t_5; -- int __pyx_t_6; -- PyArray_Descr *__pyx_t_7; -- PyObject *__pyx_t_8 = NULL; -- char *__pyx_t_9; -- if (__pyx_v_info == NULL) { -- PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); -- return -1; -- } -- __Pyx_RefNannySetupContext("__getbuffer__", 0); -- __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); -- __Pyx_GIVEREF(__pyx_v_info->obj); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- * -- */ -- __pyx_v_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) # <<<<<<<<<<<<<< -- * -- * ndim = PyArray_NDIM(self) -- */ -- __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":268 -- * cdef bint little_endian = ((&endian_detector)[0] != 0) -- * -- * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- */ -- __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":271 -- * -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< -- * raise ValueError(u"ndarray is not C contiguous") -- * -- */ -- __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_C_CONTIGUOUS) != 0)) != 0); -- __pyx_t_1 = __pyx_t_2; -- __pyx_L4_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":272 -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__3, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":274 -- * raise ValueError(u"ndarray is not C contiguous") -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") -- */ -- __pyx_t_2 = (((__pyx_v_flags & PyBUF_F_CONTIGUOUS) == PyBUF_F_CONTIGUOUS) != 0); -- if (__pyx_t_2) { -- } else { -- __pyx_t_1 = __pyx_t_2; -- goto __pyx_L7_bool_binop_done; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":275 -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< -- * raise ValueError(u"ndarray is not Fortran contiguous") -- * -- */ -- __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_F_CONTIGUOUS) != 0)) != 0); -- __pyx_t_1 = __pyx_t_2; -- __pyx_L7_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":276 -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__4, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":278 -- * raise ValueError(u"ndarray is not Fortran contiguous") -- * -- * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< -- * info.ndim = ndim -- * if sizeof(npy_intp) != sizeof(Py_ssize_t): -- */ -- __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":279 -- * -- * info.buf = PyArray_DATA(self) -- * info.ndim = ndim # <<<<<<<<<<<<<< -- * if sizeof(npy_intp) != sizeof(Py_ssize_t): -- * # Allocate new buffer for strides and shape info. -- */ -- __pyx_v_info->ndim = __pyx_v_ndim; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)))); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- */ -- (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- /*else*/ { -- __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- */ -- __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(__pyx_v_self)); -- } -- __pyx_L9:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- * -- */ -- __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":293 -- * info.suboffsets = NULL -- * info.itemsize = PyArray_ITEMSIZE(self) -- * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< -- * -- * cdef int t -- */ -- __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":297 -- * cdef int t -- * cdef char* f = NULL -- * cdef dtype descr = PyArray_DESCR(self) # <<<<<<<<<<<<<< -- * cdef int offset -- * -- */ -- __pyx_t_7 = PyArray_DESCR(__pyx_v_self); -- __pyx_t_3 = ((PyObject *)__pyx_t_7); -- __Pyx_INCREF(__pyx_t_3); -- __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":300 -- * cdef int offset -- * -- * info.obj = self # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(descr): -- */ -- __Pyx_INCREF(((PyObject *)__pyx_v_self)); -- __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); -- __Pyx_GOTREF(__pyx_v_info->obj); -- __Pyx_DECREF(__pyx_v_info->obj); -- __pyx_v_info->obj = ((PyObject *)__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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__5, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]) = '^'; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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'; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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): -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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(); --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735 - * ctypedef npy_cdouble complex_t - * - * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< -@@ -4034,9 +3250,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":822 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":736 - * - * cdef inline object PyArray_MultiIterNew1(a): - * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< -@@ -4044,13 +3263,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - * 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, 822, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735 - * ctypedef npy_cdouble complex_t - * - * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< -@@ -4069,7 +3288,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -+/* "../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): # <<<<<<<<<<<<<< -@@ -4081,9 +3300,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":825 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":739 - * - * cdef inline object PyArray_MultiIterNew2(a, b): - * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< -@@ -4091,13 +3313,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - * 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, 825, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -4116,7 +3338,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741 - * return PyArray_MultiIterNew(2, a, b) - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< -@@ -4128,9 +3350,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":828 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":742 - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): - * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< -@@ -4138,13 +3363,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - * 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, 828, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741 - * return PyArray_MultiIterNew(2, a, b) - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< -@@ -4163,7 +3388,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -+/* "../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): # <<<<<<<<<<<<<< -@@ -4175,9 +3400,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":831 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -4185,13 +3413,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - * 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, 831, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -4210,7 +3438,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 - * return PyArray_MultiIterNew(4, a, b, c, d) - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -@@ -4222,9 +3450,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":834 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -4232,13 +3463,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - * 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, 834, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 - * return PyArray_MultiIterNew(4, a, b, c, d) - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -@@ -4257,7 +3488,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -@@ -4271,7 +3502,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - int __pyx_t_1; - __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -@@ -4281,7 +3512,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); - if (__pyx_t_1) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":838 -+ /* "../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 # <<<<<<<<<<<<<< -@@ -4293,7 +3524,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -@@ -4302,12 +3533,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":840 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":754 - * 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); -@@ -4316,7 +3547,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - goto __pyx_L0; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -@@ -4331,754 +3562,8 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -- * -- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< -- * # Recursive utility function used in __getbuffer__ to get format -- * # string. The new location in the format string is returned. -- */ -- --static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) { -- PyArray_Descr *__pyx_v_child = 0; -- int __pyx_v_endian_detector; -- int __pyx_v_little_endian; -- PyObject *__pyx_v_fields = 0; -- PyObject *__pyx_v_childname = NULL; -- PyObject *__pyx_v_new_offset = NULL; -- PyObject *__pyx_v_t = NULL; -- char *__pyx_r; -- __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- Py_ssize_t __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- PyObject *__pyx_t_4 = NULL; -- int __pyx_t_5; -- int __pyx_t_6; -- int __pyx_t_7; -- long __pyx_t_8; -- char *__pyx_t_9; -- __Pyx_RefNannySetupContext("_util_dtypestring", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":848 -- * 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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- if (unlikely(__pyx_v_descr->names == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -- __PYX_ERR(2, 851, __pyx_L1_error) -- } -- __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; -- for (;;) { -- if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; -- #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, 851, __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, 851, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- #endif -- __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":852 -- * -- * for childname in descr.names: -- * fields = descr.fields[childname] # <<<<<<<<<<<<<< -- * child, new_offset = fields -- * -- */ -- if (unlikely(__pyx_v_descr->fields == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -- __PYX_ERR(2, 852, __pyx_L1_error) -- } -- __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":853 -- * 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, 853, __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, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- #endif -- } else { -- __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 853, __pyx_L1_error) -- } -- if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3)); -- __pyx_t_3 = 0; -- __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 856, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0); -- if (!__pyx_t_7) { -- goto __pyx_L8_next_or; -- } else { -- } -- __pyx_t_7 = (__pyx_v_little_endian != 0); -- if (!__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_L8_next_or:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":859 -- * -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< -- * raise ValueError(u"Non-native byte order not supported") -- * # One could encode it in the format string and have Cython -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0); -- if (__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0); -- __pyx_t_6 = __pyx_t_7; -- __pyx_L7_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":860 -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * # One could encode it in the format string and have Cython -- * # complain instead, BUT: < and > in format strings also imply -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 860, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 860, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":870 -- * -- * # Output padding bytes -- * while offset[0] < new_offset: # <<<<<<<<<<<<<< -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- */ -- while (1) { -- __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (!__pyx_t_6) break; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":871 -- * # Output padding bytes -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< -- * f += 1 -- * offset[0] += 1 -- */ -- (__pyx_v_f[0]) = 0x78; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":872 -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte -- * f += 1 # <<<<<<<<<<<<<< -- * offset[0] += 1 -- * -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":873 -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- * offset[0] += 1 # <<<<<<<<<<<<<< -- * -- * offset[0] += child.itemsize -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":875 -- * offset[0] += 1 -- * -- * offset[0] += child.itemsize # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(child): -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); -- if (__pyx_t_6) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":878 -- * -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num # <<<<<<<<<<<<<< -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") -- */ -- __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 878, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 880, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":883 -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 98; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":884 -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":885 -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x68; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":886 -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 72; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":887 -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x69; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":888 -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 73; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":889 -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x6C; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":890 -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 76; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":891 -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x71; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":892 -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 81; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":893 -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":894 -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x64; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":895 -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x67; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":896 -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x66; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":897 -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x64; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":898 -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x67; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":899 -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (likely(__pyx_t_6)) { -- (__pyx_v_f[0]) = 79; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":901 -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< -- * f += 1 -- * else: -- */ -- /*else*/ { -- __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 901, __pyx_L1_error) -- } -- __pyx_L15:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":902 -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- * f += 1 # <<<<<<<<<<<<<< -- * else: -- * # Cython ignores struct boundary information ("T{...}"), -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- goto __pyx_L13; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":906 -- * # Cython ignores struct boundary information ("T{...}"), -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< -- * return f -- * -- */ -- /*else*/ { -- __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(2, 906, __pyx_L1_error) -- __pyx_v_f = __pyx_t_9; -- } -- __pyx_L13:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- } -- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":907 -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) -- * return f # <<<<<<<<<<<<<< -- * -- * -- */ -- __pyx_r = __pyx_v_f; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -- * -- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< -- * # Recursive utility function used in __getbuffer__ to get format -- * # string. The new location in the format string is returned. -- */ -- -- /* function exit code */ -- __pyx_L1_error:; -- __Pyx_XDECREF(__pyx_t_1); -- __Pyx_XDECREF(__pyx_t_3); -- __Pyx_XDECREF(__pyx_t_4); -- __Pyx_AddTraceback("numpy._util_dtypestring", __pyx_clineno, __pyx_lineno, __pyx_filename); -- __pyx_r = NULL; -- __pyx_L0:; -- __Pyx_XDECREF((PyObject *)__pyx_v_child); -- __Pyx_XDECREF(__pyx_v_fields); -- __Pyx_XDECREF(__pyx_v_childname); -- __Pyx_XDECREF(__pyx_v_new_offset); -- __Pyx_XDECREF(__pyx_v_t); -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -- * int _import_umath() except -1 -+/* "../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): # <<<<<<<<<<<<<< - * Py_INCREF(base) # important to do this before stealing the reference below! -@@ -5089,7 +3574,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1023 -+ /* "../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! # <<<<<<<<<<<<<< -@@ -5098,7 +3583,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - Py_INCREF(__pyx_v_base); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1024 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -5107,7 +3592,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -5119,7 +3604,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyFinishContext(); - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+/* "../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): # <<<<<<<<<<<<<< -@@ -5134,7 +3619,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - int __pyx_t_1; - __Pyx_RefNannySetupContext("get_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1027 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -5143,7 +3628,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - __pyx_v_base = PyArray_BASE(__pyx_v_arr); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -5153,7 +3638,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) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1029 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":936 - * base = PyArray_BASE(arr) - * if base is NULL: - * return None # <<<<<<<<<<<<<< -@@ -5164,7 +3649,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -5173,7 +3658,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1030 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":937 - * if base is NULL: - * return None - * return base # <<<<<<<<<<<<<< -@@ -5185,7 +3670,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = ((PyObject *)__pyx_v_base); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -5200,12 +3685,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { -@@ -5219,13 +3704,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_array", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - { -@@ -5237,20 +3725,20 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1036 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":943 - * cdef inline int import_array() except -1: - * try: -- * _import_array() # <<<<<<<<<<<<<< -+ * __pyx_import_array() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") - */ -- __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1036, __pyx_L3_error) -+ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 943, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - } -@@ -5260,9 +3748,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1037 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":944 - * try: -- * _import_array() -+ * __pyx_import_array() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.multiarray failed to import") - * -@@ -5270,32 +3758,32 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1037, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 944, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 945, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __PYX_ERR(2, 945, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - __Pyx_XGIVEREF(__pyx_t_1); -@@ -5306,12 +3794,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - /* function exit code */ -@@ -5329,7 +3817,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -5348,9 +3836,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_umath", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5366,16 +3857,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1042 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":949 - * cdef inline int import_umath() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1042, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 949, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5389,7 +3880,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1043 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":950 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< -@@ -5399,28 +3890,28 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1043, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 950, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 951, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __PYX_ERR(2, 951, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5435,7 +3926,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -5458,7 +3949,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -5477,9 +3968,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_ufunc", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5495,16 +3989,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1048 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":955 - * cdef inline int import_ufunc() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1048, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 955, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5518,35 +4012,38 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1049 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":956 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.umath failed to import") -+ * - */ - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1049, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 956, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1050 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":957 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< -+ * -+ * cdef extern from *: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 957, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __PYX_ERR(2, 957, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5561,7 +4058,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -5583,6 +4080,180 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_RefNannyFinishContext(); - return __pyx_r; - } -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_timedelta64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":979 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_datetime64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":994 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { -+ npy_datetime __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1004 -+ * also needed. That can be found using `get_datetime64_unit`. -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { -+ npy_timedelta __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1011 -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { -+ NPY_DATETIMEUNIT __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1018 -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ * """ -+ * return (obj).obmeta.base # <<<<<<<<<<<<<< -+ */ -+ __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} - static struct __pyx_vtabstruct_4cylp_2cy_11CyCoinModel_CyCoinModel __pyx_vtable_4cylp_2cy_11CyCoinModel_CyCoinModel; - - static PyObject *__pyx_tp_new_4cylp_2cy_11CyCoinModel_CyCoinModel(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { -@@ -5633,7 +4304,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_11CyCoinModel_CyCoinModel = { - sizeof(struct __pyx_obj_4cylp_2cy_11CyCoinModel_CyCoinModel), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_11CyCoinModel_CyCoinModel, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -5686,6 +4362,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_11CyCoinModel_CyCoinModel = { - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyMethodDef __pyx_methods[] = { -@@ -5735,13 +4417,8 @@ static struct PyModuleDef __pyx_moduledef = { - - static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_CyCoinModel, __pyx_k_CyCoinModel, sizeof(__pyx_k_CyCoinModel), 0, 0, 1, 1}, -- {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, -- {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, - {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, -- {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, -- {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, -- {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, - {&__pyx_n_s_columnLower, __pyx_k_columnLower, sizeof(__pyx_k_columnLower), 0, 0, 1, 1}, - {&__pyx_n_s_columnUpper, __pyx_k_columnUpper, sizeof(__pyx_k_columnUpper), 0, 0, 1, 1}, -@@ -5751,8 +4428,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_ind, __pyx_k_ind, sizeof(__pyx_k_ind), 0, 0, 1, 1}, - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, -- {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, -- {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, - {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0}, - {&__pyx_n_s_numberInColumn, __pyx_k_numberInColumn, sizeof(__pyx_k_numberInColumn), 0, 0, 1, 1}, - {&__pyx_n_s_numberInRow, __pyx_k_numberInRow, sizeof(__pyx_k_numberInRow), 0, 0, 1, 1}, -@@ -5760,7 +4435,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0}, - {&__pyx_n_s_objective, __pyx_k_objective, sizeof(__pyx_k_objective), 0, 0, 1, 1}, - {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, -- {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, -@@ -5770,17 +4444,13 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, - {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, -- {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, - {&__pyx_n_s_val, __pyx_k_val, sizeof(__pyx_k_val), 0, 0, 1, 1}, - {&__pyx_n_s_varInd, __pyx_k_varInd, sizeof(__pyx_k_varInd), 0, 0, 1, 1}, - {0, 0, 0, 0, 0, 0, 0} - }; - static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 2, __pyx_L1_error) -- __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(2, 272, __pyx_L1_error) -- __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(2, 285, __pyx_L1_error) -- __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(2, 856, __pyx_L1_error) -- __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 1038, __pyx_L1_error) -+ __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 945, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -@@ -5790,101 +4460,46 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - -- /* "(tree fragment)":2 -- * def __reduce_cython__(self): -- * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< -- * def __setstate_cython__(self, __pyx_state): -- * raise TypeError("no default __reduce__ due to non-trivial __cinit__") -- */ -- __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 2, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple_); -- __Pyx_GIVEREF(__pyx_tuple_); -- -- /* "(tree fragment)":4 -- * raise TypeError("no default __reduce__ due to non-trivial __cinit__") -- * def __setstate_cython__(self, __pyx_state): -- * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< -- */ -- __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(0, 4, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__2); -- __Pyx_GIVEREF(__pyx_tuple__2); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":272 -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(2, 272, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__3); -- __Pyx_GIVEREF(__pyx_tuple__3); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":276 -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 276, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__4); -- __Pyx_GIVEREF(__pyx_tuple__4); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":306 -- * if ((descr.byteorder == c'>' and little_endian) or -- * (descr.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * if t == NPY_BYTE: f = "b" -- * elif t == NPY_UBYTE: f = "B" -- */ -- __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(2, 306, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__5); -- __Pyx_GIVEREF(__pyx_tuple__5); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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 -+ /* "(tree fragment)":2 -+ * def __reduce_cython__(self): -+ * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< -+ * def __setstate_cython__(self, __pyx_state): -+ * raise TypeError("no default __reduce__ due to non-trivial __cinit__") - */ -- __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__6); -- __Pyx_GIVEREF(__pyx_tuple__6); -+ __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 2, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple_); -+ __Pyx_GIVEREF(__pyx_tuple_); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -+ /* "(tree fragment)":4 -+ * raise TypeError("no default __reduce__ due to non-trivial __cinit__") -+ * def __setstate_cython__(self, __pyx_state): -+ * raise TypeError("no default __reduce__ due to non-trivial __cinit__") # <<<<<<<<<<<<<< - */ -- __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__7); -- __Pyx_GIVEREF(__pyx_tuple__7); -+ __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_s_no_default___reduce___due_to_non); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(0, 4, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__2); -+ __Pyx_GIVEREF(__pyx_tuple__2); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(2, 1038, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__8); -- __Pyx_GIVEREF(__pyx_tuple__8); -+ __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(2, 945, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__3); -+ __Pyx_GIVEREF(__pyx_tuple__3); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(2, 1044, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__9); -- __Pyx_GIVEREF(__pyx_tuple__9); -+ __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 951, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__4); -+ __Pyx_GIVEREF(__pyx_tuple__4); - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; -@@ -5933,6 +4548,9 @@ static int __Pyx_modinit_function_export_code(void) { - - static int __Pyx_modinit_type_init_code(void) { - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ - __pyx_vtabptr_4cylp_2cy_11CyCoinModel_CyCoinModel = &__pyx_vtable_4cylp_2cy_11CyCoinModel_CyCoinModel; -@@ -5959,6 +4577,9 @@ static int __Pyx_modinit_type_init_code(void) { - static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error) -@@ -5972,18 +4593,38 @@ static int __Pyx_modinit_type_import_code(void) { - __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(3, 9, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 206, __pyx_L1_error) -+ __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 206, __pyx_L1_error) -- __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 229, __pyx_L1_error) -- __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 233, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 200, __pyx_L1_error) -+ __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 223, __pyx_L1_error) -+ __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 227, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 242, __pyx_L1_error) -- __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 918, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 239, __pyx_L1_error) -+ __pyx_ptype_5numpy_generic = __Pyx_ImportType(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 771, __pyx_L1_error) -+ __pyx_ptype_5numpy_number = __Pyx_ImportType(__pyx_t_1, "numpy", "number", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 773, __pyx_L1_error) -+ __pyx_ptype_5numpy_integer = __Pyx_ImportType(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 775, __pyx_L1_error) -+ __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 777, __pyx_L1_error) -+ __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 779, __pyx_L1_error) -+ __pyx_ptype_5numpy_inexact = __Pyx_ImportType(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 781, __pyx_L1_error) -+ __pyx_ptype_5numpy_floating = __Pyx_ImportType(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 783, __pyx_L1_error) -+ __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 785, __pyx_L1_error) -+ __pyx_ptype_5numpy_flexible = __Pyx_ImportType(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 787, __pyx_L1_error) -+ __pyx_ptype_5numpy_character = __Pyx_ImportType(__pyx_t_1, "numpy", "character", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 789, __pyx_L1_error) -+ __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 827, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_RefNannyFinishContext(); - return 0; -@@ -6010,17 +4651,19 @@ static int __Pyx_modinit_function_import_code(void) { - } - - --#if PY_MAJOR_VERSION < 3 --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC void --#else -+#ifndef CYTHON_NO_PYINIT_EXPORT - #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#elif PY_MAJOR_VERSION < 3 -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" void -+#else -+#define __Pyx_PyMODINIT_FUNC void - #endif - #else --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC PyObject * -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * - #else --#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#define __Pyx_PyMODINIT_FUNC PyObject * - #endif - #endif - -@@ -6102,6 +4745,9 @@ static CYTHON_SMALL_CODE int __pyx_pymod_exec_CyCoinModel(PyObject *__pyx_pyinit - #endif - { - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { -@@ -6149,11 +4795,9 @@ if (!__Pyx_RefNanny) { - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ -- #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS -- #ifdef WITH_THREAD /* Python build with threading support? */ -+ #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - PyEval_InitThreads(); - #endif -- #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; -@@ -6190,15 +4834,15 @@ if (!__Pyx_RefNanny) { - } - #endif - /*--- Builtin init code ---*/ -- if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Constants init code ---*/ -- if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(); - (void)__Pyx_modinit_variable_export_code(); - (void)__Pyx_modinit_function_export_code(); -- if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; -- if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; -+ if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) -+ if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) - (void)__Pyx_modinit_variable_import_code(); - (void)__Pyx_modinit_function_import_code(); - /*--- Execution code ---*/ -@@ -6216,12 +4860,12 @@ if (!__Pyx_RefNanny) { - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -- * raise ImportError("numpy.core.umath failed to import") -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -- * try: -- * _import_umath() -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ - - /*--- Wrapped vars code ---*/ -@@ -6396,7 +5040,7 @@ static int __Pyx_ParseOptionalKeywords( - } - name = first_kw_arg; - #if PY_MAJOR_VERSION < 3 -- if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { -+ if (likely(PyString_Check(key))) { - while (*name) { - if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) - && _PyString_Eq(**name, key)) { -@@ -6423,7 +5067,7 @@ static int __Pyx_ParseOptionalKeywords( - while (*name) { - int cmp = (**name == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 -- (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : -+ (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**name, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; -@@ -6439,7 +5083,7 @@ static int __Pyx_ParseOptionalKeywords( - while (argname != first_kw_arg) { - int cmp = (**argname == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 -- (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : -+ (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**argname, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; -@@ -6564,6 +5208,7 @@ static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) { - } - static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) { - switch (ch) { -+ case '?': return "'bool'"; - case 'c': return "'char'"; - case 'b': return "'signed char'"; - case 'B': return "'unsigned char'"; -@@ -6606,7 +5251,7 @@ static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) { - } - static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) { - switch (ch) { -- case 'c': case 'b': case 'B': case 's': case 'p': return 1; -+ case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; - case 'h': case 'H': return sizeof(short); - case 'i': case 'I': return sizeof(int); - case 'l': case 'L': return sizeof(long); -@@ -6690,7 +5335,7 @@ static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) { - case 'b': case 'h': case 'i': - case 'l': case 'q': case 's': case 'p': - return 'I'; -- case 'B': case 'H': case 'I': case 'L': case 'Q': -+ case '?': case 'B': case 'H': case 'I': case 'L': case 'Q': - return 'U'; - case 'f': case 'd': case 'g': - return (is_complex ? 'C' : 'R'); -@@ -6834,9 +5479,7 @@ static PyObject * - __pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp) - { - const char *ts = *tsp; -- int i = 0, number; -- int ndim = ctx->head->field->type->ndim; --; -+ int i = 0, number, ndim; - ++ts; - if (ctx->new_count != 1) { - PyErr_SetString(PyExc_ValueError, -@@ -6844,6 +5487,7 @@ __pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp) - return NULL; - } - if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; -+ ndim = ctx->head->field->type->ndim; - while (*ts && *ts != ')') { - switch (*ts) { - case ' ': case '\f': case '\r': case '\n': case '\t': case '\v': continue; -@@ -6969,12 +5613,12 @@ static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const cha - return NULL; - } - CYTHON_FALLTHROUGH; -- case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I': -+ case '?': case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I': - case 'l': case 'L': case 'q': case 'Q': - case 'f': case 'd': case 'g': - case 'O': case 'p': -- if (ctx->enc_type == *ts && got_Z == ctx->is_complex && -- ctx->enc_packmode == ctx->new_packmode) { -+ if ((ctx->enc_type == *ts) && (got_Z == ctx->is_complex) && -+ (ctx->enc_packmode == ctx->new_packmode) && (!ctx->is_valid_array)) { - ctx->enc_count += ctx->new_count; - ctx->new_count = 1; - got_Z = 0; -@@ -7085,7 +5729,7 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - #if CYTHON_COMPILING_IN_CPYTHON - static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; -- ternaryfunc call = func->ob_type->tp_call; -+ ternaryfunc call = Py_TYPE(func)->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -@@ -7260,263 +5904,6 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject - } - #endif - --/* PyCFunctionFastCall */ -- #if CYTHON_FAST_PYCCALL --static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { -- PyCFunctionObject *func = (PyCFunctionObject*)func_obj; -- PyCFunction meth = PyCFunction_GET_FUNCTION(func); -- PyObject *self = PyCFunction_GET_SELF(func); -- int flags = PyCFunction_GET_FLAGS(func); -- assert(PyCFunction_Check(func)); -- assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); -- assert(nargs >= 0); -- assert(nargs == 0 || args != NULL); -- /* _PyCFunction_FastCallDict() must not be called with an exception set, -- because it may clear it (directly or indirectly) and so the -- caller loses its exception */ -- assert(!PyErr_Occurred()); -- if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { -- return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); -- } else { -- return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); -- } --} --#endif -- --/* PyFunctionFastCall */ -- #if CYTHON_FAST_PYCALL --static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, -- PyObject *globals) { -- PyFrameObject *f; -- PyThreadState *tstate = __Pyx_PyThreadState_Current; -- PyObject **fastlocals; -- Py_ssize_t i; -- PyObject *result; -- assert(globals != NULL); -- /* XXX Perhaps we should create a specialized -- PyFrame_New() that doesn't take locals, but does -- take builtins without sanity checking them. -- */ -- assert(tstate != NULL); -- f = PyFrame_New(tstate, co, globals, NULL); -- if (f == NULL) { -- return NULL; -- } -- fastlocals = __Pyx_PyFrame_GetLocalsplus(f); -- for (i = 0; i < na; i++) { -- Py_INCREF(*args); -- fastlocals[i] = *args++; -- } -- result = PyEval_EvalFrameEx(f,0); -- ++tstate->recursion_depth; -- Py_DECREF(f); -- --tstate->recursion_depth; -- return result; --} --#if 1 || PY_VERSION_HEX < 0x030600B1 --static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { -- PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); -- PyObject *globals = PyFunction_GET_GLOBALS(func); -- PyObject *argdefs = PyFunction_GET_DEFAULTS(func); -- PyObject *closure; --#if PY_MAJOR_VERSION >= 3 -- PyObject *kwdefs; --#endif -- PyObject *kwtuple, **k; -- PyObject **d; -- Py_ssize_t nd; -- Py_ssize_t nk; -- PyObject *result; -- assert(kwargs == NULL || PyDict_Check(kwargs)); -- nk = kwargs ? PyDict_Size(kwargs) : 0; -- if (Py_EnterRecursiveCall((char*)" while calling a Python object")) { -- return NULL; -- } -- if ( --#if PY_MAJOR_VERSION >= 3 -- co->co_kwonlyargcount == 0 && --#endif -- likely(kwargs == NULL || nk == 0) && -- co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { -- if (argdefs == NULL && co->co_argcount == nargs) { -- result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); -- goto done; -- } -- else if (nargs == 0 && argdefs != NULL -- && co->co_argcount == Py_SIZE(argdefs)) { -- /* function called with no arguments, but all parameters have -- a default value: use default values as arguments .*/ -- args = &PyTuple_GET_ITEM(argdefs, 0); -- result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); -- goto done; -- } -- } -- if (kwargs != NULL) { -- Py_ssize_t pos, i; -- kwtuple = PyTuple_New(2 * nk); -- if (kwtuple == NULL) { -- result = NULL; -- goto done; -- } -- k = &PyTuple_GET_ITEM(kwtuple, 0); -- pos = i = 0; -- while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { -- Py_INCREF(k[i]); -- Py_INCREF(k[i+1]); -- i += 2; -- } -- nk = i / 2; -- } -- else { -- kwtuple = NULL; -- k = NULL; -- } -- closure = PyFunction_GET_CLOSURE(func); --#if PY_MAJOR_VERSION >= 3 -- kwdefs = PyFunction_GET_KW_DEFAULTS(func); --#endif -- if (argdefs != NULL) { -- d = &PyTuple_GET_ITEM(argdefs, 0); -- nd = Py_SIZE(argdefs); -- } -- else { -- d = NULL; -- nd = 0; -- } --#if PY_MAJOR_VERSION >= 3 -- result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, -- args, (int)nargs, -- k, (int)nk, -- d, (int)nd, kwdefs, closure); --#else -- result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, -- args, (int)nargs, -- k, (int)nk, -- d, (int)nd, closure); --#endif -- Py_XDECREF(kwtuple); --done: -- Py_LeaveRecursiveCall(); -- return result; --} --#endif --#endif -- --/* PyObjectCallMethO */ -- #if CYTHON_COMPILING_IN_CPYTHON --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { -- PyObject *self, *result; -- PyCFunction cfunc; -- cfunc = PyCFunction_GET_FUNCTION(func); -- self = PyCFunction_GET_SELF(func); -- if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -- return NULL; -- result = cfunc(self, arg); -- Py_LeaveRecursiveCall(); -- if (unlikely(!result) && unlikely(!PyErr_Occurred())) { -- PyErr_SetString( -- PyExc_SystemError, -- "NULL result without error in PyObject_Call"); -- } -- return result; --} --#endif -- --/* PyObjectCallOneArg */ -- #if CYTHON_COMPILING_IN_CPYTHON --static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { -- PyObject *result; -- PyObject *args = PyTuple_New(1); -- if (unlikely(!args)) return NULL; -- Py_INCREF(arg); -- PyTuple_SET_ITEM(args, 0, arg); -- result = __Pyx_PyObject_Call(func, args, NULL); -- Py_DECREF(args); -- return result; --} --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { --#if CYTHON_FAST_PYCALL -- if (PyFunction_Check(func)) { -- return __Pyx_PyFunction_FastCall(func, &arg, 1); -- } --#endif -- if (likely(PyCFunction_Check(func))) { -- if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { -- return __Pyx_PyObject_CallMethO(func, arg); --#if CYTHON_FAST_PYCCALL -- } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { -- return __Pyx_PyCFunction_FastCall(func, &arg, 1); --#endif -- } -- } -- return __Pyx__PyObject_CallOneArg(func, arg); --} --#else --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { -- PyObject *result; -- PyObject *args = PyTuple_Pack(1, arg); -- if (unlikely(!args)) return NULL; -- result = __Pyx_PyObject_Call(func, args, NULL); -- Py_DECREF(args); -- return result; --} --#endif -- --/* DictGetItem */ -- #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY --static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { -- PyObject *value; -- value = PyDict_GetItemWithError(d, key); -- if (unlikely(!value)) { -- if (!PyErr_Occurred()) { -- if (unlikely(PyTuple_Check(key))) { -- PyObject* args = PyTuple_Pack(1, key); -- if (likely(args)) { -- PyErr_SetObject(PyExc_KeyError, args); -- Py_DECREF(args); -- } -- } else { -- PyErr_SetObject(PyExc_KeyError, key); -- } -- } -- return NULL; -- } -- Py_INCREF(value); -- return value; --} --#endif -- --/* RaiseTooManyValuesToUnpack */ -- static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { -- PyErr_Format(PyExc_ValueError, -- "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); --} -- --/* RaiseNeedMoreValuesToUnpack */ -- static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { -- PyErr_Format(PyExc_ValueError, -- "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", -- index, (index == 1) ? "" : "s"); --} -- --/* RaiseNoneIterError */ -- static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); --} -- --/* ExtTypeTest */ -- static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { -- if (unlikely(!type)) { -- PyErr_SetString(PyExc_SystemError, "Missing type object"); -- return 0; -- } -- if (likely(__Pyx_TypeCheck(obj, type))) -- return 1; -- PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", -- Py_TYPE(obj)->tp_name, type->tp_name); -- return 0; --} -- - /* GetTopmostException */ - #if CYTHON_USE_EXC_INFO_STACK - static _PyErr_StackItem * -@@ -7740,6 +6127,28 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam - return -1; - } - -+/* PyObjectGetAttrStrNoError */ -+ static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { -+ __Pyx_PyThreadState_declare -+ __Pyx_PyThreadState_assign -+ if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) -+ __Pyx_PyErr_Clear(); -+} -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { -+ PyObject *result; -+#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 -+ PyTypeObject* tp = Py_TYPE(obj); -+ if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { -+ return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); -+ } -+#endif -+ result = __Pyx_PyObject_GetAttrStr(obj, attr_name); -+ if (unlikely(!result)) { -+ __Pyx_PyObject_GetAttrStr_ClearAttributeError(); -+ } -+ return result; -+} -+ - /* SetupReduce */ - static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { - int ret; -@@ -7767,43 +6176,51 @@ static int __Pyx_setup_reduce(PyObject* type_obj) { - PyObject *setstate = NULL; - PyObject *setstate_cython = NULL; - #if CYTHON_USE_PYTYPE_LOOKUP -- if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #else -- if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #endif - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #else -- object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #endif -- reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; -+ reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; - if (reduce_ex == object_reduce_ex) { - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #else -- object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #endif -- reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; -+ reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; - if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { -- reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; -+ reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); -+ if (likely(reduce_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (reduce == object_reduce || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); - if (!setstate) PyErr_Clear(); - if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { -- setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; -+ setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); -+ if (likely(setstate_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (!setstate || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - } - PyType_Modified((PyTypeObject*)type_obj); - } - } -- goto GOOD; --BAD: -+ goto __PYX_GOOD; -+__PYX_BAD: - if (!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); - ret = -1; --GOOD: -+__PYX_GOOD: - #if !CYTHON_USE_PYTYPE_LOOKUP - Py_XDECREF(object_reduce); - Py_XDECREF(object_reduce_ex); -@@ -7905,7 +6322,7 @@ static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UIN - - /* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK --static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { -+static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) { - PyObject *use_cline; - PyObject *ptype, *pvalue, *ptraceback; - #if CYTHON_COMPILING_IN_CPYTHON -@@ -7935,7 +6352,7 @@ static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { - } - if (!use_cline) { - c_line = 0; -- PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); -+ (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; -@@ -8009,7 +6426,7 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - if (__pyx_code_cache.count == __pyx_code_cache.max_count) { - int new_max = __pyx_code_cache.max_count + 64; - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( -- __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); -+ __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); - if (unlikely(!entries)) { - return; - } -@@ -8032,30 +6449,31 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { -- PyCodeObject *py_code = 0; -- PyObject *py_srcfile = 0; -- PyObject *py_funcname = 0; -+ PyCodeObject *py_code = NULL; -+ PyObject *py_funcname = NULL; - #if PY_MAJOR_VERSION < 3 -+ PyObject *py_srcfile = NULL; - py_srcfile = PyString_FromString(filename); -- #else -- py_srcfile = PyUnicode_FromString(filename); -- #endif - if (!py_srcfile) goto bad; -+ #endif - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; -+ funcname = PyUnicode_AsUTF8(py_funcname); -+ if (!funcname) goto bad; - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); -- #else -- py_funcname = PyUnicode_FromString(funcname); -+ if (!py_funcname) goto bad; - #endif - } -- if (!py_funcname) goto bad; -+ #if PY_MAJOR_VERSION < 3 - py_code = __Pyx_PyCode_New( - 0, - 0, -@@ -8074,11 +6492,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); -- Py_DECREF(py_funcname); -+ #else -+ py_code = PyCode_NewEmpty(filename, funcname, py_line); -+ #endif -+ Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline - return py_code; - bad: -- Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); -+ #if PY_MAJOR_VERSION < 3 -+ Py_XDECREF(py_srcfile); -+ #endif - return NULL; - } - static void __Pyx_AddTraceback(const char *funcname, int c_line, -@@ -8113,7 +6536,6 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - #if PY_MAJOR_VERSION < 3 - static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) { - if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags); -- if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) return __pyx_pw_5numpy_7ndarray_1__getbuffer__(obj, view, flags); - PyErr_Format(PyExc_TypeError, "'%.200s' does not have the buffer interface", Py_TYPE(obj)->tp_name); - return -1; - } -@@ -8125,7 +6547,6 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - return; - } - if ((0)) {} -- else if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) __pyx_pw_5numpy_7ndarray_3__releasebuffer__(obj, view); - view->obj = NULL; - Py_DECREF(obj); - } -@@ -8154,37 +6575,6 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - return (target_type) value;\ - } - --/* CIntToPy */ -- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(int) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(int) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(int) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(int), -- little, !is_unsigned); -- } --} -- - /* Declarations */ - #if CYTHON_CCOMPLEX - #ifdef __cplusplus -@@ -8302,7 +6692,6 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_float(a, a); - return __Pyx_c_prod_float(a, a); - case 3: - z = __Pyx_c_prod_float(a, a); -@@ -8457,7 +6846,6 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_double(a, a); - return __Pyx_c_prod_double(a, a); - case 3: - z = __Pyx_c_prod_double(a, a); -@@ -8495,40 +6883,16 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - #endif - #endif - --/* CIntToPy */ -- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { -- const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(enum NPY_TYPES) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(enum NPY_TYPES) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), -- little, !is_unsigned); -- } --} -- - /* CIntFromPy */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -8715,9 +7079,54 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - return (int) -1; - } - -+/* CIntToPy */ -+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif -+ const int is_unsigned = neg_one > const_zero; -+ if (is_unsigned) { -+ if (sizeof(int) < sizeof(long)) { -+ return PyInt_FromLong((long) value); -+ } else if (sizeof(int) <= sizeof(unsigned long)) { -+ return PyLong_FromUnsignedLong((unsigned long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -+ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+#endif -+ } -+ } else { -+ if (sizeof(int) <= sizeof(long)) { -+ return PyInt_FromLong((long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -+ return PyLong_FromLongLong((PY_LONG_LONG) value); -+#endif -+ } -+ } -+ { -+ int one = 1; int little = (int)*(unsigned char *)&one; -+ unsigned char *bytes = (unsigned char *)&value; -+ return _PyLong_FromByteArray(bytes, sizeof(int), -+ little, !is_unsigned); -+ } -+} -+ - /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(long) < sizeof(long)) { -@@ -8748,7 +7157,14 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - - /* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -9299,6 +7715,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_DECREF(x); - return ival; - } -+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { -+ if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { -+ return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); -+#if PY_MAJOR_VERSION < 3 -+ } else if (likely(PyInt_CheckExact(o))) { -+ return PyInt_AS_LONG(o); -+#endif -+ } else { -+ Py_ssize_t ival; -+ PyObject *x; -+ x = PyNumber_Index(o); -+ if (!x) return -1; -+ ival = PyInt_AsLong(x); -+ Py_DECREF(x); -+ return ival; -+ } -+} - static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); - } -diff --git a/cylp/cy/CyCoinMpsIO.cpp b/cylp/cy/CyCoinMpsIO.cpp -index 268873e..67226b6 100644 ---- a/cylp/cy/CyCoinMpsIO.cpp -+++ b/cylp/cy/CyCoinMpsIO.cpp -@@ -1,14 +1,16 @@ --/* Generated by Cython 0.29.12 */ -+/* 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_12" --#define CYTHON_HEX_VERSION 0x001D0CF0 -+#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) -@@ -449,7 +516,15 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) - #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) -+ #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 - #else - #define CYTHON_PEP393_ENABLED 0 - #define PyUnicode_1BYTE_KIND 1 -@@ -498,8 +573,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact -+#ifndef PyObject_Unicode - #define PyObject_Unicode PyObject_Str - #endif -+#endif - #if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) - #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) -@@ -510,6 +587,13 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #ifndef PySet_CheckExact - #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) - #endif -+#if PY_VERSION_HEX >= 0x030900A4 -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) -+#else -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) -+#endif - #if CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) - #else -@@ -543,13 +627,13 @@ 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) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) -+ #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) - #else - #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) - #endif -@@ -590,11 +674,10 @@ static CYTHON_INLINE float __PYX_NAN() { - #define __Pyx_truncl truncl - #endif - -- -+#define __PYX_MARK_ERR_POS(f_index, lineno) \ -+ { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } - #define __PYX_ERR(f_index, lineno, Ln_error) \ --{ \ -- __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ --} -+ { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } - - #ifndef __PYX_EXTERN_C - #ifdef __cplusplus -@@ -610,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 "ICoinPackedMatrix.hpp" - #include "ICoinMpsIO.hpp" - #ifdef _OPENMP -@@ -709,6 +798,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 -@@ -844,13 +934,13 @@ static const char *__pyx_filename; - - static const char *__pyx_f[] = { - "stringsource", -- "cylp\\cy\\CyCoinMpsIO.pyx", -+ "cylp/cy/CyCoinMpsIO.pyx", - "__init__.pxd", - "type.pxd", -- "cylp\\cy\\CyCoinPackedMatrix.pxd", -+ "cylp/cy/CyCoinPackedMatrix.pxd", - }; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":776 -+/* "../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 # <<<<<<<<<<<<<< -@@ -859,7 +949,7 @@ static const char *__pyx_f[] = { - */ - typedef npy_int8 __pyx_t_5numpy_int8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":777 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":691 - * - * ctypedef npy_int8 int8_t - * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< -@@ -868,7 +958,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; - */ - typedef npy_int16 __pyx_t_5numpy_int16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":778 -+/* "../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 # <<<<<<<<<<<<<< -@@ -877,7 +967,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; - */ - typedef npy_int32 __pyx_t_5numpy_int32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":779 -+/* "../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 # <<<<<<<<<<<<<< -@@ -886,7 +976,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; - */ - typedef npy_int64 __pyx_t_5numpy_int64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":783 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":697 - * #ctypedef npy_int128 int128_t - * - * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< -@@ -895,7 +985,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; - */ - typedef npy_uint8 __pyx_t_5numpy_uint8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":784 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":698 - * - * ctypedef npy_uint8 uint8_t - * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< -@@ -904,7 +994,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; - */ - typedef npy_uint16 __pyx_t_5numpy_uint16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":785 -+/* "../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 # <<<<<<<<<<<<<< -@@ -913,7 +1003,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; - */ - typedef npy_uint32 __pyx_t_5numpy_uint32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":786 -+/* "../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 # <<<<<<<<<<<<<< -@@ -922,7 +1012,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; - */ - typedef npy_uint64 __pyx_t_5numpy_uint64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":790 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":704 - * #ctypedef npy_uint128 uint128_t - * - * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< -@@ -931,7 +1021,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; - */ - typedef npy_float32 __pyx_t_5numpy_float32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":791 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":705 - * - * ctypedef npy_float32 float32_t - * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< -@@ -940,7 +1030,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; - */ - typedef npy_float64 __pyx_t_5numpy_float64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":800 -+/* "../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 # <<<<<<<<<<<<<< -@@ -949,7 +1039,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; - */ - typedef npy_long __pyx_t_5numpy_int_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":801 -+/* "../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 # <<<<<<<<<<<<<< -@@ -958,7 +1048,7 @@ typedef npy_long __pyx_t_5numpy_int_t; - */ - typedef npy_longlong __pyx_t_5numpy_long_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":802 -+/* "../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 # <<<<<<<<<<<<<< -@@ -967,7 +1057,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; - */ - typedef npy_longlong __pyx_t_5numpy_longlong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":804 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":718 - * ctypedef npy_longlong longlong_t - * - * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< -@@ -976,7 +1066,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; - */ - typedef npy_ulong __pyx_t_5numpy_uint_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":805 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":719 - * - * ctypedef npy_ulong uint_t - * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< -@@ -985,7 +1075,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":806 -+/* "../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 # <<<<<<<<<<<<<< -@@ -994,7 +1084,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":808 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":722 - * ctypedef npy_ulonglong ulonglong_t - * - * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< -@@ -1003,7 +1093,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - */ - typedef npy_intp __pyx_t_5numpy_intp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":809 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":723 - * - * ctypedef npy_intp intp_t - * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< -@@ -1012,7 +1102,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; - */ - typedef npy_uintp __pyx_t_5numpy_uintp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":811 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":725 - * ctypedef npy_uintp uintp_t - * - * ctypedef npy_double float_t # <<<<<<<<<<<<<< -@@ -1021,7 +1111,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; - */ - typedef npy_double __pyx_t_5numpy_float_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":812 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":726 - * - * ctypedef npy_double float_t - * ctypedef npy_double double_t # <<<<<<<<<<<<<< -@@ -1030,7 +1120,7 @@ typedef npy_double __pyx_t_5numpy_float_t; - */ - typedef npy_double __pyx_t_5numpy_double_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":813 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1067,7 +1157,7 @@ static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(do - struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix; - struct __pyx_obj_4cylp_2cy_11CyCoinMpsIO_CyCoinMpsIO; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":815 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":729 - * ctypedef npy_longdouble longdouble_t - * - * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< -@@ -1076,7 +1166,7 @@ struct __pyx_obj_4cylp_2cy_11CyCoinMpsIO_CyCoinMpsIO; - */ - typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":816 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":730 - * - * ctypedef npy_cfloat cfloat_t - * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< -@@ -1085,7 +1175,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - */ - typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":817 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1094,7 +1184,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - */ - typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":819 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":733 - * ctypedef npy_clongdouble clongdouble_t - * - * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< -@@ -1232,6 +1322,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()\ -@@ -1239,6 +1330,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 */ -@@ -1369,29 +1461,6 @@ static PyObject* __Pyx_Coroutine_patch_module(PyObject* module, const char* py_c - /* PatchInspect.proto */ - static PyObject* __Pyx_patch_inspect(PyObject* module); - --/* 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); -@@ -1438,6 +1507,9 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam - #define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr - #endif - -+/* PyObjectGetAttrStrNoError.proto */ -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); -+ - /* SetupReduce.proto */ - static int __Pyx_setup_reduce(PyObject* type_obj); - -@@ -1523,8 +1595,10 @@ static void __Pyx_CppExn2PyErr() { - } - #endif - --/* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); -+/* GCCDiagnostics.proto */ -+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -+#define __Pyx_HAS_GCC_DIAGNOSTIC -+#endif - - /* RealImag.proto */ - #if CYTHON_CCOMPLEX -@@ -1625,7 +1699,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); - #endif - - /* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value); -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); - - /* CIntFromPy.proto */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); -@@ -1682,8 +1756,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.CyCoinPackedMatrix' */ - static PyTypeObject *__pyx_ptype_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix = 0; -@@ -1696,9 +1779,6 @@ int __pyx_module_is_main_cylp__cy__CyCoinMpsIO = 0; - - /* Implementation of 'cylp.cy.CyCoinMpsIO' */ - static PyObject *__pyx_builtin_TypeError; --static PyObject *__pyx_builtin_ValueError; --static PyObject *__pyx_builtin_range; --static PyObject *__pyx_builtin_RuntimeError; - static PyObject *__pyx_builtin_ImportError; - static const char __pyx_k_T[] = "T"; - static const char __pyx_k_np[] = "np"; -@@ -1709,7 +1789,6 @@ static const char __pyx_k_name[] = "__name__"; - static const char __pyx_k_path[] = "path"; - static const char __pyx_k_test[] = "__test__"; - static const char __pyx_k_numpy[] = "numpy"; --static const char __pyx_k_range[] = "range"; - static const char __pyx_k_scipy[] = "scipy"; - static const char __pyx_k_shape[] = "shape"; - static const char __pyx_k_utf_8[] = "utf-8"; -@@ -1730,12 +1809,10 @@ static const char __pyx_k_QPColumns[] = "QPColumns"; - static const char __pyx_k_TypeError[] = "TypeError"; - static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; - static const char __pyx_k_QPElements[] = "QPElements"; --static const char __pyx_k_ValueError[] = "ValueError"; - static const char __pyx_k_dia_matrix[] = "dia_matrix"; - static const char __pyx_k_nVariables[] = "nVariables"; - static const char __pyx_k_CyCoinMpsIO[] = "CyCoinMpsIO"; - static const char __pyx_k_ImportError[] = "ImportError"; --static const char __pyx_k_RuntimeError[] = "RuntimeError"; - static const char __pyx_k_currentframe[] = "currentframe"; - static const char __pyx_k_nConstraints[] = "nConstraints"; - static const char __pyx_k_scipy_sparse[] = "scipy.sparse"; -@@ -1749,34 +1826,23 @@ static const char __pyx_k_input_hs268_qps[] = "../input/hs268.qps"; - static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; - static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; - static const char __pyx_k_cylp_cy_CyCoinMpsIO[] = "cylp.cy.CyCoinMpsIO"; --static const char __pyx_k_cylp_cy_CyCoinMpsIO_pyx[] = "cylp\\cy\\CyCoinMpsIO.pyx"; -+static const char __pyx_k_cylp_cy_CyCoinMpsIO_pyx[] = "cylp/cy/CyCoinMpsIO.pyx"; - static const char __pyx_k_cylp_py_utils_sparseUtil[] = "cylp.py.utils.sparseUtil"; - static const char __pyx_k_CyCoinMpsIO_readMps_line_21[] = "CyCoinMpsIO.readMps (line 21)"; --static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; - static const char __pyx_k_Read_an_mps_file_Check_if_the_f[] = "\n Read an mps file. Check if the file is a QP symmetrisize its Hessian\n and store it.\n\n >>> import numpy as np\n >>> from cylp.cy import CyCoinMpsIO\n >>> from cylp.cy.CyCoinMpsIO import getQpsExample\n >>> problem = CyCoinMpsIO()\n >>> problem.readMps(getQpsExample())\n 0\n >>> problem.nVariables\n 5\n >>> problem.nConstraints\n 5\n >>> signs = problem.constraintSigns\n >>> [chr(i) for i in signs] == problem.nConstraints * ['G']\n True\n >>> c = problem.matrixByRow\n >>> (abs(c.elements -\n ... np.array([-1., -1., -1., -1., -1., 10., 10., -3.,\n ... 5., 4., -8., 1., -2., -5., 3., 8., -1., 2.,\n ... 5., -3., -4., -2., 3., -5., 1.])) <\n ... 10 ** -8).all()\n True\n >>> (c.indices ==\n ... np.array([0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1, 2, 3, 4, 0, 1,\n ... 2, 3, 4, 0, 1, 2, 3, 4], dtype=np.int32)).all()\n True\n >>> (c.vectorStarts ==\n ... np.array([0, 5, 10, 15, 20, 25], dtype=np.int32)).all()\n True\n >>> (problem.rightHandSide ==\n ... np.array([-5., 20., -40., 11., -30.])).all()\n True\n >>> H = problem.Hessian.todense()\n >>> (abs(H -\n ... np.matrix([[20394., -24908., -2026., 3896., 658.],\n ... [-24908., 41818., -3466., -9828., -372.],\n ... [-2026., -3466., 3510., 2178., -348.],\n ... [3896., -9828., 2178., 3030., -44.],\n ... [658., -372., -348., -44., 54.]])) <\n ... 10 ** -8).all()\n True\n\n "; - static const char __pyx_k_This_module_interface_COIN_OR_s[] = "\nThis module interface COIN-OR's ``CoinMpsIO``. When you call\n:func:`cylp.cy.CyClpSimplex.readMps` then ``CoinMpsIO``'s ``readMps`` is\ncalled. The main reason why cylp interfaces this class is to be able to read\nan ``mps`` file without creating a Simplex object. This way it is possible to\nread a QP using CoinMpsIO and work on the elements of the problem, e.g. the\nHessian,...\n"; - 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_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; - static PyObject *__pyx_n_s_CyCoinMpsIO; - static PyObject *__pyx_kp_u_CyCoinMpsIO_readMps_line_21; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; - static PyObject *__pyx_n_s_ImportError; --static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; - static PyObject *__pyx_n_s_QPColumnStarts; - static PyObject *__pyx_n_s_QPColumns; - static PyObject *__pyx_n_s_QPElements; - static PyObject *__pyx_kp_u_Read_an_mps_file_Check_if_the_f; --static PyObject *__pyx_n_s_RuntimeError; - static PyObject *__pyx_n_s_T; - static PyObject *__pyx_n_s_TypeError; --static PyObject *__pyx_n_s_ValueError; - static PyObject *__pyx_n_s_checkSymmetry; - static PyObject *__pyx_n_s_cline_in_traceback; - static PyObject *__pyx_n_s_csc_matrixPlus; -@@ -1803,8 +1869,6 @@ static PyObject *__pyx_n_s_main; - static PyObject *__pyx_n_s_nConstraints; - static PyObject *__pyx_n_s_nVariables; - static PyObject *__pyx_n_s_name; --static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous; --static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou; - static PyObject *__pyx_kp_s_no_default___reduce___due_to_non; - static PyObject *__pyx_n_s_np; - static PyObject *__pyx_n_s_numpy; -@@ -1812,7 +1876,6 @@ static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; - static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; - static PyObject *__pyx_n_s_os; - static PyObject *__pyx_n_s_path; --static PyObject *__pyx_n_s_range; - static PyObject *__pyx_n_s_reduce; - static PyObject *__pyx_n_s_reduce_cython; - static PyObject *__pyx_n_s_reduce_ex; -@@ -1823,7 +1886,6 @@ static PyObject *__pyx_n_s_setstate_cython; - static PyObject *__pyx_n_s_shape; - static PyObject *__pyx_n_s_sparse; - static PyObject *__pyx_n_s_test; --static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; - static PyObject *__pyx_kp_s_utf_8; - static int __pyx_pf_4cylp_2cy_11CyCoinMpsIO_11CyCoinMpsIO___cinit__(struct __pyx_obj_4cylp_2cy_11CyCoinMpsIO_CyCoinMpsIO *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_11CyCoinMpsIO_11CyCoinMpsIO_2readMps(struct __pyx_obj_4cylp_2cy_11CyCoinMpsIO_CyCoinMpsIO *__pyx_v_self, PyObject *__pyx_v_filename); /* proto */ -@@ -1850,8 +1912,6 @@ static PyObject *__pyx_pf_4cylp_2cy_11CyCoinMpsIO_11CyCoinMpsIO_12nConstraints__ - static PyObject *__pyx_pf_4cylp_2cy_11CyCoinMpsIO_11CyCoinMpsIO_6__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_11CyCoinMpsIO_CyCoinMpsIO *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_11CyCoinMpsIO_11CyCoinMpsIO_8__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_11CyCoinMpsIO_CyCoinMpsIO *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_11CyCoinMpsIO_getQpsExample(CYTHON_UNUSED PyObject *__pyx_self); /* 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_11CyCoinMpsIO_CyCoinMpsIO(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ - static PyObject *__pyx_int_0; - static PyObject *__pyx_tuple_; -@@ -1859,12 +1919,7 @@ 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; --static PyObject *__pyx_codeobj__11; -+static PyObject *__pyx_codeobj__6; - /* Late includes */ - - /* "cylp/cy/CyCoinMpsIO.pyx":17 -@@ -1895,6 +1950,9 @@ static int __pyx_pf_4cylp_2cy_11CyCoinMpsIO_11CyCoinMpsIO___cinit__(struct __pyx - int __pyx_r; - __Pyx_RefNannyDeclarations - ICoinMpsIO *__pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 0); - - /* "cylp/cy/CyCoinMpsIO.pyx":18 -@@ -1984,6 +2042,9 @@ static PyObject *__pyx_pf_4cylp_2cy_11CyCoinMpsIO_11CyCoinMpsIO_2readMps(struct - char *__pyx_t_6; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("readMps", 0); - __Pyx_INCREF(__pyx_v_filename); - -@@ -2319,6 +2380,9 @@ static PyObject *__pyx_pw_4cylp_2cy_11CyCoinMpsIO_11CyCoinMpsIO_5readQuadraticMp - static PyObject *__pyx_pw_4cylp_2cy_11CyCoinMpsIO_11CyCoinMpsIO_5readQuadraticMps(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - CYTHON_UNUSED PyObject *__pyx_v_filename = 0; - PyObject *__pyx_v_checkSymmetry = 0; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("readQuadraticMps (wrapper)", 0); -@@ -2380,6 +2444,9 @@ static PyObject *__pyx_pf_4cylp_2cy_11CyCoinMpsIO_11CyCoinMpsIO_4readQuadraticMp - __Pyx_RefNannyDeclarations - int __pyx_t_1; - PyObject *__pyx_t_2 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("readQuadraticMps", 0); - - /* "cylp/cy/CyCoinMpsIO.pyx":88 -@@ -3209,6 +3276,9 @@ static PyObject *__pyx_pf_4cylp_2cy_11CyCoinMpsIO_11CyCoinMpsIO_11matrixByRow___ - 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("__get__", 0); - - /* "cylp/cy/CyCoinMpsIO.pyx":147 -@@ -3300,6 +3370,9 @@ static PyObject *__pyx_pf_4cylp_2cy_11CyCoinMpsIO_11CyCoinMpsIO_11matrixByCol___ - 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("__get__", 0); - - /* "cylp/cy/CyCoinMpsIO.pyx":154 -@@ -3389,6 +3462,9 @@ static PyObject *__pyx_pf_4cylp_2cy_11CyCoinMpsIO_11CyCoinMpsIO_15objectiveOffse - 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("__get__", 0); - - /* "cylp/cy/CyCoinMpsIO.pyx":161 -@@ -3449,6 +3525,9 @@ static PyObject *__pyx_pf_4cylp_2cy_11CyCoinMpsIO_11CyCoinMpsIO_10nVariables___g - 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("__get__", 0); - - /* "cylp/cy/CyCoinMpsIO.pyx":165 -@@ -3509,6 +3588,9 @@ static PyObject *__pyx_pf_4cylp_2cy_11CyCoinMpsIO_11CyCoinMpsIO_12nConstraints__ - 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("__get__", 0); - - /* "cylp/cy/CyCoinMpsIO.pyx":169 -@@ -3567,6 +3649,9 @@ static PyObject *__pyx_pf_4cylp_2cy_11CyCoinMpsIO_11CyCoinMpsIO_6__reduce_cython - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -3621,6 +3706,9 @@ static PyObject *__pyx_pf_4cylp_2cy_11CyCoinMpsIO_11CyCoinMpsIO_8__setstate_cyth - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -3688,6 +3776,9 @@ static PyObject *__pyx_pf_4cylp_2cy_11CyCoinMpsIO_getQpsExample(CYTHON_UNUSED Py - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - int __pyx_t_8; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("getQpsExample", 0); - - /* "cylp/cy/CyCoinMpsIO.pyx":176 -@@ -3870,863 +3961,7 @@ static PyObject *__pyx_pf_4cylp_2cy_11CyCoinMpsIO_getQpsExample(CYTHON_UNUSED Py - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":258 -- * # experimental exception made for __getbuffer__ and __releasebuffer__ -- * # -- the details of this may change. -- * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< -- * # This implementation of getbuffer is geared towards Cython -- * # requirements, and does not yet fulfill the PEP. -- */ -- --/* Python wrapper */ --static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ --static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { -- int __pyx_r; -- __Pyx_RefNannyDeclarations -- __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); -- __pyx_r = __pyx_pf_5numpy_7ndarray___getbuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); -- -- /* function exit code */ -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { -- int __pyx_v_i; -- int __pyx_v_ndim; -- int __pyx_v_endian_detector; -- int __pyx_v_little_endian; -- int __pyx_v_t; -- char *__pyx_v_f; -- PyArray_Descr *__pyx_v_descr = 0; -- int __pyx_v_offset; -- int __pyx_r; -- __Pyx_RefNannyDeclarations -- int __pyx_t_1; -- int __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- int __pyx_t_4; -- int __pyx_t_5; -- int __pyx_t_6; -- PyArray_Descr *__pyx_t_7; -- PyObject *__pyx_t_8 = NULL; -- char *__pyx_t_9; -- if (__pyx_v_info == NULL) { -- PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); -- return -1; -- } -- __Pyx_RefNannySetupContext("__getbuffer__", 0); -- __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); -- __Pyx_GIVEREF(__pyx_v_info->obj); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- * -- */ -- __pyx_v_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) # <<<<<<<<<<<<<< -- * -- * ndim = PyArray_NDIM(self) -- */ -- __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":268 -- * cdef bint little_endian = ((&endian_detector)[0] != 0) -- * -- * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- */ -- __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":271 -- * -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< -- * raise ValueError(u"ndarray is not C contiguous") -- * -- */ -- __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_C_CONTIGUOUS) != 0)) != 0); -- __pyx_t_1 = __pyx_t_2; -- __pyx_L4_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":272 -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__3, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":274 -- * raise ValueError(u"ndarray is not C contiguous") -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") -- */ -- __pyx_t_2 = (((__pyx_v_flags & PyBUF_F_CONTIGUOUS) == PyBUF_F_CONTIGUOUS) != 0); -- if (__pyx_t_2) { -- } else { -- __pyx_t_1 = __pyx_t_2; -- goto __pyx_L7_bool_binop_done; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":275 -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< -- * raise ValueError(u"ndarray is not Fortran contiguous") -- * -- */ -- __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_F_CONTIGUOUS) != 0)) != 0); -- __pyx_t_1 = __pyx_t_2; -- __pyx_L7_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":276 -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__4, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":278 -- * raise ValueError(u"ndarray is not Fortran contiguous") -- * -- * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< -- * info.ndim = ndim -- * if sizeof(npy_intp) != sizeof(Py_ssize_t): -- */ -- __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":279 -- * -- * info.buf = PyArray_DATA(self) -- * info.ndim = ndim # <<<<<<<<<<<<<< -- * if sizeof(npy_intp) != sizeof(Py_ssize_t): -- * # Allocate new buffer for strides and shape info. -- */ -- __pyx_v_info->ndim = __pyx_v_ndim; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)))); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- */ -- (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- /*else*/ { -- __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- */ -- __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(__pyx_v_self)); -- } -- __pyx_L9:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- * -- */ -- __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":293 -- * info.suboffsets = NULL -- * info.itemsize = PyArray_ITEMSIZE(self) -- * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< -- * -- * cdef int t -- */ -- __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":297 -- * cdef int t -- * cdef char* f = NULL -- * cdef dtype descr = PyArray_DESCR(self) # <<<<<<<<<<<<<< -- * cdef int offset -- * -- */ -- __pyx_t_7 = PyArray_DESCR(__pyx_v_self); -- __pyx_t_3 = ((PyObject *)__pyx_t_7); -- __Pyx_INCREF(__pyx_t_3); -- __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":300 -- * cdef int offset -- * -- * info.obj = self # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(descr): -- */ -- __Pyx_INCREF(((PyObject *)__pyx_v_self)); -- __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); -- __Pyx_GOTREF(__pyx_v_info->obj); -- __Pyx_DECREF(__pyx_v_info->obj); -- __pyx_v_info->obj = ((PyObject *)__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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__5, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]) = '^'; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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'; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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): -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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(); --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735 - * ctypedef npy_cdouble complex_t - * - * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< -@@ -4738,9 +3973,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":822 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":736 - * - * cdef inline object PyArray_MultiIterNew1(a): - * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< -@@ -4748,13 +3986,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - * 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, 822, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735 - * ctypedef npy_cdouble complex_t - * - * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< -@@ -4773,7 +4011,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -+/* "../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): # <<<<<<<<<<<<<< -@@ -4785,9 +4023,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":825 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":739 - * - * cdef inline object PyArray_MultiIterNew2(a, b): - * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< -@@ -4795,13 +4036,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - * 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, 825, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -4820,7 +4061,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741 - * return PyArray_MultiIterNew(2, a, b) - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< -@@ -4832,9 +4073,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":828 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":742 - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): - * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< -@@ -4842,13 +4086,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - * 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, 828, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741 - * return PyArray_MultiIterNew(2, a, b) - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< -@@ -4867,7 +4111,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -+/* "../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): # <<<<<<<<<<<<<< -@@ -4879,9 +4123,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":831 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -4889,13 +4136,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - * 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, 831, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -4914,7 +4161,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 - * return PyArray_MultiIterNew(4, a, b, c, d) - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -@@ -4926,9 +4173,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":834 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -4936,13 +4186,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - * 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, 834, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 - * return PyArray_MultiIterNew(4, a, b, c, d) - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -@@ -4961,7 +4211,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -@@ -4975,7 +4225,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - int __pyx_t_1; - __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -@@ -4985,7 +4235,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); - if (__pyx_t_1) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":838 -+ /* "../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 # <<<<<<<<<<<<<< -@@ -4997,7 +4247,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -@@ -5006,12 +4256,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":840 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":754 - * 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); -@@ -5020,7 +4270,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - goto __pyx_L0; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -@@ -5035,774 +4285,28 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":929 -+ * int _import_umath() except -1 - * -- * 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 void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< -+ * Py_INCREF(base) # important to do this before stealing the reference below! -+ * PyArray_SetBaseObject(arr, base) - */ - --static CYTHON_INLINE 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; -+static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { - __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- Py_ssize_t __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- PyObject *__pyx_t_4 = NULL; -- int __pyx_t_5; -- int __pyx_t_6; -- int __pyx_t_7; -- long __pyx_t_8; -- char *__pyx_t_9; -- __Pyx_RefNannySetupContext("_util_dtypestring", 0); -+ __Pyx_RefNannySetupContext("set_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":847 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":930 - * -- * cdef dtype child -- * cdef int endian_detector = 1 # <<<<<<<<<<<<<< -- * cdef bint little_endian = ((&endian_detector)[0] != 0) -- * cdef tuple fields -- */ -- __pyx_v_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":848 -- * 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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- if (unlikely(__pyx_v_descr->names == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -- __PYX_ERR(2, 851, __pyx_L1_error) -- } -- __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; -- for (;;) { -- if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; -- #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, 851, __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, 851, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- #endif -- __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":852 -- * -- * for childname in descr.names: -- * fields = descr.fields[childname] # <<<<<<<<<<<<<< -- * child, new_offset = fields -- * -- */ -- if (unlikely(__pyx_v_descr->fields == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -- __PYX_ERR(2, 852, __pyx_L1_error) -- } -- __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":853 -- * 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, 853, __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, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- #endif -- } else { -- __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 853, __pyx_L1_error) -- } -- if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3)); -- __pyx_t_3 = 0; -- __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 856, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0); -- if (!__pyx_t_7) { -- goto __pyx_L8_next_or; -- } else { -- } -- __pyx_t_7 = (__pyx_v_little_endian != 0); -- if (!__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_L8_next_or:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":859 -- * -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< -- * raise ValueError(u"Non-native byte order not supported") -- * # One could encode it in the format string and have Cython -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0); -- if (__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0); -- __pyx_t_6 = __pyx_t_7; -- __pyx_L7_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":860 -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * # One could encode it in the format string and have Cython -- * # complain instead, BUT: < and > in format strings also imply -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 860, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 860, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":870 -- * -- * # Output padding bytes -- * while offset[0] < new_offset: # <<<<<<<<<<<<<< -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- */ -- while (1) { -- __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (!__pyx_t_6) break; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":871 -- * # Output padding bytes -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< -- * f += 1 -- * offset[0] += 1 -- */ -- (__pyx_v_f[0]) = 0x78; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":872 -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte -- * f += 1 # <<<<<<<<<<<<<< -- * offset[0] += 1 -- * -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":873 -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- * offset[0] += 1 # <<<<<<<<<<<<<< -- * -- * offset[0] += child.itemsize -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":875 -- * offset[0] += 1 -- * -- * offset[0] += child.itemsize # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(child): -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); -- if (__pyx_t_6) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":878 -- * -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num # <<<<<<<<<<<<<< -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") -- */ -- __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 878, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 880, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":883 -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 98; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":884 -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":885 -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x68; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":886 -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 72; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":887 -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x69; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":888 -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 73; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":889 -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x6C; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":890 -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 76; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":891 -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x71; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":892 -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 81; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":893 -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":894 -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x64; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":895 -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x67; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":896 -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x66; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":897 -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x64; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":898 -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x67; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":899 -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (likely(__pyx_t_6)) { -- (__pyx_v_f[0]) = 79; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":901 -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< -- * f += 1 -- * else: -- */ -- /*else*/ { -- __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 901, __pyx_L1_error) -- } -- __pyx_L15:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":902 -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- * f += 1 # <<<<<<<<<<<<<< -- * else: -- * # Cython ignores struct boundary information ("T{...}"), -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- goto __pyx_L13; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":906 -- * # Cython ignores struct boundary information ("T{...}"), -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< -- * return f -- * -- */ -- /*else*/ { -- __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(2, 906, __pyx_L1_error) -- __pyx_v_f = __pyx_t_9; -- } -- __pyx_L13:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- } -- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":907 -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) -- * return f # <<<<<<<<<<<<<< -- * -- * -- */ -- __pyx_r = __pyx_v_f; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -- * -- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< -- * # Recursive utility function used in __getbuffer__ to get format -- * # string. The new location in the format string is returned. -- */ -- -- /* function exit code */ -- __pyx_L1_error:; -- __Pyx_XDECREF(__pyx_t_1); -- __Pyx_XDECREF(__pyx_t_3); -- __Pyx_XDECREF(__pyx_t_4); -- __Pyx_AddTraceback("numpy._util_dtypestring", __pyx_clineno, __pyx_lineno, __pyx_filename); -- __pyx_r = NULL; -- __pyx_L0:; -- __Pyx_XDECREF((PyObject *)__pyx_v_child); -- __Pyx_XDECREF(__pyx_v_fields); -- __Pyx_XDECREF(__pyx_v_childname); -- __Pyx_XDECREF(__pyx_v_new_offset); -- __Pyx_XDECREF(__pyx_v_t); -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -- * int _import_umath() except -1 -- * -- * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< -- * Py_INCREF(base) # important to do this before stealing the reference below! -- * PyArray_SetBaseObject(arr, base) -- */ -- --static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { -- __Pyx_RefNannyDeclarations -- __Pyx_RefNannySetupContext("set_array_base", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1023 -- * -- * cdef inline void set_array_base(ndarray arr, object base): -- * Py_INCREF(base) # important to do this before stealing the reference below! # <<<<<<<<<<<<<< -- * PyArray_SetBaseObject(arr, base) -+ * cdef inline void set_array_base(ndarray arr, object base): -+ * Py_INCREF(base) # important to do this before stealing the reference below! # <<<<<<<<<<<<<< -+ * PyArray_SetBaseObject(arr, base) - * - */ - Py_INCREF(__pyx_v_base); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1024 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -5811,7 +4315,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -5823,7 +4327,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyFinishContext(); - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+/* "../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): # <<<<<<<<<<<<<< -@@ -5838,7 +4342,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - int __pyx_t_1; - __Pyx_RefNannySetupContext("get_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1027 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -5847,7 +4351,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - __pyx_v_base = PyArray_BASE(__pyx_v_arr); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -5857,7 +4361,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) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1029 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":936 - * base = PyArray_BASE(arr) - * if base is NULL: - * return None # <<<<<<<<<<<<<< -@@ -5868,7 +4372,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -5877,7 +4381,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1030 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":937 - * if base is NULL: - * return None - * return base # <<<<<<<<<<<<<< -@@ -5889,7 +4393,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = ((PyObject *)__pyx_v_base); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -5904,12 +4408,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { -@@ -5923,13 +4427,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_array", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - { -@@ -5941,20 +4448,20 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1036 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":943 - * cdef inline int import_array() except -1: - * try: -- * _import_array() # <<<<<<<<<<<<<< -+ * __pyx_import_array() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") - */ -- __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1036, __pyx_L3_error) -+ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 943, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - } -@@ -5964,9 +4471,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1037 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":944 - * try: -- * _import_array() -+ * __pyx_import_array() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.multiarray failed to import") - * -@@ -5974,32 +4481,32 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1037, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 944, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 945, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __PYX_ERR(2, 945, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - __Pyx_XGIVEREF(__pyx_t_1); -@@ -6010,12 +4517,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - /* function exit code */ -@@ -6033,7 +4540,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -6052,9 +4559,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_umath", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -6070,16 +4580,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1042 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":949 - * cdef inline int import_umath() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1042, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 949, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -6093,7 +4603,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1043 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":950 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< -@@ -6103,28 +4613,28 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1043, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 950, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 951, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __PYX_ERR(2, 951, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -6139,7 +4649,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -6162,7 +4672,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -6181,9 +4691,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_ufunc", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -6199,16 +4712,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1048 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":955 - * cdef inline int import_ufunc() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1048, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 955, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -6222,35 +4735,38 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1049 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":956 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.umath failed to import") -+ * - */ - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1049, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 956, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1050 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":957 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< -+ * -+ * cdef extern from *: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 957, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __PYX_ERR(2, 957, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -6265,7 +4781,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -6288,6 +4804,180 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - return __pyx_r; - } - -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_timedelta64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":979 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_datetime64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":994 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { -+ npy_datetime __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1004 -+ * also needed. That can be found using `get_datetime64_unit`. -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { -+ npy_timedelta __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1011 -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { -+ NPY_DATETIMEUNIT __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1018 -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ * """ -+ * return (obj).obmeta.base # <<<<<<<<<<<<<< -+ */ -+ __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ - static PyObject *__pyx_tp_new_4cylp_2cy_11CyCoinMpsIO_CyCoinMpsIO(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { - struct __pyx_obj_4cylp_2cy_11CyCoinMpsIO_CyCoinMpsIO *p; - PyObject *o; -@@ -6454,7 +5144,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_11CyCoinMpsIO_CyCoinMpsIO = { - sizeof(struct __pyx_obj_4cylp_2cy_11CyCoinMpsIO_CyCoinMpsIO), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_11CyCoinMpsIO_CyCoinMpsIO, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -6507,6 +5202,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_11CyCoinMpsIO_CyCoinMpsIO = { - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyMethodDef __pyx_methods[] = { -@@ -6557,18 +5258,13 @@ static struct PyModuleDef __pyx_moduledef = { - static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_CyCoinMpsIO, __pyx_k_CyCoinMpsIO, sizeof(__pyx_k_CyCoinMpsIO), 0, 0, 1, 1}, - {&__pyx_kp_u_CyCoinMpsIO_readMps_line_21, __pyx_k_CyCoinMpsIO_readMps_line_21, sizeof(__pyx_k_CyCoinMpsIO_readMps_line_21), 0, 1, 0, 0}, -- {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, -- {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, - {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, -- {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, - {&__pyx_n_s_QPColumnStarts, __pyx_k_QPColumnStarts, sizeof(__pyx_k_QPColumnStarts), 0, 0, 1, 1}, - {&__pyx_n_s_QPColumns, __pyx_k_QPColumns, sizeof(__pyx_k_QPColumns), 0, 0, 1, 1}, - {&__pyx_n_s_QPElements, __pyx_k_QPElements, sizeof(__pyx_k_QPElements), 0, 0, 1, 1}, - {&__pyx_kp_u_Read_an_mps_file_Check_if_the_f, __pyx_k_Read_an_mps_file_Check_if_the_f, sizeof(__pyx_k_Read_an_mps_file_Check_if_the_f), 0, 1, 0, 0}, -- {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_n_s_T, __pyx_k_T, sizeof(__pyx_k_T), 0, 0, 1, 1}, - {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, -- {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_n_s_checkSymmetry, __pyx_k_checkSymmetry, sizeof(__pyx_k_checkSymmetry), 0, 0, 1, 1}, - {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, - {&__pyx_n_s_csc_matrixPlus, __pyx_k_csc_matrixPlus, sizeof(__pyx_k_csc_matrixPlus), 0, 0, 1, 1}, -@@ -6595,8 +5291,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_nConstraints, __pyx_k_nConstraints, sizeof(__pyx_k_nConstraints), 0, 0, 1, 1}, - {&__pyx_n_s_nVariables, __pyx_k_nVariables, sizeof(__pyx_k_nVariables), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, -- {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, -- {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, - {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0}, - {&__pyx_n_s_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 0, 1, 1}, - {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1}, -@@ -6604,7 +5298,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0}, - {&__pyx_n_s_os, __pyx_k_os, sizeof(__pyx_k_os), 0, 0, 1, 1}, - {&__pyx_n_s_path, __pyx_k_path, sizeof(__pyx_k_path), 0, 0, 1, 1}, -- {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, -@@ -6615,16 +5308,12 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_shape, __pyx_k_shape, sizeof(__pyx_k_shape), 0, 0, 1, 1}, - {&__pyx_n_s_sparse, __pyx_k_sparse, sizeof(__pyx_k_sparse), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, -- {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, - {&__pyx_kp_s_utf_8, __pyx_k_utf_8, sizeof(__pyx_k_utf_8), 0, 0, 1, 0}, - {0, 0, 0, 0, 0, 0, 0} - }; - static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 2, __pyx_L1_error) -- __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(2, 272, __pyx_L1_error) -- __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(2, 285, __pyx_L1_error) -- __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(2, 856, __pyx_L1_error) -- __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 1038, __pyx_L1_error) -+ __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 945, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -@@ -6653,82 +5342,27 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_GOTREF(__pyx_tuple__2); - __Pyx_GIVEREF(__pyx_tuple__2); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":272 -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(2, 272, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__3); -- __Pyx_GIVEREF(__pyx_tuple__3); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":276 -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 276, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__4); -- __Pyx_GIVEREF(__pyx_tuple__4); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":306 -- * if ((descr.byteorder == c'>' and little_endian) or -- * (descr.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * if t == NPY_BYTE: f = "b" -- * elif t == NPY_UBYTE: f = "B" -- */ -- __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(2, 306, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__5); -- __Pyx_GIVEREF(__pyx_tuple__5); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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_tuple__6 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__6); -- __Pyx_GIVEREF(__pyx_tuple__6); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__7); -- __Pyx_GIVEREF(__pyx_tuple__7); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(2, 1038, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__8); -- __Pyx_GIVEREF(__pyx_tuple__8); -+ __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(2, 945, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__3); -+ __Pyx_GIVEREF(__pyx_tuple__3); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(2, 1044, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__9); -- __Pyx_GIVEREF(__pyx_tuple__9); -+ __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 951, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__4); -+ __Pyx_GIVEREF(__pyx_tuple__4); - - /* "cylp/cy/CyCoinMpsIO.pyx":172 - * -@@ -6737,10 +5371,10 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - * ''' - * Return full path to a QPS example file for doctests - */ -- __pyx_tuple__10 = PyTuple_Pack(3, __pyx_n_s_os, __pyx_n_s_inspect, __pyx_n_s_curpath); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(1, 172, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__10); -- __Pyx_GIVEREF(__pyx_tuple__10); -- __pyx_codeobj__11 = (PyObject*)__Pyx_PyCode_New(0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__10, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cylp_cy_CyCoinMpsIO_pyx, __pyx_n_s_getQpsExample, 172, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__11)) __PYX_ERR(1, 172, __pyx_L1_error) -+ __pyx_tuple__5 = PyTuple_Pack(3, __pyx_n_s_os, __pyx_n_s_inspect, __pyx_n_s_curpath); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(1, 172, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__5); -+ __Pyx_GIVEREF(__pyx_tuple__5); -+ __pyx_codeobj__6 = (PyObject*)__Pyx_PyCode_New(0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__5, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cylp_cy_CyCoinMpsIO_pyx, __pyx_n_s_getQpsExample, 172, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__6)) __PYX_ERR(1, 172, __pyx_L1_error) - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; -@@ -6790,6 +5424,9 @@ static int __Pyx_modinit_function_export_code(void) { - - static int __Pyx_modinit_type_init_code(void) { - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ - if (PyType_Ready(&__pyx_type_4cylp_2cy_11CyCoinMpsIO_CyCoinMpsIO) < 0) __PYX_ERR(1, 16, __pyx_L1_error) -@@ -6812,6 +5449,9 @@ static int __Pyx_modinit_type_init_code(void) { - static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error) -@@ -6825,18 +5465,38 @@ static int __Pyx_modinit_type_import_code(void) { - __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(3, 9, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 206, __pyx_L1_error) -+ __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 206, __pyx_L1_error) -- __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 229, __pyx_L1_error) -- __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 233, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 200, __pyx_L1_error) -+ __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 223, __pyx_L1_error) -+ __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 227, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 242, __pyx_L1_error) -- __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 918, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 239, __pyx_L1_error) -+ __pyx_ptype_5numpy_generic = __Pyx_ImportType(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 771, __pyx_L1_error) -+ __pyx_ptype_5numpy_number = __Pyx_ImportType(__pyx_t_1, "numpy", "number", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 773, __pyx_L1_error) -+ __pyx_ptype_5numpy_integer = __Pyx_ImportType(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 775, __pyx_L1_error) -+ __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 777, __pyx_L1_error) -+ __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 779, __pyx_L1_error) -+ __pyx_ptype_5numpy_inexact = __Pyx_ImportType(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 781, __pyx_L1_error) -+ __pyx_ptype_5numpy_floating = __Pyx_ImportType(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 783, __pyx_L1_error) -+ __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 785, __pyx_L1_error) -+ __pyx_ptype_5numpy_flexible = __Pyx_ImportType(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 787, __pyx_L1_error) -+ __pyx_ptype_5numpy_character = __Pyx_ImportType(__pyx_t_1, "numpy", "character", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 789, __pyx_L1_error) -+ __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 827, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyCoinPackedMatrix"); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 27, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); -@@ -6868,17 +5528,19 @@ static int __Pyx_modinit_function_import_code(void) { - } - - --#if PY_MAJOR_VERSION < 3 --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC void --#else -+#ifndef CYTHON_NO_PYINIT_EXPORT - #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#elif PY_MAJOR_VERSION < 3 -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" void -+#else -+#define __Pyx_PyMODINIT_FUNC void - #endif - #else --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC PyObject * -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * - #else --#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#define __Pyx_PyMODINIT_FUNC PyObject * - #endif - #endif - -@@ -6961,6 +5623,9 @@ static CYTHON_SMALL_CODE int __pyx_pymod_exec_CyCoinMpsIO(PyObject *__pyx_pyinit - { - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { -@@ -7008,11 +5673,9 @@ if (!__Pyx_RefNanny) { - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ -- #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS -- #ifdef WITH_THREAD /* Python build with threading support? */ -+ #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - PyEval_InitThreads(); - #endif -- #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; -@@ -7049,15 +5712,15 @@ if (!__Pyx_RefNanny) { - } - #endif - /*--- Builtin init code ---*/ -- if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Constants init code ---*/ -- if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(); - (void)__Pyx_modinit_variable_export_code(); - (void)__Pyx_modinit_function_export_code(); -- if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; -- if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; -+ if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) -+ if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) - (void)__Pyx_modinit_variable_import_code(); - (void)__Pyx_modinit_function_import_code(); - /*--- Execution code ---*/ -@@ -7177,12 +5840,12 @@ if (!__Pyx_RefNanny) { - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_2) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -- * raise ImportError("numpy.core.umath failed to import") -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -- * try: -- * _import_umath() -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ - - /*--- Wrapped vars code ---*/ -@@ -7468,7 +6131,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, - #if CYTHON_COMPILING_IN_CPYTHON - static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; -- ternaryfunc call = func->ob_type->tp_call; -+ ternaryfunc call = Py_TYPE(func)->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -@@ -7555,7 +6218,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec - if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { - return __Pyx_PyObject_CallMethO(func, arg); - #if CYTHON_FAST_PYCCALL -- } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { -+ } else if (__Pyx_PyFastCFunction_Check(func)) { - return __Pyx_PyCFunction_FastCall(func, &arg, 1); - #endif - } -@@ -7692,7 +6355,7 @@ static int __Pyx_ParseOptionalKeywords( - } - name = first_kw_arg; - #if PY_MAJOR_VERSION < 3 -- if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { -+ if (likely(PyString_Check(key))) { - while (*name) { - if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) - && _PyString_Eq(**name, key)) { -@@ -7719,7 +6382,7 @@ static int __Pyx_ParseOptionalKeywords( - while (*name) { - int cmp = (**name == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 -- (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : -+ (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**name, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; -@@ -7735,7 +6398,7 @@ static int __Pyx_ParseOptionalKeywords( - while (argname != first_kw_arg) { - int cmp = (**argname == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 -- (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : -+ (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**argname, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; -@@ -7985,7 +6648,7 @@ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { - { - #if PY_MAJOR_VERSION >= 3 - if (level == -1) { -- if (strchr(__Pyx_MODULE_NAME, '.')) { -+ if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) { - module = PyImport_ImportModuleLevelObject( - name, global_dict, empty_dict, list, 1); - if (!module) { -@@ -8085,61 +6748,6 @@ static PyObject* __Pyx_patch_inspect(PyObject* module) { - return module; - } - --/* DictGetItem */ --#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY --static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { -- PyObject *value; -- value = PyDict_GetItemWithError(d, key); -- if (unlikely(!value)) { -- if (!PyErr_Occurred()) { -- if (unlikely(PyTuple_Check(key))) { -- PyObject* args = PyTuple_Pack(1, key); -- if (likely(args)) { -- PyErr_SetObject(PyExc_KeyError, args); -- Py_DECREF(args); -- } -- } else { -- PyErr_SetObject(PyExc_KeyError, key); -- } -- } -- return NULL; -- } -- Py_INCREF(value); -- return value; --} --#endif -- --/* RaiseTooManyValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { -- PyErr_Format(PyExc_ValueError, -- "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); --} -- --/* RaiseNeedMoreValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { -- PyErr_Format(PyExc_ValueError, -- "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", -- index, (index == 1) ? "" : "s"); --} -- --/* RaiseNoneIterError */ --static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); --} -- --/* ExtTypeTest */ --static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { -- if (unlikely(!type)) { -- PyErr_SetString(PyExc_SystemError, "Missing type object"); -- return 0; -- } -- if (likely(__Pyx_TypeCheck(obj, type))) -- return 1; -- PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", -- Py_TYPE(obj)->tp_name, type->tp_name); -- return 0; --} -- - /* GetTopmostException */ - #if CYTHON_USE_EXC_INFO_STACK - static _PyErr_StackItem * -@@ -8345,6 +6953,28 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam - } - #endif - -+/* PyObjectGetAttrStrNoError */ -+static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { -+ __Pyx_PyThreadState_declare -+ __Pyx_PyThreadState_assign -+ if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) -+ __Pyx_PyErr_Clear(); -+} -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { -+ PyObject *result; -+#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 -+ PyTypeObject* tp = Py_TYPE(obj); -+ if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { -+ return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); -+ } -+#endif -+ result = __Pyx_PyObject_GetAttrStr(obj, attr_name); -+ if (unlikely(!result)) { -+ __Pyx_PyObject_GetAttrStr_ClearAttributeError(); -+ } -+ return result; -+} -+ - /* SetupReduce */ - static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { - int ret; -@@ -8372,43 +7002,51 @@ static int __Pyx_setup_reduce(PyObject* type_obj) { - PyObject *setstate = NULL; - PyObject *setstate_cython = NULL; - #if CYTHON_USE_PYTYPE_LOOKUP -- if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #else -- if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #endif - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #else -- object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #endif -- reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; -+ reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; - if (reduce_ex == object_reduce_ex) { - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #else -- object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #endif -- reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; -+ reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; - if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { -- reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; -+ reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); -+ if (likely(reduce_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (reduce == object_reduce || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); - if (!setstate) PyErr_Clear(); - if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { -- setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; -+ setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); -+ if (likely(setstate_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (!setstate || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - } - PyType_Modified((PyTypeObject*)type_obj); - } - } -- goto GOOD; --BAD: -+ goto __PYX_GOOD; -+__PYX_BAD: - if (!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); - ret = -1; --GOOD: -+__PYX_GOOD: - #if !CYTHON_USE_PYTYPE_LOOKUP - Py_XDECREF(object_reduce); - Py_XDECREF(object_reduce_ex); -@@ -8498,7 +7136,7 @@ static PyObject* __Pyx_ImportFrom(PyObject* module, PyObject* name) { - - /* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK --static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { -+static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) { - PyObject *use_cline; - PyObject *ptype, *pvalue, *ptraceback; - #if CYTHON_COMPILING_IN_CPYTHON -@@ -8528,7 +7166,7 @@ static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { - } - if (!use_cline) { - c_line = 0; -- PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); -+ (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; -@@ -8602,7 +7240,7 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - if (__pyx_code_cache.count == __pyx_code_cache.max_count) { - int new_max = __pyx_code_cache.max_count + 64; - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( -- __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); -+ __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); - if (unlikely(!entries)) { - return; - } -@@ -8625,30 +7263,31 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { -- PyCodeObject *py_code = 0; -- PyObject *py_srcfile = 0; -- PyObject *py_funcname = 0; -+ PyCodeObject *py_code = NULL; -+ PyObject *py_funcname = NULL; - #if PY_MAJOR_VERSION < 3 -+ PyObject *py_srcfile = NULL; - py_srcfile = PyString_FromString(filename); -- #else -- py_srcfile = PyUnicode_FromString(filename); -- #endif - if (!py_srcfile) goto bad; -+ #endif - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; -+ funcname = PyUnicode_AsUTF8(py_funcname); -+ if (!funcname) goto bad; - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); -- #else -- py_funcname = PyUnicode_FromString(funcname); -+ if (!py_funcname) goto bad; - #endif - } -- if (!py_funcname) goto bad; -+ #if PY_MAJOR_VERSION < 3 - py_code = __Pyx_PyCode_New( - 0, - 0, -@@ -8667,11 +7306,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); -- Py_DECREF(py_funcname); -+ #else -+ py_code = PyCode_NewEmpty(filename, funcname, py_line); -+ #endif -+ Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline - return py_code; - bad: -- Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); -+ #if PY_MAJOR_VERSION < 3 -+ Py_XDECREF(py_srcfile); -+ #endif - return NULL; - } - static void __Pyx_AddTraceback(const char *funcname, int c_line, -@@ -8703,37 +7347,6 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - Py_XDECREF(py_frame); - } - --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(int) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(int) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(int) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(int), -- little, !is_unsigned); -- } --} -- - /* CIntFromPyVerify */ - #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ - __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) -@@ -8873,7 +7486,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_float(a, a); - return __Pyx_c_prod_float(a, a); - case 3: - z = __Pyx_c_prod_float(a, a); -@@ -9028,7 +7640,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_double(a, a); - return __Pyx_c_prod_double(a, a); - case 3: - z = __Pyx_c_prod_double(a, a); -@@ -9067,24 +7678,31 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - #endif - - /* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { -- const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0; -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { -- if (sizeof(enum NPY_TYPES) < sizeof(long)) { -+ if (sizeof(int) < sizeof(long)) { - return PyInt_FromLong((long) value); -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { -+ } else if (sizeof(int) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); - #ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { -+ } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); - #endif - } - } else { -- if (sizeof(enum NPY_TYPES) <= sizeof(long)) { -+ if (sizeof(int) <= sizeof(long)) { - return PyInt_FromLong((long) value); - #ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { -+ } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); - #endif - } -@@ -9092,14 +7710,21 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES v - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), -+ return _PyLong_FromByteArray(bytes, sizeof(int), - little, !is_unsigned); - } - } - - /* CIntFromPy */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -9288,7 +7913,14 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - - /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(long) < sizeof(long)) { -@@ -9319,7 +7951,14 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - - /* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -9870,6 +8509,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_DECREF(x); - return ival; - } -+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { -+ if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { -+ return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); -+#if PY_MAJOR_VERSION < 3 -+ } else if (likely(PyInt_CheckExact(o))) { -+ return PyInt_AS_LONG(o); -+#endif -+ } else { -+ Py_ssize_t ival; -+ PyObject *x; -+ x = PyNumber_Index(o); -+ if (!x) return -1; -+ ival = PyInt_AsLong(x); -+ Py_DECREF(x); -+ return ival; -+ } -+} - static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); - } -diff --git a/cylp/cy/CyCoinPackedMatrix.cpp b/cylp/cy/CyCoinPackedMatrix.cpp -index 536b013..df2b688 100644 ---- a/cylp/cy/CyCoinPackedMatrix.cpp -+++ b/cylp/cy/CyCoinPackedMatrix.cpp -@@ -1,14 +1,16 @@ --/* Generated by Cython 0.29.12 */ -+/* 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_12" --#define CYTHON_HEX_VERSION 0x001D0CF0 -+#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) -@@ -449,7 +516,15 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) - #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) -+ #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 - #else - #define CYTHON_PEP393_ENABLED 0 - #define PyUnicode_1BYTE_KIND 1 -@@ -498,8 +573,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact -+#ifndef PyObject_Unicode - #define PyObject_Unicode PyObject_Str - #endif -+#endif - #if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) - #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) -@@ -510,6 +587,13 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #ifndef PySet_CheckExact - #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) - #endif -+#if PY_VERSION_HEX >= 0x030900A4 -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) -+#else -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) -+#endif - #if CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) - #else -@@ -543,13 +627,13 @@ 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) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) -+ #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) - #else - #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) - #endif -@@ -590,11 +674,10 @@ static CYTHON_INLINE float __PYX_NAN() { - #define __Pyx_truncl truncl - #endif - -- -+#define __PYX_MARK_ERR_POS(f_index, lineno) \ -+ { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } - #define __PYX_ERR(f_index, lineno, Ln_error) \ --{ \ -- __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ --} -+ { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } - - #ifndef __PYX_EXTERN_C - #ifdef __cplusplus -@@ -611,7 +694,13 @@ static CYTHON_INLINE float __PYX_NAN() { - #include - #include "ICoinPackedMatrix.hpp" - #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" */ -+ - #ifdef _OPENMP - #include - #endif /* _OPENMP */ -@@ -708,6 +797,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 -@@ -843,7 +933,7 @@ static const char *__pyx_filename; - - static const char *__pyx_f[] = { - "stringsource", -- "cylp\\cy\\CyCoinPackedMatrix.pyx", -+ "cylp/cy/CyCoinPackedMatrix.pyx", - "__init__.pxd", - "type.pxd", - }; -@@ -884,7 +974,7 @@ typedef struct { - } __Pyx_BufFmt_Context; - - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":776 -+/* "../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 # <<<<<<<<<<<<<< -@@ -893,7 +983,7 @@ typedef struct { - */ - typedef npy_int8 __pyx_t_5numpy_int8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":777 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":691 - * - * ctypedef npy_int8 int8_t - * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< -@@ -902,7 +992,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; - */ - typedef npy_int16 __pyx_t_5numpy_int16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":778 -+/* "../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 # <<<<<<<<<<<<<< -@@ -911,7 +1001,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; - */ - typedef npy_int32 __pyx_t_5numpy_int32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":779 -+/* "../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 # <<<<<<<<<<<<<< -@@ -920,7 +1010,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; - */ - typedef npy_int64 __pyx_t_5numpy_int64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":783 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":697 - * #ctypedef npy_int128 int128_t - * - * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< -@@ -929,7 +1019,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; - */ - typedef npy_uint8 __pyx_t_5numpy_uint8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":784 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":698 - * - * ctypedef npy_uint8 uint8_t - * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< -@@ -938,7 +1028,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; - */ - typedef npy_uint16 __pyx_t_5numpy_uint16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":785 -+/* "../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 # <<<<<<<<<<<<<< -@@ -947,7 +1037,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; - */ - typedef npy_uint32 __pyx_t_5numpy_uint32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":786 -+/* "../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 # <<<<<<<<<<<<<< -@@ -956,7 +1046,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; - */ - typedef npy_uint64 __pyx_t_5numpy_uint64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":790 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":704 - * #ctypedef npy_uint128 uint128_t - * - * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< -@@ -965,7 +1055,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; - */ - typedef npy_float32 __pyx_t_5numpy_float32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":791 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":705 - * - * ctypedef npy_float32 float32_t - * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< -@@ -974,7 +1064,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; - */ - typedef npy_float64 __pyx_t_5numpy_float64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":800 -+/* "../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 # <<<<<<<<<<<<<< -@@ -983,7 +1073,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; - */ - typedef npy_long __pyx_t_5numpy_int_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":801 -+/* "../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 # <<<<<<<<<<<<<< -@@ -992,7 +1082,7 @@ typedef npy_long __pyx_t_5numpy_int_t; - */ - typedef npy_longlong __pyx_t_5numpy_long_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":802 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1001,7 +1091,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; - */ - typedef npy_longlong __pyx_t_5numpy_longlong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":804 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":718 - * ctypedef npy_longlong longlong_t - * - * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< -@@ -1010,7 +1100,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; - */ - typedef npy_ulong __pyx_t_5numpy_uint_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":805 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":719 - * - * ctypedef npy_ulong uint_t - * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< -@@ -1019,7 +1109,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":806 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1028,7 +1118,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":808 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":722 - * ctypedef npy_ulonglong ulonglong_t - * - * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< -@@ -1037,7 +1127,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - */ - typedef npy_intp __pyx_t_5numpy_intp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":809 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":723 - * - * ctypedef npy_intp intp_t - * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< -@@ -1046,7 +1136,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; - */ - typedef npy_uintp __pyx_t_5numpy_uintp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":811 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":725 - * ctypedef npy_uintp uintp_t - * - * ctypedef npy_double float_t # <<<<<<<<<<<<<< -@@ -1055,7 +1145,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; - */ - typedef npy_double __pyx_t_5numpy_float_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":812 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":726 - * - * ctypedef npy_double float_t - * ctypedef npy_double double_t # <<<<<<<<<<<<<< -@@ -1064,7 +1154,7 @@ typedef npy_double __pyx_t_5numpy_float_t; - */ - typedef npy_double __pyx_t_5numpy_double_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":813 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1100,7 +1190,7 @@ static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(do - /*--- Type declarations ---*/ - struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":815 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":729 - * ctypedef npy_longdouble longdouble_t - * - * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< -@@ -1109,7 +1199,7 @@ struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix; - */ - typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":816 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":730 - * - * ctypedef npy_cfloat cfloat_t - * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< -@@ -1118,7 +1208,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - */ - typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":817 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1127,7 +1217,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - */ - typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":819 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":733 - * ctypedef npy_clongdouble clongdouble_t - * - * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< -@@ -1308,67 +1398,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg - /* RaiseException.proto */ - static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); - --/* PyCFunctionFastCall.proto */ --#if CYTHON_FAST_PYCCALL --static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); --#else --#define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) --#endif -- --/* PyFunctionFastCall.proto */ --#if CYTHON_FAST_PYCALL --#define __Pyx_PyFunction_FastCall(func, args, nargs)\ -- __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) --#if 1 || PY_VERSION_HEX < 0x030600B1 --static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); --#else --#define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) --#endif --#define __Pyx_BUILD_ASSERT_EXPR(cond)\ -- (sizeof(char [1 - 2*!(cond)]) - 1) --#ifndef Py_MEMBER_SIZE --#define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) --#endif -- static size_t __pyx_pyframe_localsplus_offset = 0; -- #include "frameobject.h" -- #define __Pxy_PyFrame_Initialize_Offsets()\ -- ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ -- (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) -- #define __Pyx_PyFrame_GetLocalsplus(frame)\ -- (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) --#endif -- --/* PyObjectCallMethO.proto */ --#if CYTHON_COMPILING_IN_CPYTHON --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); --#endif -- --/* PyObjectCallOneArg.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); -- --/* 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); -@@ -1415,6 +1444,9 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam - #define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr - #endif - -+/* PyObjectGetAttrStrNoError.proto */ -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); -+ - /* SetupReduce.proto */ - static int __Pyx_setup_reduce(PyObject* type_obj); - -@@ -1507,8 +1539,10 @@ typedef struct { - #endif - - --/* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); -+/* GCCDiagnostics.proto */ -+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -+#define __Pyx_HAS_GCC_DIAGNOSTIC -+#endif - - /* RealImag.proto */ - #if CYTHON_CCOMPLEX -@@ -1609,7 +1643,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); - #endif - - /* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value); -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); - - /* CIntFromPy.proto */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); -@@ -1666,8 +1700,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.CyCoinPackedMatrix' */ - static PyTypeObject *__pyx_ptype_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix = 0; -@@ -1679,16 +1722,12 @@ int __pyx_module_is_main_cylp__cy__CyCoinPackedMatrix = 0; - - /* Implementation of 'cylp.cy.CyCoinPackedMatrix' */ - static PyObject *__pyx_builtin_TypeError; --static PyObject *__pyx_builtin_ValueError; --static PyObject *__pyx_builtin_range; --static PyObject *__pyx_builtin_RuntimeError; - static PyObject *__pyx_builtin_ImportError; - static const char __pyx_k_np[] = "np"; - static const char __pyx_k_main[] = "__main__"; - static const char __pyx_k_name[] = "__name__"; - static const char __pyx_k_test[] = "__test__"; - static const char __pyx_k_numpy[] = "numpy"; --static const char __pyx_k_range[] = "range"; - static const char __pyx_k_create[] = "create"; - static const char __pyx_k_import[] = "__import__"; - static const char __pyx_k_reduce[] = "__reduce__"; -@@ -1698,36 +1737,23 @@ static const char __pyx_k_getstate[] = "__getstate__"; - static const char __pyx_k_setstate[] = "__setstate__"; - static const char __pyx_k_TypeError[] = "TypeError"; - static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; --static const char __pyx_k_ValueError[] = "ValueError"; - static const char __pyx_k_colIndices[] = "colIndices"; - static const char __pyx_k_colOrdered[] = "colOrdered"; - static const char __pyx_k_newMaxSize[] = "newMaxSize"; - static const char __pyx_k_rowIndices[] = "rowIndices"; - static const char __pyx_k_ImportError[] = "ImportError"; - static const char __pyx_k_removeValue[] = "removeValue"; --static const char __pyx_k_RuntimeError[] = "RuntimeError"; - static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; - static const char __pyx_k_newMaxMajorDim[] = "newMaxMajorDim"; - static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; - static const char __pyx_k_CyCoinPackedMatrix[] = "CyCoinPackedMatrix"; - static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; --static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; - static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import"; --static const char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%d)"; --static const char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; --static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; --static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; - static const char __pyx_k_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_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; - static PyObject *__pyx_n_s_CyCoinPackedMatrix; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; - static PyObject *__pyx_n_s_ImportError; --static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; --static PyObject *__pyx_n_s_RuntimeError; - static PyObject *__pyx_n_s_TypeError; --static PyObject *__pyx_n_s_ValueError; - static PyObject *__pyx_n_s_cline_in_traceback; - static PyObject *__pyx_n_s_colIndices; - static PyObject *__pyx_n_s_colOrdered; -@@ -1737,8 +1763,6 @@ static PyObject *__pyx_n_s_getstate; - static PyObject *__pyx_n_s_import; - static PyObject *__pyx_n_s_main; - static PyObject *__pyx_n_s_name; --static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous; --static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou; - static PyObject *__pyx_n_s_newMaxMajorDim; - static PyObject *__pyx_n_s_newMaxSize; - static PyObject *__pyx_kp_s_no_default___reduce___due_to_non; -@@ -1746,7 +1770,6 @@ static PyObject *__pyx_n_s_np; - static PyObject *__pyx_n_s_numpy; - static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; - static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; --static PyObject *__pyx_n_s_range; - static PyObject *__pyx_n_s_reduce; - static PyObject *__pyx_n_s_reduce_cython; - static PyObject *__pyx_n_s_reduce_ex; -@@ -1755,7 +1778,6 @@ static PyObject *__pyx_n_s_rowIndices; - static PyObject *__pyx_n_s_setstate; - static PyObject *__pyx_n_s_setstate_cython; - static PyObject *__pyx_n_s_test; --static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; - static PyObject *__pyx_n_s_vecInd; - static int __pyx_pf_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix___cinit__(struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *__pyx_v_self, PyObject *__pyx_v_colOrdered, PyArrayObject *__pyx_v_rowIndices, PyArrayObject *__pyx_v_colIndices, PyArrayObject *__pyx_v_elements); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_7indices___get__(struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *__pyx_v_self); /* proto */ -@@ -1773,8 +1795,6 @@ static PyObject *__pyx_pf_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_10 - static PyObject *__pyx_pf_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_12removeGaps(struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *__pyx_v_self, PyObject *__pyx_v_removeValue); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_14__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_16__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix *__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_18CyCoinPackedMatrix_CyCoinPackedMatrix(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ - static PyObject *__pyx_float_neg_1_0; - static PyObject *__pyx_int_0; -@@ -1782,11 +1802,6 @@ static PyObject *__pyx_tuple_; - static PyObject *__pyx_tuple__2; - static PyObject *__pyx_tuple__3; - static PyObject *__pyx_tuple__4; --static PyObject *__pyx_tuple__5; --static PyObject *__pyx_tuple__6; --static PyObject *__pyx_tuple__7; --static PyObject *__pyx_tuple__8; --static PyObject *__pyx_tuple__9; - /* Late includes */ - - /* "cylp/cy/CyCoinPackedMatrix.pyx":26 -@@ -1804,6 +1819,9 @@ static int __pyx_pw_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_1__cinit - PyArrayObject *__pyx_v_rowIndices = 0; - PyArrayObject *__pyx_v_colIndices = 0; - PyArrayObject *__pyx_v_elements = 0; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__cinit__ (wrapper)", 0); -@@ -1943,6 +1961,9 @@ static int __pyx_pf_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix___cinit_ - int __pyx_t_1; - int __pyx_t_2; - Py_ssize_t __pyx_t_3; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 0); - __pyx_pybuffer_rowIndices.pybuffer.buf = NULL; - __pyx_pybuffer_rowIndices.refcount = 0; -@@ -2254,6 +2275,9 @@ static PyObject *__pyx_pf_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_9n - 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("__get__", 0); - - /* "cylp/cy/CyCoinPackedMatrix.pyx":56 -@@ -2314,6 +2338,9 @@ static PyObject *__pyx_pf_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_8m - 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("__get__", 0); - - /* "cylp/cy/CyCoinPackedMatrix.pyx":60 -@@ -2374,6 +2401,9 @@ static PyObject *__pyx_pf_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_8m - 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("__get__", 0); - - /* "cylp/cy/CyCoinPackedMatrix.pyx":64 -@@ -2434,6 +2464,9 @@ static PyObject *__pyx_pf_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_12 - 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("__get__", 0); - - /* "cylp/cy/CyCoinPackedMatrix.pyx":68 -@@ -2484,6 +2517,9 @@ static PyObject *__pyx_pw_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_3r - PyObject *__pyx_v_newMaxMajorDim = 0; - PyObject *__pyx_v_newMaxSize = 0; - PyObject *__pyx_v_create = 0; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("reserve (wrapper)", 0); -@@ -2560,6 +2596,9 @@ static PyObject *__pyx_pf_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_2r - int __pyx_t_1; - int __pyx_t_2; - int __pyx_t_3; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("reserve", 0); - - /* "cylp/cy/CyCoinPackedMatrix.pyx":71 -@@ -2608,6 +2647,9 @@ static char __pyx_doc_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_4appen - static PyObject *__pyx_pw_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_5appendRow(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyArrayObject *__pyx_v_vecInd = 0; - PyArrayObject *__pyx_v_elements = 0; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("appendRow (wrapper)", 0); -@@ -2705,6 +2747,9 @@ static PyObject *__pyx_pf_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_4a - __Pyx_RefNannyDeclarations - int __pyx_t_1; - Py_ssize_t __pyx_t_2; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("appendRow", 0); - __pyx_pybuffer_vecInd.pybuffer.buf = NULL; - __pyx_pybuffer_vecInd.refcount = 0; -@@ -2820,6 +2865,9 @@ static char __pyx_doc_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_6appen - static PyObject *__pyx_pw_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_7appendCol(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyArrayObject *__pyx_v_vecInd = 0; - PyArrayObject *__pyx_v_elements = 0; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("appendCol (wrapper)", 0); -@@ -2917,6 +2965,9 @@ static PyObject *__pyx_pf_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_6a - __Pyx_RefNannyDeclarations - int __pyx_t_1; - Py_ssize_t __pyx_t_2; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("appendCol", 0); - __pyx_pybuffer_vecInd.pybuffer.buf = NULL; - __pyx_pybuffer_vecInd.refcount = 0; -@@ -3031,6 +3082,9 @@ static PyObject *__pyx_pw_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_9d - static char __pyx_doc_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_8dumpMatrix[] = "CyCoinPackedMatrix.dumpMatrix(self, char *s)"; - static PyObject *__pyx_pw_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_9dumpMatrix(PyObject *__pyx_v_self, PyObject *__pyx_arg_s) { - char *__pyx_v_s; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("dumpMatrix (wrapper)", 0); -@@ -3105,6 +3159,9 @@ static PyObject *__pyx_pf_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_10 - 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("hasGaps", 0); - - /* "cylp/cy/CyCoinPackedMatrix.pyx":102 -@@ -3153,6 +3210,9 @@ static PyObject *__pyx_pw_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_13 - static char __pyx_doc_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_12removeGaps[] = "CyCoinPackedMatrix.removeGaps(self, removeValue=-1.0)"; - static PyObject *__pyx_pw_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_13removeGaps(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_removeValue = 0; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("removeGaps (wrapper)", 0); -@@ -3209,6 +3269,9 @@ static PyObject *__pyx_pf_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_12 - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - double __pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("removeGaps", 0); - - /* "cylp/cy/CyCoinPackedMatrix.pyx":105 -@@ -3265,6 +3328,9 @@ static PyObject *__pyx_pf_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_14 - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -3320,6 +3386,9 @@ static PyObject *__pyx_pf_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_16 - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -3350,863 +3419,7 @@ static PyObject *__pyx_pf_4cylp_2cy_18CyCoinPackedMatrix_18CyCoinPackedMatrix_16 - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":258 -- * # experimental exception made for __getbuffer__ and __releasebuffer__ -- * # -- the details of this may change. -- * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< -- * # This implementation of getbuffer is geared towards Cython -- * # requirements, and does not yet fulfill the PEP. -- */ -- --/* Python wrapper */ --static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ --static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { -- int __pyx_r; -- __Pyx_RefNannyDeclarations -- __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); -- __pyx_r = __pyx_pf_5numpy_7ndarray___getbuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); -- -- /* function exit code */ -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { -- int __pyx_v_i; -- int __pyx_v_ndim; -- int __pyx_v_endian_detector; -- int __pyx_v_little_endian; -- int __pyx_v_t; -- char *__pyx_v_f; -- PyArray_Descr *__pyx_v_descr = 0; -- int __pyx_v_offset; -- int __pyx_r; -- __Pyx_RefNannyDeclarations -- int __pyx_t_1; -- int __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- int __pyx_t_4; -- int __pyx_t_5; -- int __pyx_t_6; -- PyArray_Descr *__pyx_t_7; -- PyObject *__pyx_t_8 = NULL; -- char *__pyx_t_9; -- if (__pyx_v_info == NULL) { -- PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); -- return -1; -- } -- __Pyx_RefNannySetupContext("__getbuffer__", 0); -- __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); -- __Pyx_GIVEREF(__pyx_v_info->obj); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- * -- */ -- __pyx_v_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) # <<<<<<<<<<<<<< -- * -- * ndim = PyArray_NDIM(self) -- */ -- __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":268 -- * cdef bint little_endian = ((&endian_detector)[0] != 0) -- * -- * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- */ -- __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":271 -- * -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< -- * raise ValueError(u"ndarray is not C contiguous") -- * -- */ -- __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_C_CONTIGUOUS) != 0)) != 0); -- __pyx_t_1 = __pyx_t_2; -- __pyx_L4_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":272 -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__3, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":274 -- * raise ValueError(u"ndarray is not C contiguous") -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") -- */ -- __pyx_t_2 = (((__pyx_v_flags & PyBUF_F_CONTIGUOUS) == PyBUF_F_CONTIGUOUS) != 0); -- if (__pyx_t_2) { -- } else { -- __pyx_t_1 = __pyx_t_2; -- goto __pyx_L7_bool_binop_done; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":275 -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< -- * raise ValueError(u"ndarray is not Fortran contiguous") -- * -- */ -- __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_F_CONTIGUOUS) != 0)) != 0); -- __pyx_t_1 = __pyx_t_2; -- __pyx_L7_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":276 -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__4, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":278 -- * raise ValueError(u"ndarray is not Fortran contiguous") -- * -- * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< -- * info.ndim = ndim -- * if sizeof(npy_intp) != sizeof(Py_ssize_t): -- */ -- __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":279 -- * -- * info.buf = PyArray_DATA(self) -- * info.ndim = ndim # <<<<<<<<<<<<<< -- * if sizeof(npy_intp) != sizeof(Py_ssize_t): -- * # Allocate new buffer for strides and shape info. -- */ -- __pyx_v_info->ndim = __pyx_v_ndim; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)))); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- */ -- (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- /*else*/ { -- __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- */ -- __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(__pyx_v_self)); -- } -- __pyx_L9:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- * -- */ -- __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":293 -- * info.suboffsets = NULL -- * info.itemsize = PyArray_ITEMSIZE(self) -- * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< -- * -- * cdef int t -- */ -- __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":297 -- * cdef int t -- * cdef char* f = NULL -- * cdef dtype descr = PyArray_DESCR(self) # <<<<<<<<<<<<<< -- * cdef int offset -- * -- */ -- __pyx_t_7 = PyArray_DESCR(__pyx_v_self); -- __pyx_t_3 = ((PyObject *)__pyx_t_7); -- __Pyx_INCREF(__pyx_t_3); -- __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":300 -- * cdef int offset -- * -- * info.obj = self # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(descr): -- */ -- __Pyx_INCREF(((PyObject *)__pyx_v_self)); -- __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); -- __Pyx_GOTREF(__pyx_v_info->obj); -- __Pyx_DECREF(__pyx_v_info->obj); -- __pyx_v_info->obj = ((PyObject *)__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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__5, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]) = '^'; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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'; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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): -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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(); --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735 - * ctypedef npy_cdouble complex_t - * - * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< -@@ -4218,9 +3431,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":822 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":736 - * - * cdef inline object PyArray_MultiIterNew1(a): - * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< -@@ -4228,13 +3444,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - * 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, 822, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735 - * ctypedef npy_cdouble complex_t - * - * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< -@@ -4253,7 +3469,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -+/* "../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): # <<<<<<<<<<<<<< -@@ -4265,9 +3481,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":825 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":739 - * - * cdef inline object PyArray_MultiIterNew2(a, b): - * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< -@@ -4275,13 +3494,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - * 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, 825, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -4300,7 +3519,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741 - * return PyArray_MultiIterNew(2, a, b) - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< -@@ -4312,9 +3531,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":828 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":742 - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): - * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< -@@ -4322,13 +3544,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - * 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, 828, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741 - * return PyArray_MultiIterNew(2, a, b) - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< -@@ -4347,7 +3569,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -+/* "../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): # <<<<<<<<<<<<<< -@@ -4359,9 +3581,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":831 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -4369,13 +3594,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - * 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, 831, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -4394,7 +3619,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 - * return PyArray_MultiIterNew(4, a, b, c, d) - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -@@ -4406,9 +3631,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":834 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -4416,13 +3644,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - * 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, 834, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 - * return PyArray_MultiIterNew(4, a, b, c, d) - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -@@ -4441,7 +3669,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -@@ -4455,7 +3683,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - int __pyx_t_1; - __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -@@ -4465,7 +3693,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); - if (__pyx_t_1) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":838 -+ /* "../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 # <<<<<<<<<<<<<< -@@ -4477,7 +3705,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -@@ -4486,12 +3714,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":840 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":754 - * 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); -@@ -4500,7 +3728,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - goto __pyx_L0; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -@@ -4515,754 +3743,8 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -- * -- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< -- * # Recursive utility function used in __getbuffer__ to get format -- * # string. The new location in the format string is returned. -- */ -- --static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) { -- PyArray_Descr *__pyx_v_child = 0; -- int __pyx_v_endian_detector; -- int __pyx_v_little_endian; -- PyObject *__pyx_v_fields = 0; -- PyObject *__pyx_v_childname = NULL; -- PyObject *__pyx_v_new_offset = NULL; -- PyObject *__pyx_v_t = NULL; -- char *__pyx_r; -- __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- Py_ssize_t __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- PyObject *__pyx_t_4 = NULL; -- int __pyx_t_5; -- int __pyx_t_6; -- int __pyx_t_7; -- long __pyx_t_8; -- char *__pyx_t_9; -- __Pyx_RefNannySetupContext("_util_dtypestring", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":848 -- * 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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- if (unlikely(__pyx_v_descr->names == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -- __PYX_ERR(2, 851, __pyx_L1_error) -- } -- __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; -- for (;;) { -- if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; -- #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, 851, __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, 851, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- #endif -- __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":852 -- * -- * for childname in descr.names: -- * fields = descr.fields[childname] # <<<<<<<<<<<<<< -- * child, new_offset = fields -- * -- */ -- if (unlikely(__pyx_v_descr->fields == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -- __PYX_ERR(2, 852, __pyx_L1_error) -- } -- __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":853 -- * 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, 853, __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, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- #endif -- } else { -- __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 853, __pyx_L1_error) -- } -- if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3)); -- __pyx_t_3 = 0; -- __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 856, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0); -- if (!__pyx_t_7) { -- goto __pyx_L8_next_or; -- } else { -- } -- __pyx_t_7 = (__pyx_v_little_endian != 0); -- if (!__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_L8_next_or:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":859 -- * -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< -- * raise ValueError(u"Non-native byte order not supported") -- * # One could encode it in the format string and have Cython -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0); -- if (__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0); -- __pyx_t_6 = __pyx_t_7; -- __pyx_L7_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":860 -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * # One could encode it in the format string and have Cython -- * # complain instead, BUT: < and > in format strings also imply -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 860, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 860, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":870 -- * -- * # Output padding bytes -- * while offset[0] < new_offset: # <<<<<<<<<<<<<< -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- */ -- while (1) { -- __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (!__pyx_t_6) break; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":871 -- * # Output padding bytes -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< -- * f += 1 -- * offset[0] += 1 -- */ -- (__pyx_v_f[0]) = 0x78; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":872 -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte -- * f += 1 # <<<<<<<<<<<<<< -- * offset[0] += 1 -- * -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":873 -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- * offset[0] += 1 # <<<<<<<<<<<<<< -- * -- * offset[0] += child.itemsize -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":875 -- * offset[0] += 1 -- * -- * offset[0] += child.itemsize # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(child): -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); -- if (__pyx_t_6) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":878 -- * -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num # <<<<<<<<<<<<<< -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") -- */ -- __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 878, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 880, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":883 -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 98; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":884 -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":885 -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x68; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":886 -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 72; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":887 -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x69; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":888 -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 73; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":889 -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x6C; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":890 -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 76; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":891 -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x71; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":892 -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 81; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":893 -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":894 -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x64; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":895 -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x67; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":896 -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x66; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":897 -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x64; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":898 -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x67; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":899 -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (likely(__pyx_t_6)) { -- (__pyx_v_f[0]) = 79; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":901 -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< -- * f += 1 -- * else: -- */ -- /*else*/ { -- __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 901, __pyx_L1_error) -- } -- __pyx_L15:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":902 -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- * f += 1 # <<<<<<<<<<<<<< -- * else: -- * # Cython ignores struct boundary information ("T{...}"), -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- goto __pyx_L13; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":906 -- * # Cython ignores struct boundary information ("T{...}"), -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< -- * return f -- * -- */ -- /*else*/ { -- __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(2, 906, __pyx_L1_error) -- __pyx_v_f = __pyx_t_9; -- } -- __pyx_L13:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- } -- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":907 -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) -- * return f # <<<<<<<<<<<<<< -- * -- * -- */ -- __pyx_r = __pyx_v_f; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -- * -- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< -- * # Recursive utility function used in __getbuffer__ to get format -- * # string. The new location in the format string is returned. -- */ -- -- /* function exit code */ -- __pyx_L1_error:; -- __Pyx_XDECREF(__pyx_t_1); -- __Pyx_XDECREF(__pyx_t_3); -- __Pyx_XDECREF(__pyx_t_4); -- __Pyx_AddTraceback("numpy._util_dtypestring", __pyx_clineno, __pyx_lineno, __pyx_filename); -- __pyx_r = NULL; -- __pyx_L0:; -- __Pyx_XDECREF((PyObject *)__pyx_v_child); -- __Pyx_XDECREF(__pyx_v_fields); -- __Pyx_XDECREF(__pyx_v_childname); -- __Pyx_XDECREF(__pyx_v_new_offset); -- __Pyx_XDECREF(__pyx_v_t); -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -- * int _import_umath() except -1 -+/* "../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): # <<<<<<<<<<<<<< - * Py_INCREF(base) # important to do this before stealing the reference below! -@@ -5273,7 +3755,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1023 -+ /* "../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! # <<<<<<<<<<<<<< -@@ -5282,7 +3764,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - Py_INCREF(__pyx_v_base); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1024 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -5291,7 +3773,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -5303,7 +3785,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyFinishContext(); - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+/* "../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): # <<<<<<<<<<<<<< -@@ -5318,7 +3800,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - int __pyx_t_1; - __Pyx_RefNannySetupContext("get_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1027 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -5327,7 +3809,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - __pyx_v_base = PyArray_BASE(__pyx_v_arr); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -5337,7 +3819,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) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1029 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":936 - * base = PyArray_BASE(arr) - * if base is NULL: - * return None # <<<<<<<<<<<<<< -@@ -5348,7 +3830,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -5357,7 +3839,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1030 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":937 - * if base is NULL: - * return None - * return base # <<<<<<<<<<<<<< -@@ -5369,7 +3851,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = ((PyObject *)__pyx_v_base); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -5384,12 +3866,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { -@@ -5403,13 +3885,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_array", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - { -@@ -5421,20 +3906,20 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1036 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":943 - * cdef inline int import_array() except -1: - * try: -- * _import_array() # <<<<<<<<<<<<<< -+ * __pyx_import_array() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") - */ -- __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1036, __pyx_L3_error) -+ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 943, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - } -@@ -5444,9 +3929,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1037 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":944 - * try: -- * _import_array() -+ * __pyx_import_array() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.multiarray failed to import") - * -@@ -5454,32 +3939,32 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1037, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 944, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 945, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __PYX_ERR(2, 945, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - __Pyx_XGIVEREF(__pyx_t_1); -@@ -5490,12 +3975,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - /* function exit code */ -@@ -5513,7 +3998,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -5532,9 +4017,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_umath", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5550,16 +4038,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1042 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":949 - * cdef inline int import_umath() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1042, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 949, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5573,7 +4061,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1043 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":950 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< -@@ -5583,28 +4071,28 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1043, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 950, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 951, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __PYX_ERR(2, 951, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5619,7 +4107,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -5642,7 +4130,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -5661,9 +4149,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_ufunc", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5679,16 +4170,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1048 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":955 - * cdef inline int import_ufunc() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1048, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 955, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5702,69 +4193,246 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1049 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":956 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.umath failed to import") -+ * - */ - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1049, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 956, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1050 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":957 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< -+ * -+ * cdef extern from *: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 957, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __PYX_ERR(2, 957, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 -+ * -+ * cdef inline int import_ufunc() except -1: -+ * try: # <<<<<<<<<<<<<< -+ * _import_umath() -+ * except Exception: -+ */ -+ __Pyx_XGIVEREF(__pyx_t_1); -+ __Pyx_XGIVEREF(__pyx_t_2); -+ __Pyx_XGIVEREF(__pyx_t_3); -+ __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); -+ goto __pyx_L1_error; -+ __pyx_L8_try_end:; -+ } -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 -+ * raise ImportError("numpy.core.umath failed to import") -+ * -+ * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -+ * try: -+ * _import_umath() -+ */ -+ -+ /* function exit code */ -+ __pyx_r = 0; -+ goto __pyx_L0; -+ __pyx_L1_error:; -+ __Pyx_XDECREF(__pyx_t_5); -+ __Pyx_XDECREF(__pyx_t_6); -+ __Pyx_XDECREF(__pyx_t_7); -+ __Pyx_XDECREF(__pyx_t_8); -+ __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -+ __pyx_r = -1; -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_timedelta64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":979 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_datetime64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":994 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { -+ npy_datetime __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1004 -+ * also needed. That can be found using `get_datetime64_unit`. -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { -+ npy_timedelta __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1011 -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: -- * try: # <<<<<<<<<<<<<< -- * _import_umath() -- * except Exception: -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ -- __Pyx_XGIVEREF(__pyx_t_1); -- __Pyx_XGIVEREF(__pyx_t_2); -- __Pyx_XGIVEREF(__pyx_t_3); -- __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); -- goto __pyx_L1_error; -- __pyx_L8_try_end:; -- } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -- * raise ImportError("numpy.core.umath failed to import") -+static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { -+ NPY_DATETIMEUNIT __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1018 -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ * """ -+ * return (obj).obmeta.base # <<<<<<<<<<<<<< -+ */ -+ __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -- * try: -- * _import_umath() -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ - - /* function exit code */ -- __pyx_r = 0; -- goto __pyx_L0; -- __pyx_L1_error:; -- __Pyx_XDECREF(__pyx_t_5); -- __Pyx_XDECREF(__pyx_t_6); -- __Pyx_XDECREF(__pyx_t_7); -- __Pyx_XDECREF(__pyx_t_8); -- __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -- __pyx_r = -1; - __pyx_L0:; -- __Pyx_RefNannyFinishContext(); - return __pyx_r; - } - -@@ -5849,7 +4517,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix - sizeof(struct __pyx_obj_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -5902,6 +4575,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyMethodDef __pyx_methods[] = { -@@ -5951,13 +4630,8 @@ static struct PyModuleDef __pyx_moduledef = { - - static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_CyCoinPackedMatrix, __pyx_k_CyCoinPackedMatrix, sizeof(__pyx_k_CyCoinPackedMatrix), 0, 0, 1, 1}, -- {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, -- {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, - {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, -- {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, -- {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, -- {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, - {&__pyx_n_s_colIndices, __pyx_k_colIndices, sizeof(__pyx_k_colIndices), 0, 0, 1, 1}, - {&__pyx_n_s_colOrdered, __pyx_k_colOrdered, sizeof(__pyx_k_colOrdered), 0, 0, 1, 1}, -@@ -5967,8 +4641,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, -- {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, -- {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, - {&__pyx_n_s_newMaxMajorDim, __pyx_k_newMaxMajorDim, sizeof(__pyx_k_newMaxMajorDim), 0, 0, 1, 1}, - {&__pyx_n_s_newMaxSize, __pyx_k_newMaxSize, sizeof(__pyx_k_newMaxSize), 0, 0, 1, 1}, - {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0}, -@@ -5976,7 +4648,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1}, - {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0}, - {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0}, -- {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, -@@ -5985,16 +4656,12 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, - {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, -- {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, - {&__pyx_n_s_vecInd, __pyx_k_vecInd, sizeof(__pyx_k_vecInd), 0, 0, 1, 1}, - {0, 0, 0, 0, 0, 0, 0} - }; - static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 2, __pyx_L1_error) -- __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(2, 272, __pyx_L1_error) -- __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(2, 285, __pyx_L1_error) -- __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(2, 856, __pyx_L1_error) -- __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 1038, __pyx_L1_error) -+ __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 945, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -@@ -6023,82 +4690,27 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_GOTREF(__pyx_tuple__2); - __Pyx_GIVEREF(__pyx_tuple__2); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":272 -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(2, 272, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__3); -- __Pyx_GIVEREF(__pyx_tuple__3); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":276 -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 276, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__4); -- __Pyx_GIVEREF(__pyx_tuple__4); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":306 -- * if ((descr.byteorder == c'>' and little_endian) or -- * (descr.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * if t == NPY_BYTE: f = "b" -- * elif t == NPY_UBYTE: f = "B" -- */ -- __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(2, 306, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__5); -- __Pyx_GIVEREF(__pyx_tuple__5); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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_tuple__6 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__6); -- __Pyx_GIVEREF(__pyx_tuple__6); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__7); -- __Pyx_GIVEREF(__pyx_tuple__7); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(2, 1038, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__8); -- __Pyx_GIVEREF(__pyx_tuple__8); -+ __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(2, 945, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__3); -+ __Pyx_GIVEREF(__pyx_tuple__3); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(2, 1044, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__9); -- __Pyx_GIVEREF(__pyx_tuple__9); -+ __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 951, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__4); -+ __Pyx_GIVEREF(__pyx_tuple__4); - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; -@@ -6149,6 +4761,9 @@ static int __Pyx_modinit_function_export_code(void) { - - static int __Pyx_modinit_type_init_code(void) { - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ - if (PyType_Ready(&__pyx_type_4cylp_2cy_18CyCoinPackedMatrix_CyCoinPackedMatrix) < 0) __PYX_ERR(1, 7, __pyx_L1_error) -@@ -6171,6 +4786,9 @@ static int __Pyx_modinit_type_init_code(void) { - static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error) -@@ -6184,18 +4802,38 @@ static int __Pyx_modinit_type_import_code(void) { - __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(3, 9, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 206, __pyx_L1_error) -+ __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 206, __pyx_L1_error) -- __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 229, __pyx_L1_error) -- __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 233, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 200, __pyx_L1_error) -+ __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 223, __pyx_L1_error) -+ __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 227, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 242, __pyx_L1_error) -- __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 918, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 239, __pyx_L1_error) -+ __pyx_ptype_5numpy_generic = __Pyx_ImportType(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 771, __pyx_L1_error) -+ __pyx_ptype_5numpy_number = __Pyx_ImportType(__pyx_t_1, "numpy", "number", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 773, __pyx_L1_error) -+ __pyx_ptype_5numpy_integer = __Pyx_ImportType(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 775, __pyx_L1_error) -+ __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 777, __pyx_L1_error) -+ __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 779, __pyx_L1_error) -+ __pyx_ptype_5numpy_inexact = __Pyx_ImportType(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 781, __pyx_L1_error) -+ __pyx_ptype_5numpy_floating = __Pyx_ImportType(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 783, __pyx_L1_error) -+ __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 785, __pyx_L1_error) -+ __pyx_ptype_5numpy_flexible = __Pyx_ImportType(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 787, __pyx_L1_error) -+ __pyx_ptype_5numpy_character = __Pyx_ImportType(__pyx_t_1, "numpy", "character", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 789, __pyx_L1_error) -+ __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 827, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_RefNannyFinishContext(); - return 0; -@@ -6222,17 +4860,19 @@ static int __Pyx_modinit_function_import_code(void) { - } - - --#if PY_MAJOR_VERSION < 3 --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC void --#else -+#ifndef CYTHON_NO_PYINIT_EXPORT - #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#elif PY_MAJOR_VERSION < 3 -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" void -+#else -+#define __Pyx_PyMODINIT_FUNC void - #endif - #else --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC PyObject * -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * - #else --#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#define __Pyx_PyMODINIT_FUNC PyObject * - #endif - #endif - -@@ -6314,6 +4954,9 @@ static CYTHON_SMALL_CODE int __pyx_pymod_exec_CyCoinPackedMatrix(PyObject *__pyx - #endif - { - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { -@@ -6361,11 +5004,9 @@ if (!__Pyx_RefNanny) { - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ -- #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS -- #ifdef WITH_THREAD /* Python build with threading support? */ -+ #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - PyEval_InitThreads(); - #endif -- #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; -@@ -6402,15 +5043,15 @@ if (!__Pyx_RefNanny) { - } - #endif - /*--- Builtin init code ---*/ -- if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Constants init code ---*/ -- if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(); - (void)__Pyx_modinit_variable_export_code(); - (void)__Pyx_modinit_function_export_code(); -- if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; -- if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; -+ if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) -+ if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) - (void)__Pyx_modinit_variable_import_code(); - (void)__Pyx_modinit_function_import_code(); - /*--- Execution code ---*/ -@@ -6440,12 +5081,12 @@ if (!__Pyx_RefNanny) { - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -- * raise ImportError("numpy.core.umath failed to import") -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -- * try: -- * _import_umath() -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ - - /*--- Wrapped vars code ---*/ -@@ -6554,7 +5195,7 @@ static int __Pyx_ParseOptionalKeywords( - } - name = first_kw_arg; - #if PY_MAJOR_VERSION < 3 -- if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { -+ if (likely(PyString_Check(key))) { - while (*name) { - if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) - && _PyString_Eq(**name, key)) { -@@ -6581,7 +5222,7 @@ static int __Pyx_ParseOptionalKeywords( - while (*name) { - int cmp = (**name == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 -- (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : -+ (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**name, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; -@@ -6597,7 +5238,7 @@ static int __Pyx_ParseOptionalKeywords( - while (argname != first_kw_arg) { - int cmp = (**argname == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 -- (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : -+ (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**argname, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; -@@ -6748,6 +5389,7 @@ static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) { - } - static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) { - switch (ch) { -+ case '?': return "'bool'"; - case 'c': return "'char'"; - case 'b': return "'signed char'"; - case 'B': return "'unsigned char'"; -@@ -6790,7 +5432,7 @@ static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) { - } - static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) { - switch (ch) { -- case 'c': case 'b': case 'B': case 's': case 'p': return 1; -+ case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; - case 'h': case 'H': return sizeof(short); - case 'i': case 'I': return sizeof(int); - case 'l': case 'L': return sizeof(long); -@@ -6874,7 +5516,7 @@ static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) { - case 'b': case 'h': case 'i': - case 'l': case 'q': case 's': case 'p': - return 'I'; -- case 'B': case 'H': case 'I': case 'L': case 'Q': -+ case '?': case 'B': case 'H': case 'I': case 'L': case 'Q': - return 'U'; - case 'f': case 'd': case 'g': - return (is_complex ? 'C' : 'R'); -@@ -7018,9 +5660,7 @@ static PyObject * - __pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp) - { - const char *ts = *tsp; -- int i = 0, number; -- int ndim = ctx->head->field->type->ndim; --; -+ int i = 0, number, ndim; - ++ts; - if (ctx->new_count != 1) { - PyErr_SetString(PyExc_ValueError, -@@ -7028,6 +5668,7 @@ __pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp) - return NULL; - } - if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; -+ ndim = ctx->head->field->type->ndim; - while (*ts && *ts != ')') { - switch (*ts) { - case ' ': case '\f': case '\r': case '\n': case '\t': case '\v': continue; -@@ -7153,12 +5794,12 @@ static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const cha - return NULL; - } - CYTHON_FALLTHROUGH; -- case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I': -+ case '?': case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I': - case 'l': case 'L': case 'q': case 'Q': - case 'f': case 'd': case 'g': - case 'O': case 'p': -- if (ctx->enc_type == *ts && got_Z == ctx->is_complex && -- ctx->enc_packmode == ctx->new_packmode) { -+ if ((ctx->enc_type == *ts) && (got_Z == ctx->is_complex) && -+ (ctx->enc_packmode == ctx->new_packmode) && (!ctx->is_valid_array)) { - ctx->enc_count += ctx->new_count; - ctx->new_count = 1; - got_Z = 0; -@@ -7269,7 +5910,7 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - #if CYTHON_COMPILING_IN_CPYTHON - static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; -- ternaryfunc call = func->ob_type->tp_call; -+ ternaryfunc call = Py_TYPE(func)->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -@@ -7444,263 +6085,6 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject - } - #endif - --/* PyCFunctionFastCall */ -- #if CYTHON_FAST_PYCCALL --static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { -- PyCFunctionObject *func = (PyCFunctionObject*)func_obj; -- PyCFunction meth = PyCFunction_GET_FUNCTION(func); -- PyObject *self = PyCFunction_GET_SELF(func); -- int flags = PyCFunction_GET_FLAGS(func); -- assert(PyCFunction_Check(func)); -- assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); -- assert(nargs >= 0); -- assert(nargs == 0 || args != NULL); -- /* _PyCFunction_FastCallDict() must not be called with an exception set, -- because it may clear it (directly or indirectly) and so the -- caller loses its exception */ -- assert(!PyErr_Occurred()); -- if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { -- return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); -- } else { -- return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); -- } --} --#endif -- --/* PyFunctionFastCall */ -- #if CYTHON_FAST_PYCALL --static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, -- PyObject *globals) { -- PyFrameObject *f; -- PyThreadState *tstate = __Pyx_PyThreadState_Current; -- PyObject **fastlocals; -- Py_ssize_t i; -- PyObject *result; -- assert(globals != NULL); -- /* XXX Perhaps we should create a specialized -- PyFrame_New() that doesn't take locals, but does -- take builtins without sanity checking them. -- */ -- assert(tstate != NULL); -- f = PyFrame_New(tstate, co, globals, NULL); -- if (f == NULL) { -- return NULL; -- } -- fastlocals = __Pyx_PyFrame_GetLocalsplus(f); -- for (i = 0; i < na; i++) { -- Py_INCREF(*args); -- fastlocals[i] = *args++; -- } -- result = PyEval_EvalFrameEx(f,0); -- ++tstate->recursion_depth; -- Py_DECREF(f); -- --tstate->recursion_depth; -- return result; --} --#if 1 || PY_VERSION_HEX < 0x030600B1 --static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { -- PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); -- PyObject *globals = PyFunction_GET_GLOBALS(func); -- PyObject *argdefs = PyFunction_GET_DEFAULTS(func); -- PyObject *closure; --#if PY_MAJOR_VERSION >= 3 -- PyObject *kwdefs; --#endif -- PyObject *kwtuple, **k; -- PyObject **d; -- Py_ssize_t nd; -- Py_ssize_t nk; -- PyObject *result; -- assert(kwargs == NULL || PyDict_Check(kwargs)); -- nk = kwargs ? PyDict_Size(kwargs) : 0; -- if (Py_EnterRecursiveCall((char*)" while calling a Python object")) { -- return NULL; -- } -- if ( --#if PY_MAJOR_VERSION >= 3 -- co->co_kwonlyargcount == 0 && --#endif -- likely(kwargs == NULL || nk == 0) && -- co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { -- if (argdefs == NULL && co->co_argcount == nargs) { -- result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); -- goto done; -- } -- else if (nargs == 0 && argdefs != NULL -- && co->co_argcount == Py_SIZE(argdefs)) { -- /* function called with no arguments, but all parameters have -- a default value: use default values as arguments .*/ -- args = &PyTuple_GET_ITEM(argdefs, 0); -- result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); -- goto done; -- } -- } -- if (kwargs != NULL) { -- Py_ssize_t pos, i; -- kwtuple = PyTuple_New(2 * nk); -- if (kwtuple == NULL) { -- result = NULL; -- goto done; -- } -- k = &PyTuple_GET_ITEM(kwtuple, 0); -- pos = i = 0; -- while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { -- Py_INCREF(k[i]); -- Py_INCREF(k[i+1]); -- i += 2; -- } -- nk = i / 2; -- } -- else { -- kwtuple = NULL; -- k = NULL; -- } -- closure = PyFunction_GET_CLOSURE(func); --#if PY_MAJOR_VERSION >= 3 -- kwdefs = PyFunction_GET_KW_DEFAULTS(func); --#endif -- if (argdefs != NULL) { -- d = &PyTuple_GET_ITEM(argdefs, 0); -- nd = Py_SIZE(argdefs); -- } -- else { -- d = NULL; -- nd = 0; -- } --#if PY_MAJOR_VERSION >= 3 -- result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, -- args, (int)nargs, -- k, (int)nk, -- d, (int)nd, kwdefs, closure); --#else -- result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, -- args, (int)nargs, -- k, (int)nk, -- d, (int)nd, closure); --#endif -- Py_XDECREF(kwtuple); --done: -- Py_LeaveRecursiveCall(); -- return result; --} --#endif --#endif -- --/* PyObjectCallMethO */ -- #if CYTHON_COMPILING_IN_CPYTHON --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { -- PyObject *self, *result; -- PyCFunction cfunc; -- cfunc = PyCFunction_GET_FUNCTION(func); -- self = PyCFunction_GET_SELF(func); -- if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -- return NULL; -- result = cfunc(self, arg); -- Py_LeaveRecursiveCall(); -- if (unlikely(!result) && unlikely(!PyErr_Occurred())) { -- PyErr_SetString( -- PyExc_SystemError, -- "NULL result without error in PyObject_Call"); -- } -- return result; --} --#endif -- --/* PyObjectCallOneArg */ -- #if CYTHON_COMPILING_IN_CPYTHON --static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { -- PyObject *result; -- PyObject *args = PyTuple_New(1); -- if (unlikely(!args)) return NULL; -- Py_INCREF(arg); -- PyTuple_SET_ITEM(args, 0, arg); -- result = __Pyx_PyObject_Call(func, args, NULL); -- Py_DECREF(args); -- return result; --} --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { --#if CYTHON_FAST_PYCALL -- if (PyFunction_Check(func)) { -- return __Pyx_PyFunction_FastCall(func, &arg, 1); -- } --#endif -- if (likely(PyCFunction_Check(func))) { -- if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { -- return __Pyx_PyObject_CallMethO(func, arg); --#if CYTHON_FAST_PYCCALL -- } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { -- return __Pyx_PyCFunction_FastCall(func, &arg, 1); --#endif -- } -- } -- return __Pyx__PyObject_CallOneArg(func, arg); --} --#else --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { -- PyObject *result; -- PyObject *args = PyTuple_Pack(1, arg); -- if (unlikely(!args)) return NULL; -- result = __Pyx_PyObject_Call(func, args, NULL); -- Py_DECREF(args); -- return result; --} --#endif -- --/* DictGetItem */ -- #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY --static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { -- PyObject *value; -- value = PyDict_GetItemWithError(d, key); -- if (unlikely(!value)) { -- if (!PyErr_Occurred()) { -- if (unlikely(PyTuple_Check(key))) { -- PyObject* args = PyTuple_Pack(1, key); -- if (likely(args)) { -- PyErr_SetObject(PyExc_KeyError, args); -- Py_DECREF(args); -- } -- } else { -- PyErr_SetObject(PyExc_KeyError, key); -- } -- } -- return NULL; -- } -- Py_INCREF(value); -- return value; --} --#endif -- --/* RaiseTooManyValuesToUnpack */ -- static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { -- PyErr_Format(PyExc_ValueError, -- "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); --} -- --/* RaiseNeedMoreValuesToUnpack */ -- static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { -- PyErr_Format(PyExc_ValueError, -- "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", -- index, (index == 1) ? "" : "s"); --} -- --/* RaiseNoneIterError */ -- static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); --} -- --/* ExtTypeTest */ -- static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { -- if (unlikely(!type)) { -- PyErr_SetString(PyExc_SystemError, "Missing type object"); -- return 0; -- } -- if (likely(__Pyx_TypeCheck(obj, type))) -- return 1; -- PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", -- Py_TYPE(obj)->tp_name, type->tp_name); -- return 0; --} -- - /* GetTopmostException */ - #if CYTHON_USE_EXC_INFO_STACK - static _PyErr_StackItem * -@@ -7906,6 +6290,28 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam - } - #endif - -+/* PyObjectGetAttrStrNoError */ -+ static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { -+ __Pyx_PyThreadState_declare -+ __Pyx_PyThreadState_assign -+ if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) -+ __Pyx_PyErr_Clear(); -+} -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { -+ PyObject *result; -+#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 -+ PyTypeObject* tp = Py_TYPE(obj); -+ if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { -+ return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); -+ } -+#endif -+ result = __Pyx_PyObject_GetAttrStr(obj, attr_name); -+ if (unlikely(!result)) { -+ __Pyx_PyObject_GetAttrStr_ClearAttributeError(); -+ } -+ return result; -+} -+ - /* SetupReduce */ - static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { - int ret; -@@ -7933,43 +6339,51 @@ static int __Pyx_setup_reduce(PyObject* type_obj) { - PyObject *setstate = NULL; - PyObject *setstate_cython = NULL; - #if CYTHON_USE_PYTYPE_LOOKUP -- if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #else -- if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #endif - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #else -- object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #endif -- reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; -+ reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; - if (reduce_ex == object_reduce_ex) { - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #else -- object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #endif -- reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; -+ reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; - if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { -- reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; -+ reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); -+ if (likely(reduce_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (reduce == object_reduce || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); - if (!setstate) PyErr_Clear(); - if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { -- setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; -+ setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); -+ if (likely(setstate_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (!setstate || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - } - PyType_Modified((PyTypeObject*)type_obj); - } - } -- goto GOOD; --BAD: -+ goto __PYX_GOOD; -+__PYX_BAD: - if (!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); - ret = -1; --GOOD: -+__PYX_GOOD: - #if !CYTHON_USE_PYTYPE_LOOKUP - Py_XDECREF(object_reduce); - Py_XDECREF(object_reduce_ex); -@@ -8073,7 +6487,7 @@ static PyTypeObject *__Pyx_ImportType(PyObject *module, const char *module_name, - { - #if PY_MAJOR_VERSION >= 3 - if (level == -1) { -- if (strchr(__Pyx_MODULE_NAME, '.')) { -+ if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) { - module = PyImport_ImportModuleLevelObject( - name, global_dict, empty_dict, list, 1); - if (!module) { -@@ -8136,7 +6550,7 @@ static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UIN - - /* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK --static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { -+static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) { - PyObject *use_cline; - PyObject *ptype, *pvalue, *ptraceback; - #if CYTHON_COMPILING_IN_CPYTHON -@@ -8166,7 +6580,7 @@ static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { - } - if (!use_cline) { - c_line = 0; -- PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); -+ (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; -@@ -8240,7 +6654,7 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - if (__pyx_code_cache.count == __pyx_code_cache.max_count) { - int new_max = __pyx_code_cache.max_count + 64; - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( -- __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); -+ __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); - if (unlikely(!entries)) { - return; - } -@@ -8263,30 +6677,31 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { -- PyCodeObject *py_code = 0; -- PyObject *py_srcfile = 0; -- PyObject *py_funcname = 0; -+ PyCodeObject *py_code = NULL; -+ PyObject *py_funcname = NULL; - #if PY_MAJOR_VERSION < 3 -+ PyObject *py_srcfile = NULL; - py_srcfile = PyString_FromString(filename); -- #else -- py_srcfile = PyUnicode_FromString(filename); -- #endif - if (!py_srcfile) goto bad; -+ #endif - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; -+ funcname = PyUnicode_AsUTF8(py_funcname); -+ if (!funcname) goto bad; - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); -- #else -- py_funcname = PyUnicode_FromString(funcname); -+ if (!py_funcname) goto bad; - #endif - } -- if (!py_funcname) goto bad; -+ #if PY_MAJOR_VERSION < 3 - py_code = __Pyx_PyCode_New( - 0, - 0, -@@ -8305,11 +6720,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); -- Py_DECREF(py_funcname); -+ #else -+ py_code = PyCode_NewEmpty(filename, funcname, py_line); -+ #endif -+ Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline - return py_code; - bad: -- Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); -+ #if PY_MAJOR_VERSION < 3 -+ Py_XDECREF(py_srcfile); -+ #endif - return NULL; - } - static void __Pyx_AddTraceback(const char *funcname, int c_line, -@@ -8344,7 +6764,6 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - #if PY_MAJOR_VERSION < 3 - static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) { - if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags); -- if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) return __pyx_pw_5numpy_7ndarray_1__getbuffer__(obj, view, flags); - PyErr_Format(PyExc_TypeError, "'%.200s' does not have the buffer interface", Py_TYPE(obj)->tp_name); - return -1; - } -@@ -8356,45 +6775,13 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - return; - } - if ((0)) {} -- else if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) __pyx_pw_5numpy_7ndarray_3__releasebuffer__(obj, view); - view->obj = NULL; - Py_DECREF(obj); - } - #endif - - -- /* CIntToPy */ -- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(int) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(int) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(int) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(int), -- little, !is_unsigned); -- } --} -- --/* CIntFromPyVerify */ -+ /* CIntFromPyVerify */ - #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ - __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) - #define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ -@@ -8533,7 +6920,6 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_float(a, a); - return __Pyx_c_prod_float(a, a); - case 3: - z = __Pyx_c_prod_float(a, a); -@@ -8688,7 +7074,6 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_double(a, a); - return __Pyx_c_prod_double(a, a); - case 3: - z = __Pyx_c_prod_double(a, a); -@@ -8727,24 +7112,31 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - #endif - - /* CIntToPy */ -- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { -- const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0; -+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { -- if (sizeof(enum NPY_TYPES) < sizeof(long)) { -+ if (sizeof(int) < sizeof(long)) { - return PyInt_FromLong((long) value); -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { -+ } else if (sizeof(int) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); - #ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { -+ } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); - #endif - } - } else { -- if (sizeof(enum NPY_TYPES) <= sizeof(long)) { -+ if (sizeof(int) <= sizeof(long)) { - return PyInt_FromLong((long) value); - #ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { -+ } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); - #endif - } -@@ -8752,14 +7144,21 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), -+ return _PyLong_FromByteArray(bytes, sizeof(int), - little, !is_unsigned); - } - } - - /* CIntFromPy */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -8948,7 +7347,14 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - - /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(long) < sizeof(long)) { -@@ -8979,7 +7385,14 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - - /* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -9530,6 +7943,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_DECREF(x); - return ival; - } -+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { -+ if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { -+ return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); -+#if PY_MAJOR_VERSION < 3 -+ } else if (likely(PyInt_CheckExact(o))) { -+ return PyInt_AS_LONG(o); -+#endif -+ } else { -+ Py_ssize_t ival; -+ PyObject *x; -+ x = PyNumber_Index(o); -+ if (!x) return -1; -+ ival = PyInt_AsLong(x); -+ Py_DECREF(x); -+ return ival; -+ } -+} - static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); - } -diff --git a/cylp/cy/CyCutGeneratorPythonBase.cpp b/cylp/cy/CyCutGeneratorPythonBase.cpp -index 85efdde..55d29ea 100644 ---- a/cylp/cy/CyCutGeneratorPythonBase.cpp -+++ b/cylp/cy/CyCutGeneratorPythonBase.cpp -@@ -1,14 +1,16 @@ --/* Generated by Cython 0.29.12 */ -+/* 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_12" --#define CYTHON_HEX_VERSION 0x001D0CF0 -+#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) -@@ -449,7 +516,15 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) - #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) -+ #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 - #else - #define CYTHON_PEP393_ENABLED 0 - #define PyUnicode_1BYTE_KIND 1 -@@ -498,8 +573,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact -+#ifndef PyObject_Unicode - #define PyObject_Unicode PyObject_Str - #endif -+#endif - #if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) - #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) -@@ -510,6 +587,13 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #ifndef PySet_CheckExact - #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) - #endif -+#if PY_VERSION_HEX >= 0x030900A4 -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) -+#else -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) -+#endif - #if CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) - #else -@@ -543,13 +627,13 @@ 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) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) -+ #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) - #else - #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) - #endif -@@ -590,11 +674,10 @@ static CYTHON_INLINE float __PYX_NAN() { - #define __Pyx_truncl truncl - #endif - -- -+#define __PYX_MARK_ERR_POS(f_index, lineno) \ -+ { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } - #define __PYX_ERR(f_index, lineno, Ln_error) \ --{ \ -- __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ --} -+ { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } - - #ifndef __PYX_EXTERN_C - #ifdef __cplusplus -@@ -615,7 +698,13 @@ static CYTHON_INLINE float __PYX_NAN() { - #include "ClpFactorization.hpp" - #include "IClpPrimalColumnPivotBase.h" - #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 "ClpDualRowPivot.hpp" - #include "IClpDualRowPivotBase.h" - #include "CoinModel.hpp" -@@ -643,11 +732,11 @@ static CYTHON_INLINE float __PYX_NAN() { - #include "OsiSolverInterface.hpp" - #include "CbcCompareUser.hpp" - #include "ICbcModel.hpp" -+#include - #include "ios" - #include "new" - #include "stdexcept" - #include "typeinfo" --#include - #include - #include "IClpSimplex.hpp" - #include "IOsiCuts.hpp" -@@ -749,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 -@@ -884,26 +974,26 @@ static const char *__pyx_filename; - - static const char *__pyx_f[] = { - "stringsource", -- "cylp\\cy\\CyCutGeneratorPythonBase.pyx", -+ "cylp/cy/CyCutGeneratorPythonBase.pyx", - "__init__.pxd", - "type.pxd", - "bool.pxd", - "complex.pxd", -- "cylp\\cy\\CyCoinIndexedVector.pxd", -- "cylp\\cy\\CyClpPrimalColumnPivotBase.pxd", -- "cylp\\cy\\CyClpDualRowPivotBase.pxd", -- "cylp\\cy\\CyCoinModel.pxd", -- "cylp\\cy\\CyCoinPackedMatrix.pxd", -- "cylp\\cy\\CyCgl.pxd", -- "cylp\\cy\\CyCbcNode.pxd", -- "cylp\\cy\\CyOsiSolverInterface.pxd", -- "cylp\\cy\\CyCbcModel.pxd", -- "cylp\\cy\\CyClpSimplex.pxd", -- "cylp\\cy\\CyOsiCuts.pxd", -- "cylp\\cy\\CyCglTreeInfo.pxd", -+ "cylp/cy/CyCoinIndexedVector.pxd", -+ "cylp/cy/CyClpPrimalColumnPivotBase.pxd", -+ "cylp/cy/CyClpDualRowPivotBase.pxd", -+ "cylp/cy/CyCoinModel.pxd", -+ "cylp/cy/CyCoinPackedMatrix.pxd", -+ "cylp/cy/CyCgl.pxd", -+ "cylp/cy/CyCbcNode.pxd", -+ "cylp/cy/CyOsiSolverInterface.pxd", -+ "cylp/cy/CyCbcModel.pxd", -+ "cylp/cy/CyClpSimplex.pxd", -+ "cylp/cy/CyOsiCuts.pxd", -+ "cylp/cy/CyCglTreeInfo.pxd", - }; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":776 -+/* "../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 # <<<<<<<<<<<<<< -@@ -912,7 +1002,7 @@ static const char *__pyx_f[] = { - */ - typedef npy_int8 __pyx_t_5numpy_int8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":777 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":691 - * - * ctypedef npy_int8 int8_t - * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< -@@ -921,7 +1011,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; - */ - typedef npy_int16 __pyx_t_5numpy_int16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":778 -+/* "../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 # <<<<<<<<<<<<<< -@@ -930,7 +1020,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; - */ - typedef npy_int32 __pyx_t_5numpy_int32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":779 -+/* "../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 # <<<<<<<<<<<<<< -@@ -939,7 +1029,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; - */ - typedef npy_int64 __pyx_t_5numpy_int64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":783 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":697 - * #ctypedef npy_int128 int128_t - * - * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< -@@ -948,7 +1038,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; - */ - typedef npy_uint8 __pyx_t_5numpy_uint8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":784 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":698 - * - * ctypedef npy_uint8 uint8_t - * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< -@@ -957,7 +1047,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; - */ - typedef npy_uint16 __pyx_t_5numpy_uint16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":785 -+/* "../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 # <<<<<<<<<<<<<< -@@ -966,7 +1056,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; - */ - typedef npy_uint32 __pyx_t_5numpy_uint32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":786 -+/* "../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 # <<<<<<<<<<<<<< -@@ -975,7 +1065,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; - */ - typedef npy_uint64 __pyx_t_5numpy_uint64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":790 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":704 - * #ctypedef npy_uint128 uint128_t - * - * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< -@@ -984,7 +1074,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; - */ - typedef npy_float32 __pyx_t_5numpy_float32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":791 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":705 - * - * ctypedef npy_float32 float32_t - * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< -@@ -993,7 +1083,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; - */ - typedef npy_float64 __pyx_t_5numpy_float64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":800 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1002,7 +1092,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; - */ - typedef npy_long __pyx_t_5numpy_int_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":801 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1011,7 +1101,7 @@ typedef npy_long __pyx_t_5numpy_int_t; - */ - typedef npy_longlong __pyx_t_5numpy_long_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":802 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1020,7 +1110,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; - */ - typedef npy_longlong __pyx_t_5numpy_longlong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":804 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":718 - * ctypedef npy_longlong longlong_t - * - * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< -@@ -1029,7 +1119,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; - */ - typedef npy_ulong __pyx_t_5numpy_uint_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":805 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":719 - * - * ctypedef npy_ulong uint_t - * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< -@@ -1038,7 +1128,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":806 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1047,7 +1137,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":808 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":722 - * ctypedef npy_ulonglong ulonglong_t - * - * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< -@@ -1056,7 +1146,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - */ - typedef npy_intp __pyx_t_5numpy_intp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":809 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":723 - * - * ctypedef npy_intp intp_t - * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< -@@ -1065,7 +1155,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; - */ - typedef npy_uintp __pyx_t_5numpy_uintp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":811 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":725 - * ctypedef npy_uintp uintp_t - * - * ctypedef npy_double float_t # <<<<<<<<<<<<<< -@@ -1074,7 +1164,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; - */ - typedef npy_double __pyx_t_5numpy_float_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":812 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":726 - * - * ctypedef npy_double float_t - * ctypedef npy_double double_t # <<<<<<<<<<<<<< -@@ -1083,7 +1173,7 @@ typedef npy_double __pyx_t_5numpy_float_t; - */ - typedef npy_double __pyx_t_5numpy_double_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":813 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1149,7 +1239,7 @@ struct __pyx_obj_4cylp_2cy_13CyCglTreeInfo_CyCglTreeInfo; - struct __pyx_obj_4cylp_2cy_21CyCglCutGeneratorBase_CyCglCutGeneratorBase; - struct __pyx_obj_4cylp_2cy_24CyCutGeneratorPythonBase_CyCutGeneratorPythonBase; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":815 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":729 - * ctypedef npy_longdouble longdouble_t - * - * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< -@@ -1158,7 +1248,7 @@ struct __pyx_obj_4cylp_2cy_24CyCutGeneratorPythonBase_CyCutGeneratorPythonBase; - */ - typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":816 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":730 - * - * ctypedef npy_cfloat cfloat_t - * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< -@@ -1167,7 +1257,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - */ - typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":817 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1176,7 +1266,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - */ - typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":819 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":733 - * ctypedef npy_clongdouble clongdouble_t - * - * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< -@@ -1976,6 +2066,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()\ -@@ -1983,6 +2074,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 */ -@@ -2049,29 +2141,6 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - /* RaiseException.proto */ - static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); - --/* 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); -@@ -2144,6 +2213,9 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam - /* SetVTable.proto */ - static int __Pyx_SetVtable(PyObject *dict, void *vtable); - -+/* PyObjectGetAttrStrNoError.proto */ -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); -+ - /* SetupReduce.proto */ - static int __Pyx_setup_reduce(PyObject* type_obj); - -@@ -2297,14 +2369,10 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - #endif - #endif - --/* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); -- --/* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value); -- --/* CIntFromPy.proto */ --static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); -+/* GCCDiagnostics.proto */ -+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -+#define __Pyx_HAS_GCC_DIAGNOSTIC -+#endif - - /* CIntToPy.proto */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); -@@ -2312,6 +2380,9 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); - /* CIntFromPy.proto */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); - -+/* CIntFromPy.proto */ -+static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); -+ - /* FastTypeChecks.proto */ - #if CYTHON_COMPILING_IN_CPYTHON - #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) -@@ -2435,8 +2506,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.CyClpDualRowPivotBase' */ - static PyTypeObject *__pyx_ptype_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase = 0; -@@ -2502,16 +2582,12 @@ int __pyx_module_is_main_cylp__cy__CyCutGeneratorPythonBase = 0; - - /* Implementation of 'cylp.cy.CyCutGeneratorPythonBase' */ - static PyObject *__pyx_builtin_TypeError; --static PyObject *__pyx_builtin_ValueError; --static PyObject *__pyx_builtin_range; --static PyObject *__pyx_builtin_RuntimeError; - static PyObject *__pyx_builtin_ImportError; - static const char __pyx_k_cut[] = "cut"; - static const char __pyx_k_init[] = "__init__"; - static const char __pyx_k_main[] = "__main__"; - static const char __pyx_k_name[] = "__name__"; - static const char __pyx_k_test[] = "__test__"; --static const char __pyx_k_range[] = "range"; - static const char __pyx_k_reduce[] = "__reduce__"; - static const char __pyx_k_isRange[] = "isRange"; - static const char __pyx_k_evaluate[] = "evaluate"; -@@ -2521,10 +2597,8 @@ static const char __pyx_k_TypeError[] = "TypeError"; - static const char __pyx_k_addRowCut[] = "addRowCut"; - static const char __pyx_k_cyLPModel[] = "cyLPModel"; - static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; --static const char __pyx_k_ValueError[] = "ValueError"; - static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; - static const char __pyx_k_ImportError[] = "ImportError"; --static const char __pyx_k_RuntimeError[] = "RuntimeError"; - static const char __pyx_k_addColumnCut[] = "addColumnCut"; - static const char __pyx_k_generateCuts[] = "generateCuts"; - static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; -@@ -2532,23 +2606,12 @@ static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; - static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; - static const char __pyx_k_cutGeneratorObject[] = "cutGeneratorObject"; - static const char __pyx_k_CyCutGeneratorPythonBase[] = "CyCutGeneratorPythonBase"; --static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; - static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import"; --static const char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%d)"; --static const char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; --static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; --static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; - static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import"; - static const char __pyx_k_self_CppSelf_cannot_be_converted[] = "self.CppSelf cannot be converted to a Python object for pickling"; --static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; - static PyObject *__pyx_n_s_CyCutGeneratorPythonBase; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; - static PyObject *__pyx_n_s_ImportError; --static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; --static PyObject *__pyx_n_s_RuntimeError; - static PyObject *__pyx_n_s_TypeError; --static PyObject *__pyx_n_s_ValueError; - static PyObject *__pyx_n_s_addColumnCut; - static PyObject *__pyx_n_s_addRowCut; - static PyObject *__pyx_n_s_cline_in_traceback; -@@ -2562,12 +2625,9 @@ static PyObject *__pyx_n_s_init; - static PyObject *__pyx_n_s_isRange; - static PyObject *__pyx_n_s_main; - static PyObject *__pyx_n_s_name; --static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous; --static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou; - static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; - static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; - static PyObject *__pyx_n_s_pyx_vtable; --static PyObject *__pyx_n_s_range; - static PyObject *__pyx_n_s_reduce; - static PyObject *__pyx_n_s_reduce_cython; - static PyObject *__pyx_n_s_reduce_ex; -@@ -2575,23 +2635,15 @@ static PyObject *__pyx_kp_s_self_CppSelf_cannot_be_converted; - static PyObject *__pyx_n_s_setstate; - static PyObject *__pyx_n_s_setstate_cython; - static PyObject *__pyx_n_s_test; --static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; - static int __pyx_pf_4cylp_2cy_24CyCutGeneratorPythonBase_24CyCutGeneratorPythonBase___init__(struct __pyx_obj_4cylp_2cy_24CyCutGeneratorPythonBase_CyCutGeneratorPythonBase *__pyx_v_self, PyObject *__pyx_v_cutGeneratorObject, PyObject *__pyx_v_cyLPModel); /* proto */ - static void __pyx_pf_4cylp_2cy_24CyCutGeneratorPythonBase_24CyCutGeneratorPythonBase_2__dealloc__(struct __pyx_obj_4cylp_2cy_24CyCutGeneratorPythonBase_CyCutGeneratorPythonBase *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_24CyCutGeneratorPythonBase_24CyCutGeneratorPythonBase_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_24CyCutGeneratorPythonBase_CyCutGeneratorPythonBase *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_24CyCutGeneratorPythonBase_24CyCutGeneratorPythonBase_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_24CyCutGeneratorPythonBase_CyCutGeneratorPythonBase *__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_24CyCutGeneratorPythonBase_CyCutGeneratorPythonBase(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ - static PyObject *__pyx_tuple_; - static PyObject *__pyx_tuple__2; - static PyObject *__pyx_tuple__3; - static PyObject *__pyx_tuple__4; --static PyObject *__pyx_tuple__5; --static PyObject *__pyx_tuple__6; --static PyObject *__pyx_tuple__7; --static PyObject *__pyx_tuple__8; --static PyObject *__pyx_tuple__9; - /* Late includes */ - - /* "cylp/cy/CyCutGeneratorPythonBase.pyx":8 -@@ -2607,6 +2659,9 @@ static int __pyx_pw_4cylp_2cy_24CyCutGeneratorPythonBase_24CyCutGeneratorPythonB - static int __pyx_pw_4cylp_2cy_24CyCutGeneratorPythonBase_24CyCutGeneratorPythonBase_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_cutGeneratorObject = 0; - PyObject *__pyx_v_cyLPModel = 0; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); -@@ -2673,6 +2728,9 @@ static int __pyx_pf_4cylp_2cy_24CyCutGeneratorPythonBase_24CyCutGeneratorPythonB - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__init__", 0); - - /* "cylp/cy/CyCutGeneratorPythonBase.pyx":9 -@@ -2833,6 +2891,9 @@ static PyObject *__pyx_f_4cylp_2cy_24CyCutGeneratorPythonBase_24CyCutGeneratorPy - Py_ssize_t __pyx_t_8; - PyObject *(*__pyx_t_9)(PyObject *); - PyObject *__pyx_t_10 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("generateCuts", 0); - - /* "cylp/cy/CyCutGeneratorPythonBase.pyx":20 -@@ -3322,6 +3383,9 @@ static PyObject *__pyx_pf_4cylp_2cy_24CyCutGeneratorPythonBase_24CyCutGeneratorP - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -3377,6 +3441,9 @@ static PyObject *__pyx_pf_4cylp_2cy_24CyCutGeneratorPythonBase_24CyCutGeneratorP - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -3407,863 +3474,7 @@ static PyObject *__pyx_pf_4cylp_2cy_24CyCutGeneratorPythonBase_24CyCutGeneratorP - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":258 -- * # experimental exception made for __getbuffer__ and __releasebuffer__ -- * # -- the details of this may change. -- * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< -- * # This implementation of getbuffer is geared towards Cython -- * # requirements, and does not yet fulfill the PEP. -- */ -- --/* Python wrapper */ --static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ --static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { -- int __pyx_r; -- __Pyx_RefNannyDeclarations -- __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); -- __pyx_r = __pyx_pf_5numpy_7ndarray___getbuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); -- -- /* function exit code */ -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { -- int __pyx_v_i; -- int __pyx_v_ndim; -- int __pyx_v_endian_detector; -- int __pyx_v_little_endian; -- int __pyx_v_t; -- char *__pyx_v_f; -- PyArray_Descr *__pyx_v_descr = 0; -- int __pyx_v_offset; -- int __pyx_r; -- __Pyx_RefNannyDeclarations -- int __pyx_t_1; -- int __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- int __pyx_t_4; -- int __pyx_t_5; -- int __pyx_t_6; -- PyArray_Descr *__pyx_t_7; -- PyObject *__pyx_t_8 = NULL; -- char *__pyx_t_9; -- if (__pyx_v_info == NULL) { -- PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); -- return -1; -- } -- __Pyx_RefNannySetupContext("__getbuffer__", 0); -- __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); -- __Pyx_GIVEREF(__pyx_v_info->obj); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- * -- */ -- __pyx_v_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) # <<<<<<<<<<<<<< -- * -- * ndim = PyArray_NDIM(self) -- */ -- __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":268 -- * cdef bint little_endian = ((&endian_detector)[0] != 0) -- * -- * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- */ -- __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":271 -- * -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< -- * raise ValueError(u"ndarray is not C contiguous") -- * -- */ -- __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_C_CONTIGUOUS) != 0)) != 0); -- __pyx_t_1 = __pyx_t_2; -- __pyx_L4_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":272 -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__3, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":274 -- * raise ValueError(u"ndarray is not C contiguous") -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") -- */ -- __pyx_t_2 = (((__pyx_v_flags & PyBUF_F_CONTIGUOUS) == PyBUF_F_CONTIGUOUS) != 0); -- if (__pyx_t_2) { -- } else { -- __pyx_t_1 = __pyx_t_2; -- goto __pyx_L7_bool_binop_done; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":275 -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< -- * raise ValueError(u"ndarray is not Fortran contiguous") -- * -- */ -- __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_F_CONTIGUOUS) != 0)) != 0); -- __pyx_t_1 = __pyx_t_2; -- __pyx_L7_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":276 -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__4, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":278 -- * raise ValueError(u"ndarray is not Fortran contiguous") -- * -- * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< -- * info.ndim = ndim -- * if sizeof(npy_intp) != sizeof(Py_ssize_t): -- */ -- __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":279 -- * -- * info.buf = PyArray_DATA(self) -- * info.ndim = ndim # <<<<<<<<<<<<<< -- * if sizeof(npy_intp) != sizeof(Py_ssize_t): -- * # Allocate new buffer for strides and shape info. -- */ -- __pyx_v_info->ndim = __pyx_v_ndim; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)))); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- */ -- (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- /*else*/ { -- __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- */ -- __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(__pyx_v_self)); -- } -- __pyx_L9:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- * -- */ -- __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":293 -- * info.suboffsets = NULL -- * info.itemsize = PyArray_ITEMSIZE(self) -- * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< -- * -- * cdef int t -- */ -- __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":297 -- * cdef int t -- * cdef char* f = NULL -- * cdef dtype descr = PyArray_DESCR(self) # <<<<<<<<<<<<<< -- * cdef int offset -- * -- */ -- __pyx_t_7 = PyArray_DESCR(__pyx_v_self); -- __pyx_t_3 = ((PyObject *)__pyx_t_7); -- __Pyx_INCREF(__pyx_t_3); -- __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":300 -- * cdef int offset -- * -- * info.obj = self # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(descr): -- */ -- __Pyx_INCREF(((PyObject *)__pyx_v_self)); -- __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); -- __Pyx_GOTREF(__pyx_v_info->obj); -- __Pyx_DECREF(__pyx_v_info->obj); -- __pyx_v_info->obj = ((PyObject *)__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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__5, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]) = '^'; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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'; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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): -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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(); --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735 - * ctypedef npy_cdouble complex_t - * - * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< -@@ -4275,9 +3486,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":822 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":736 - * - * cdef inline object PyArray_MultiIterNew1(a): - * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< -@@ -4285,13 +3499,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - * 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, 822, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735 - * ctypedef npy_cdouble complex_t - * - * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< -@@ -4310,7 +3524,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -+/* "../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): # <<<<<<<<<<<<<< -@@ -4322,9 +3536,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":825 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":739 - * - * cdef inline object PyArray_MultiIterNew2(a, b): - * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< -@@ -4332,13 +3549,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - * 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, 825, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -4357,7 +3574,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741 - * return PyArray_MultiIterNew(2, a, b) - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< -@@ -4369,9 +3586,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":828 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":742 - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): - * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< -@@ -4379,13 +3599,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - * 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, 828, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741 - * return PyArray_MultiIterNew(2, a, b) - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< -@@ -4404,7 +3624,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -+/* "../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): # <<<<<<<<<<<<<< -@@ -4416,9 +3636,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":831 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -4426,13 +3649,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - * 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, 831, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -4451,7 +3674,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 - * return PyArray_MultiIterNew(4, a, b, c, d) - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -@@ -4463,9 +3686,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":834 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -4473,13 +3699,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - * 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, 834, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 - * return PyArray_MultiIterNew(4, a, b, c, d) - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -@@ -4498,7 +3724,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -@@ -4512,7 +3738,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - int __pyx_t_1; - __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -@@ -4522,7 +3748,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); - if (__pyx_t_1) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":838 -+ /* "../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 # <<<<<<<<<<<<<< -@@ -4534,7 +3760,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -@@ -4543,12 +3769,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":840 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":754 - * 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); -@@ -4557,7 +3783,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - goto __pyx_L0; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -@@ -4572,753 +3798,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -- * -- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< -- * # Recursive utility function used in __getbuffer__ to get format -- * # string. The new location in the format string is returned. -- */ -- --static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) { -- PyArray_Descr *__pyx_v_child = 0; -- int __pyx_v_endian_detector; -- int __pyx_v_little_endian; -- PyObject *__pyx_v_fields = 0; -- PyObject *__pyx_v_childname = NULL; -- PyObject *__pyx_v_new_offset = NULL; -- PyObject *__pyx_v_t = NULL; -- char *__pyx_r; -- __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- Py_ssize_t __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- PyObject *__pyx_t_4 = NULL; -- int __pyx_t_5; -- int __pyx_t_6; -- int __pyx_t_7; -- long __pyx_t_8; -- char *__pyx_t_9; -- __Pyx_RefNannySetupContext("_util_dtypestring", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":848 -- * 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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- if (unlikely(__pyx_v_descr->names == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -- __PYX_ERR(2, 851, __pyx_L1_error) -- } -- __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; -- for (;;) { -- if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; -- #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, 851, __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, 851, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- #endif -- __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":852 -- * -- * for childname in descr.names: -- * fields = descr.fields[childname] # <<<<<<<<<<<<<< -- * child, new_offset = fields -- * -- */ -- if (unlikely(__pyx_v_descr->fields == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -- __PYX_ERR(2, 852, __pyx_L1_error) -- } -- __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":853 -- * 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, 853, __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, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- #endif -- } else { -- __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 853, __pyx_L1_error) -- } -- if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3)); -- __pyx_t_3 = 0; -- __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 856, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0); -- if (!__pyx_t_7) { -- goto __pyx_L8_next_or; -- } else { -- } -- __pyx_t_7 = (__pyx_v_little_endian != 0); -- if (!__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_L8_next_or:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":859 -- * -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< -- * raise ValueError(u"Non-native byte order not supported") -- * # One could encode it in the format string and have Cython -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0); -- if (__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0); -- __pyx_t_6 = __pyx_t_7; -- __pyx_L7_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":860 -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * # One could encode it in the format string and have Cython -- * # complain instead, BUT: < and > in format strings also imply -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 860, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 860, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":870 -- * -- * # Output padding bytes -- * while offset[0] < new_offset: # <<<<<<<<<<<<<< -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- */ -- while (1) { -- __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (!__pyx_t_6) break; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":871 -- * # Output padding bytes -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< -- * f += 1 -- * offset[0] += 1 -- */ -- (__pyx_v_f[0]) = 0x78; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":872 -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte -- * f += 1 # <<<<<<<<<<<<<< -- * offset[0] += 1 -- * -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":873 -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- * offset[0] += 1 # <<<<<<<<<<<<<< -- * -- * offset[0] += child.itemsize -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":875 -- * offset[0] += 1 -- * -- * offset[0] += child.itemsize # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(child): -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); -- if (__pyx_t_6) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":878 -- * -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num # <<<<<<<<<<<<<< -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") -- */ -- __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 878, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 880, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":883 -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 98; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":884 -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":885 -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x68; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":886 -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 72; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":887 -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x69; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":888 -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 73; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":889 -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x6C; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":890 -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 76; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":891 -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x71; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":892 -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 81; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":893 -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":894 -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x64; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":895 -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x67; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":896 -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x66; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":897 -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x64; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":898 -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x67; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":899 -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (likely(__pyx_t_6)) { -- (__pyx_v_f[0]) = 79; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":901 -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< -- * f += 1 -- * else: -- */ -- /*else*/ { -- __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 901, __pyx_L1_error) -- } -- __pyx_L15:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":902 -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- * f += 1 # <<<<<<<<<<<<<< -- * else: -- * # Cython ignores struct boundary information ("T{...}"), -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- goto __pyx_L13; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":906 -- * # Cython ignores struct boundary information ("T{...}"), -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< -- * return f -- * -- */ -- /*else*/ { -- __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(2, 906, __pyx_L1_error) -- __pyx_v_f = __pyx_t_9; -- } -- __pyx_L13:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- } -- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":907 -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) -- * return f # <<<<<<<<<<<<<< -- * -- * -- */ -- __pyx_r = __pyx_v_f; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -- * -- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< -- * # Recursive utility function used in __getbuffer__ to get format -- * # string. The new location in the format string is returned. -- */ -- -- /* function exit code */ -- __pyx_L1_error:; -- __Pyx_XDECREF(__pyx_t_1); -- __Pyx_XDECREF(__pyx_t_3); -- __Pyx_XDECREF(__pyx_t_4); -- __Pyx_AddTraceback("numpy._util_dtypestring", __pyx_clineno, __pyx_lineno, __pyx_filename); -- __pyx_r = NULL; -- __pyx_L0:; -- __Pyx_XDECREF((PyObject *)__pyx_v_child); -- __Pyx_XDECREF(__pyx_v_fields); -- __Pyx_XDECREF(__pyx_v_childname); -- __Pyx_XDECREF(__pyx_v_new_offset); -- __Pyx_XDECREF(__pyx_v_t); -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -+/* "../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): # <<<<<<<<<<<<<< -@@ -5330,7 +3810,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1023 -+ /* "../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! # <<<<<<<<<<<<<< -@@ -5339,7 +3819,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - Py_INCREF(__pyx_v_base); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1024 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -5348,7 +3828,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -5360,7 +3840,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyFinishContext(); - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+/* "../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): # <<<<<<<<<<<<<< -@@ -5375,7 +3855,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - int __pyx_t_1; - __Pyx_RefNannySetupContext("get_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1027 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -5384,7 +3864,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - __pyx_v_base = PyArray_BASE(__pyx_v_arr); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -5394,7 +3874,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) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1029 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":936 - * base = PyArray_BASE(arr) - * if base is NULL: - * return None # <<<<<<<<<<<<<< -@@ -5405,7 +3885,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -5414,7 +3894,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1030 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":937 - * if base is NULL: - * return None - * return base # <<<<<<<<<<<<<< -@@ -5426,7 +3906,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = ((PyObject *)__pyx_v_base); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -5441,12 +3921,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { -@@ -5460,13 +3940,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_array", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - { -@@ -5478,20 +3961,20 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1036 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":943 - * cdef inline int import_array() except -1: - * try: -- * _import_array() # <<<<<<<<<<<<<< -+ * __pyx_import_array() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") - */ -- __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1036, __pyx_L3_error) -+ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 943, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - } -@@ -5501,9 +3984,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1037 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":944 - * try: -- * _import_array() -+ * __pyx_import_array() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.multiarray failed to import") - * -@@ -5511,32 +3994,32 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1037, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 944, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 945, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __PYX_ERR(2, 945, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - __Pyx_XGIVEREF(__pyx_t_1); -@@ -5547,12 +4030,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - /* function exit code */ -@@ -5570,7 +4053,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -5589,9 +4072,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_umath", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5607,16 +4093,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1042 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":949 - * cdef inline int import_umath() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1042, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 949, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5630,7 +4116,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1043 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":950 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< -@@ -5640,28 +4126,28 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1043, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 950, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 951, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __PYX_ERR(2, 951, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5676,7 +4162,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -5699,7 +4185,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -5718,9 +4204,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_ufunc", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5736,16 +4225,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1048 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":955 - * cdef inline int import_ufunc() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1048, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 955, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5759,35 +4248,38 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1049 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":956 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.umath failed to import") -+ * - */ - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1049, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 956, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1050 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":957 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< -+ * -+ * cdef extern from *: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 957, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __PYX_ERR(2, 957, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5802,7 +4294,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -5824,6 +4316,180 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_RefNannyFinishContext(); - return __pyx_r; - } -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_timedelta64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":979 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_datetime64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":994 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { -+ npy_datetime __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1004 -+ * also needed. That can be found using `get_datetime64_unit`. -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { -+ npy_timedelta __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1011 -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { -+ NPY_DATETIMEUNIT __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1018 -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ * """ -+ * return (obj).obmeta.base # <<<<<<<<<<<<<< -+ */ -+ __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} - static struct __pyx_vtabstruct_4cylp_2cy_24CyCutGeneratorPythonBase_CyCutGeneratorPythonBase __pyx_vtable_4cylp_2cy_24CyCutGeneratorPythonBase_CyCutGeneratorPythonBase; - - static PyObject *__pyx_tp_new_4cylp_2cy_24CyCutGeneratorPythonBase_CyCutGeneratorPythonBase(PyTypeObject *t, PyObject *a, PyObject *k) { -@@ -5848,9 +4514,9 @@ static void __pyx_tp_dealloc_4cylp_2cy_24CyCutGeneratorPythonBase_CyCutGenerator - { - PyObject *etype, *eval, *etb; - PyErr_Fetch(&etype, &eval, &etb); -- ++Py_REFCNT(o); -+ __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1); - __pyx_pw_4cylp_2cy_24CyCutGeneratorPythonBase_24CyCutGeneratorPythonBase_3__dealloc__(o); -- --Py_REFCNT(o); -+ __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1); - PyErr_Restore(etype, eval, etb); - } - Py_CLEAR(p->cutGeneratorObject); -@@ -5897,7 +4563,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_24CyCutGeneratorPythonBase_CyCutGenerat - sizeof(struct __pyx_obj_4cylp_2cy_24CyCutGeneratorPythonBase_CyCutGeneratorPythonBase), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_24CyCutGeneratorPythonBase_CyCutGeneratorPythonBase, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -5950,6 +4621,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_24CyCutGeneratorPythonBase_CyCutGenerat - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyMethodDef __pyx_methods[] = { -@@ -5999,13 +4676,8 @@ static struct PyModuleDef __pyx_moduledef = { - - static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_CyCutGeneratorPythonBase, __pyx_k_CyCutGeneratorPythonBase, sizeof(__pyx_k_CyCutGeneratorPythonBase), 0, 0, 1, 1}, -- {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, -- {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, - {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, -- {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, -- {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, -- {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_n_s_addColumnCut, __pyx_k_addColumnCut, sizeof(__pyx_k_addColumnCut), 0, 0, 1, 1}, - {&__pyx_n_s_addRowCut, __pyx_k_addRowCut, sizeof(__pyx_k_addRowCut), 0, 0, 1, 1}, - {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, -@@ -6019,12 +4691,9 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_isRange, __pyx_k_isRange, sizeof(__pyx_k_isRange), 0, 0, 1, 1}, - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, -- {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, -- {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, - {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0}, - {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0}, - {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, -- {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, -@@ -6032,15 +4701,11 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, - {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, -- {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, - {0, 0, 0, 0, 0, 0, 0} - }; - static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 2, __pyx_L1_error) -- __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(2, 272, __pyx_L1_error) -- __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(2, 285, __pyx_L1_error) -- __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(2, 856, __pyx_L1_error) -- __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 1038, __pyx_L1_error) -+ __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 945, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -@@ -6069,82 +4734,27 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_GOTREF(__pyx_tuple__2); - __Pyx_GIVEREF(__pyx_tuple__2); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":272 -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(2, 272, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__3); -- __Pyx_GIVEREF(__pyx_tuple__3); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":276 -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 276, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__4); -- __Pyx_GIVEREF(__pyx_tuple__4); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":306 -- * if ((descr.byteorder == c'>' and little_endian) or -- * (descr.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * if t == NPY_BYTE: f = "b" -- * elif t == NPY_UBYTE: f = "B" -- */ -- __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(2, 306, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__5); -- __Pyx_GIVEREF(__pyx_tuple__5); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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_tuple__6 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__6); -- __Pyx_GIVEREF(__pyx_tuple__6); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__7); -- __Pyx_GIVEREF(__pyx_tuple__7); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(2, 1038, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__8); -- __Pyx_GIVEREF(__pyx_tuple__8); -+ __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(2, 945, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__3); -+ __Pyx_GIVEREF(__pyx_tuple__3); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(2, 1044, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__9); -- __Pyx_GIVEREF(__pyx_tuple__9); -+ __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 951, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__4); -+ __Pyx_GIVEREF(__pyx_tuple__4); - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; -@@ -6194,6 +4804,9 @@ static int __Pyx_modinit_function_export_code(void) { - static int __Pyx_modinit_type_init_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyCglCutGeneratorBase"); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error) -@@ -6229,6 +4842,9 @@ static int __Pyx_modinit_type_init_code(void) { - static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error) -@@ -6264,18 +4880,38 @@ static int __Pyx_modinit_type_import_code(void) { - if (!__pyx_ptype_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase) __PYX_ERR(7, 67, __pyx_L1_error) - __pyx_vtabptr_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase = (struct __pyx_vtabstruct_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase*)__Pyx_GetVtable(__pyx_ptype_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase->tp_dict); if (unlikely(!__pyx_vtabptr_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase)) __PYX_ERR(7, 67, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 206, __pyx_L1_error) -+ __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 206, __pyx_L1_error) -- __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 229, __pyx_L1_error) -- __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 233, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 200, __pyx_L1_error) -+ __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 223, __pyx_L1_error) -+ __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 227, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 242, __pyx_L1_error) -- __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 918, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 239, __pyx_L1_error) -+ __pyx_ptype_5numpy_generic = __Pyx_ImportType(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 771, __pyx_L1_error) -+ __pyx_ptype_5numpy_number = __Pyx_ImportType(__pyx_t_1, "numpy", "number", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 773, __pyx_L1_error) -+ __pyx_ptype_5numpy_integer = __Pyx_ImportType(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 775, __pyx_L1_error) -+ __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 777, __pyx_L1_error) -+ __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 779, __pyx_L1_error) -+ __pyx_ptype_5numpy_inexact = __Pyx_ImportType(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 781, __pyx_L1_error) -+ __pyx_ptype_5numpy_floating = __Pyx_ImportType(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 783, __pyx_L1_error) -+ __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 785, __pyx_L1_error) -+ __pyx_ptype_5numpy_flexible = __Pyx_ImportType(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 787, __pyx_L1_error) -+ __pyx_ptype_5numpy_character = __Pyx_ImportType(__pyx_t_1, "numpy", "character", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 789, __pyx_L1_error) -+ __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 827, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyClpDualRowPivotBase"); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 72, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); -@@ -6390,12 +5026,16 @@ static int __Pyx_modinit_variable_import_code(void) { - static int __Pyx_modinit_function_import_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); - /*--- Function import code ---*/ - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyCglCutGeneratorBase"); if (!__pyx_t_1) __PYX_ERR(1, 1, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_ImportFunction(__pyx_t_1, "RunGenerateCuts", (void (**)(void))&__pyx_f_4cylp_2cy_21CyCglCutGeneratorBase_RunGenerateCuts, "void (void *, OsiSolverInterface *, CppOsiCuts *, CglTreeInfo)") < 0) __PYX_ERR(1, 1, __pyx_L1_error) - if (__Pyx_ImportFunction(__pyx_t_1, "RunCglClone", (void (**)(void))&__pyx_f_4cylp_2cy_21CyCglCutGeneratorBase_RunCglClone, "CglCutGenerator *(void *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error) -- Py_DECREF(__pyx_t_1); __pyx_t_1 = 0; -+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; -@@ -6405,17 +5045,19 @@ static int __Pyx_modinit_function_import_code(void) { - } - - --#if PY_MAJOR_VERSION < 3 --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC void --#else -+#ifndef CYTHON_NO_PYINIT_EXPORT - #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#elif PY_MAJOR_VERSION < 3 -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" void -+#else -+#define __Pyx_PyMODINIT_FUNC void - #endif - #else --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC PyObject * -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * - #else --#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#define __Pyx_PyMODINIT_FUNC PyObject * - #endif - #endif - -@@ -6497,6 +5139,9 @@ static CYTHON_SMALL_CODE int __pyx_pymod_exec_CyCutGeneratorPythonBase(PyObject - #endif - { - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { -@@ -6544,11 +5189,9 @@ if (!__Pyx_RefNanny) { - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ -- #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS -- #ifdef WITH_THREAD /* Python build with threading support? */ -+ #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - PyEval_InitThreads(); - #endif -- #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; -@@ -6585,17 +5228,17 @@ if (!__Pyx_RefNanny) { - } - #endif - /*--- Builtin init code ---*/ -- if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Constants init code ---*/ -- if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(); - (void)__Pyx_modinit_variable_export_code(); - (void)__Pyx_modinit_function_export_code(); -- if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; -- if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; -+ if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) -+ if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) - (void)__Pyx_modinit_variable_import_code(); -- if (unlikely(__Pyx_modinit_function_import_code() != 0)) goto __pyx_L1_error; -+ if (unlikely(__Pyx_modinit_function_import_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Execution code ---*/ - #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) - if (__Pyx_patch_abc() < 0) __PYX_ERR(1, 1, __pyx_L1_error) -@@ -6611,12 +5254,12 @@ if (!__Pyx_RefNanny) { - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -- * raise ImportError("numpy.core.umath failed to import") -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -- * try: -- * _import_umath() -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ - - /*--- Wrapped vars code ---*/ -@@ -6725,7 +5368,7 @@ static int __Pyx_ParseOptionalKeywords( - } - name = first_kw_arg; - #if PY_MAJOR_VERSION < 3 -- if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { -+ if (likely(PyString_Check(key))) { - while (*name) { - if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) - && _PyString_Eq(**name, key)) { -@@ -6752,7 +5395,7 @@ static int __Pyx_ParseOptionalKeywords( - while (*name) { - int cmp = (**name == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 -- (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : -+ (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**name, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; -@@ -6768,7 +5411,7 @@ static int __Pyx_ParseOptionalKeywords( - while (argname != first_kw_arg) { - int cmp = (**argname == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 -- (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : -+ (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**argname, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; -@@ -6977,7 +5620,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, - #if CYTHON_COMPILING_IN_CPYTHON - static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; -- ternaryfunc call = func->ob_type->tp_call; -+ ternaryfunc call = Py_TYPE(func)->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -@@ -7064,7 +5707,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec - if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { - return __Pyx_PyObject_CallMethO(func, arg); - #if CYTHON_FAST_PYCCALL -- } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { -+ } else if (__Pyx_PyFastCFunction_Check(func)) { - return __Pyx_PyCFunction_FastCall(func, &arg, 1); - #endif - } -@@ -7287,61 +5930,6 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject - } - #endif - --/* DictGetItem */ --#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY --static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { -- PyObject *value; -- value = PyDict_GetItemWithError(d, key); -- if (unlikely(!value)) { -- if (!PyErr_Occurred()) { -- if (unlikely(PyTuple_Check(key))) { -- PyObject* args = PyTuple_Pack(1, key); -- if (likely(args)) { -- PyErr_SetObject(PyExc_KeyError, args); -- Py_DECREF(args); -- } -- } else { -- PyErr_SetObject(PyExc_KeyError, key); -- } -- } -- return NULL; -- } -- Py_INCREF(value); -- return value; --} --#endif -- --/* RaiseTooManyValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { -- PyErr_Format(PyExc_ValueError, -- "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); --} -- --/* RaiseNeedMoreValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { -- PyErr_Format(PyExc_ValueError, -- "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", -- index, (index == 1) ? "" : "s"); --} -- --/* RaiseNoneIterError */ --static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); --} -- --/* ExtTypeTest */ --static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { -- if (unlikely(!type)) { -- PyErr_SetString(PyExc_SystemError, "Missing type object"); -- return 0; -- } -- if (likely(__Pyx_TypeCheck(obj, type))) -- return 1; -- PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", -- Py_TYPE(obj)->tp_name, type->tp_name); -- return 0; --} -- - /* GetTopmostException */ - #if CYTHON_USE_EXC_INFO_STACK - static _PyErr_StackItem * -@@ -7680,6 +6268,28 @@ static int __Pyx_SetVtable(PyObject *dict, void *vtable) { - return -1; - } - -+/* PyObjectGetAttrStrNoError */ -+static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { -+ __Pyx_PyThreadState_declare -+ __Pyx_PyThreadState_assign -+ if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) -+ __Pyx_PyErr_Clear(); -+} -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { -+ PyObject *result; -+#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 -+ PyTypeObject* tp = Py_TYPE(obj); -+ if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { -+ return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); -+ } -+#endif -+ result = __Pyx_PyObject_GetAttrStr(obj, attr_name); -+ if (unlikely(!result)) { -+ __Pyx_PyObject_GetAttrStr_ClearAttributeError(); -+ } -+ return result; -+} -+ - /* SetupReduce */ - static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { - int ret; -@@ -7707,43 +6317,51 @@ static int __Pyx_setup_reduce(PyObject* type_obj) { - PyObject *setstate = NULL; - PyObject *setstate_cython = NULL; - #if CYTHON_USE_PYTYPE_LOOKUP -- if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #else -- if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #endif - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #else -- object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #endif -- reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; -+ reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; - if (reduce_ex == object_reduce_ex) { - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #else -- object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #endif -- reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; -+ reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; - if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { -- reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; -+ reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); -+ if (likely(reduce_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (reduce == object_reduce || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); - if (!setstate) PyErr_Clear(); - if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { -- setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; -+ setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); -+ if (likely(setstate_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (!setstate || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - } - PyType_Modified((PyTypeObject*)type_obj); - } - } -- goto GOOD; --BAD: -+ goto __PYX_GOOD; -+__PYX_BAD: - if (!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); - ret = -1; --GOOD: -+__PYX_GOOD: - #if !CYTHON_USE_PYTYPE_LOOKUP - Py_XDECREF(object_reduce); - Py_XDECREF(object_reduce_ex); -@@ -7784,7 +6402,7 @@ static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UIN - - /* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK --static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { -+static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) { - PyObject *use_cline; - PyObject *ptype, *pvalue, *ptraceback; - #if CYTHON_COMPILING_IN_CPYTHON -@@ -7814,7 +6432,7 @@ static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { - } - if (!use_cline) { - c_line = 0; -- PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); -+ (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; -@@ -7888,7 +6506,7 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - if (__pyx_code_cache.count == __pyx_code_cache.max_count) { - int new_max = __pyx_code_cache.max_count + 64; - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( -- __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); -+ __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); - if (unlikely(!entries)) { - return; - } -@@ -7911,30 +6529,31 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { -- PyCodeObject *py_code = 0; -- PyObject *py_srcfile = 0; -- PyObject *py_funcname = 0; -+ PyCodeObject *py_code = NULL; -+ PyObject *py_funcname = NULL; - #if PY_MAJOR_VERSION < 3 -+ PyObject *py_srcfile = NULL; - py_srcfile = PyString_FromString(filename); -- #else -- py_srcfile = PyUnicode_FromString(filename); -- #endif - if (!py_srcfile) goto bad; -+ #endif - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; -+ funcname = PyUnicode_AsUTF8(py_funcname); -+ if (!funcname) goto bad; - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); -- #else -- py_funcname = PyUnicode_FromString(funcname); -+ if (!py_funcname) goto bad; - #endif - } -- if (!py_funcname) goto bad; -+ #if PY_MAJOR_VERSION < 3 - py_code = __Pyx_PyCode_New( - 0, - 0, -@@ -7953,11 +6572,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); -- Py_DECREF(py_funcname); -+ #else -+ py_code = PyCode_NewEmpty(filename, funcname, py_line); -+ #endif -+ Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline - return py_code; - bad: -- Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); -+ #if PY_MAJOR_VERSION < 3 -+ Py_XDECREF(py_srcfile); -+ #endif - return NULL; - } - static void __Pyx_AddTraceback(const char *funcname, int c_line, -@@ -8106,7 +6730,6 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - case 1: - return a; - case 2: -- z = __Pyx_c_prod_float(a, a); - return __Pyx_c_prod_float(a, a); - case 3: - z = __Pyx_c_prod_float(a, a); -@@ -8261,7 +6884,6 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - case 1: - return a; - case 2: -- z = __Pyx_c_prod_double(a, a); - return __Pyx_c_prod_double(a, a); - case 3: - z = __Pyx_c_prod_double(a, a); -@@ -8300,24 +6922,31 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - #endif - - /* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { -- if (sizeof(int) < sizeof(long)) { -+ if (sizeof(long) < sizeof(long)) { - return PyInt_FromLong((long) value); -- } else if (sizeof(int) <= sizeof(unsigned long)) { -+ } else if (sizeof(long) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); - #ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -+ } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); - #endif - } - } else { -- if (sizeof(int) <= sizeof(long)) { -+ if (sizeof(long) <= sizeof(long)) { - return PyInt_FromLong((long) value); - #ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -+ } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); - #endif - } -@@ -8325,7 +6954,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(int), -+ return _PyLong_FromByteArray(bytes, sizeof(long), - little, !is_unsigned); - } - } -@@ -8352,51 +6981,27 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - return (target_type) value;\ - } - --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { -- const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(enum NPY_TYPES) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+/* CIntFromPy */ -+static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" - #endif -- } -- } else { -- if (sizeof(enum NPY_TYPES) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop - #endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), -- little, !is_unsigned); -- } --} -- --/* CIntFromPy */ --static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -- if (sizeof(int) < sizeof(long)) { -- __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) -+ if (sizeof(long) < sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } -- return (int) val; -+ return (long) val; - } - } else - #endif -@@ -8405,32 +7010,32 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { -- case 0: return (int) 0; -- case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) -+ case 0: return (long) 0; -+ case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) - case 2: -- if (8 * sizeof(int) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { -- return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { -+ return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - case 3: -- if (8 * sizeof(int) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { -- return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { -+ return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - case 4: -- if (8 * sizeof(int) > 3 * PyLong_SHIFT) { -- if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { -- return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -+ if (8 * sizeof(long) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { -+ return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; -@@ -8444,86 +7049,86 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) -- return (int) -1; -+ return (long) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } - #endif -- if (sizeof(int) <= sizeof(unsigned long)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) -+ if (sizeof(long) <= sizeof(unsigned long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) - #ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -+ } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) - #endif - } - } else { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { -- case 0: return (int) 0; -- case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) -- case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) -+ case 0: return (long) 0; -+ case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) -+ case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) - case -2: -- if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -- return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -+ return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 2: -- if (8 * sizeof(int) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -- return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -+ return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case -3: -- if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -- return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -+ return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 3: -- if (8 * sizeof(int) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -- return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -+ return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case -4: -- if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -- return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { -+ return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 4: -- if (8 * sizeof(int) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -- return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { -+ return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - } - #endif -- if (sizeof(int) <= sizeof(long)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) -+ if (sizeof(long) <= sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) - #ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) -+ } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) - #endif - } - } -@@ -8532,7 +7137,7 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - PyErr_SetString(PyExc_RuntimeError, - "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); - #else -- int val; -+ long val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); - #if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { -@@ -8552,71 +7157,47 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - return val; - } - #endif -- return (int) -1; -+ return (long) -1; - } - } else { -- int val; -+ long val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); -- if (!tmp) return (int) -1; -- val = __Pyx_PyInt_As_int(tmp); -+ if (!tmp) return (long) -1; -+ val = __Pyx_PyInt_As_long(tmp); - Py_DECREF(tmp); - return val; - } - raise_overflow: - PyErr_SetString(PyExc_OverflowError, -- "value too large to convert to int"); -- return (int) -1; -+ "value too large to convert to long"); -+ return (long) -1; - raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, -- "can't convert negative value to int"); -- return (int) -1; -+ "can't convert negative value to long"); -+ return (long) -1; - } - --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(long) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(long) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+/* CIntFromPy */ -+static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" - #endif -- } -- } else { -- if (sizeof(long) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop - #endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(long), -- little, !is_unsigned); -- } --} -- --/* CIntFromPy */ --static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -- if (sizeof(long) < sizeof(long)) { -- __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) -+ if (sizeof(int) < sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } -- return (long) val; -+ return (int) val; - } - } else - #endif -@@ -8625,32 +7206,32 @@ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { -- case 0: return (long) 0; -- case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) -+ case 0: return (int) 0; -+ case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) - case 2: -- if (8 * sizeof(long) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { -- return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { -+ return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - case 3: -- if (8 * sizeof(long) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { -- return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { -+ return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - case 4: -- if (8 * sizeof(long) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { -- return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { -+ return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; -@@ -8664,86 +7245,86 @@ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) -- return (long) -1; -+ return (int) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } - #endif -- if (sizeof(long) <= sizeof(unsigned long)) { -- __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) -+ if (sizeof(int) <= sizeof(unsigned long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) - #ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -+ } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) - #endif - } - } else { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { -- case 0: return (long) 0; -- case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) -- case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) -+ case 0: return (int) 0; -+ case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) -+ case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) - case -2: -- if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -- return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -+ return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 2: -- if (8 * sizeof(long) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -- return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -+ return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case -3: -- if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -- return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -+ return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 3: -- if (8 * sizeof(long) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -- return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -+ return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case -4: -- if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { -- return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -+ return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 4: -- if (8 * sizeof(long) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { -- return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -+ return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - } - #endif -- if (sizeof(long) <= sizeof(long)) { -- __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) -+ if (sizeof(int) <= sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) - #ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) -+ } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) - #endif - } - } -@@ -8752,7 +7333,7 @@ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - PyErr_SetString(PyExc_RuntimeError, - "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); - #else -- long val; -+ int val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); - #if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { -@@ -8772,24 +7353,24 @@ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - return val; - } - #endif -- return (long) -1; -+ return (int) -1; - } - } else { -- long val; -+ int val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); -- if (!tmp) return (long) -1; -- val = __Pyx_PyInt_As_long(tmp); -+ if (!tmp) return (int) -1; -+ val = __Pyx_PyInt_As_int(tmp); - Py_DECREF(tmp); - return val; - } - raise_overflow: - PyErr_SetString(PyExc_OverflowError, -- "value too large to convert to long"); -- return (long) -1; -+ "value too large to convert to int"); -+ return (int) -1; - raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, -- "can't convert negative value to long"); -- return (long) -1; -+ "can't convert negative value to int"); -+ return (int) -1; - } - - /* FastTypeChecks */ -@@ -9210,6 +7791,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_DECREF(x); - return ival; - } -+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { -+ if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { -+ return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); -+#if PY_MAJOR_VERSION < 3 -+ } else if (likely(PyInt_CheckExact(o))) { -+ return PyInt_AS_LONG(o); -+#endif -+ } else { -+ Py_ssize_t ival; -+ PyObject *x; -+ x = PyNumber_Index(o); -+ if (!x) return -1; -+ ival = PyInt_AsLong(x); -+ Py_DECREF(x); -+ return ival; -+ } -+} - static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); - } -diff --git a/cylp/cy/CyDantzigPivot.cpp b/cylp/cy/CyDantzigPivot.cpp -index 93b3950..9b50d3b 100644 ---- a/cylp/cy/CyDantzigPivot.cpp -+++ b/cylp/cy/CyDantzigPivot.cpp -@@ -1,14 +1,16 @@ --/* Generated by Cython 0.29.12 */ -+/* 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_12" --#define CYTHON_HEX_VERSION 0x001D0CF0 -+#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) -@@ -449,7 +516,15 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) - #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) -+ #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 - #else - #define CYTHON_PEP393_ENABLED 0 - #define PyUnicode_1BYTE_KIND 1 -@@ -498,8 +573,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact -+#ifndef PyObject_Unicode - #define PyObject_Unicode PyObject_Str - #endif -+#endif - #if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) - #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) -@@ -510,6 +587,13 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #ifndef PySet_CheckExact - #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) - #endif -+#if PY_VERSION_HEX >= 0x030900A4 -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) -+#else -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) -+#endif - #if CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) - #else -@@ -543,13 +627,13 @@ 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) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) -+ #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) - #else - #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) - #endif -@@ -590,11 +674,10 @@ static CYTHON_INLINE float __PYX_NAN() { - #define __Pyx_truncl truncl - #endif - -- -+#define __PYX_MARK_ERR_POS(f_index, lineno) \ -+ { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } - #define __PYX_ERR(f_index, lineno, Ln_error) \ --{ \ -- __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ --} -+ { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } - - #ifndef __PYX_EXTERN_C - #ifdef __cplusplus -@@ -612,7 +695,13 @@ static CYTHON_INLINE float __PYX_NAN() { - #include "pythread.h" - #include "ICoinIndexedVector.hpp" - #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 "ClpDualRowPivot.hpp" - #include "ClpFactorization.hpp" - #include "IClpDualRowPivotBase.h" -@@ -641,11 +730,11 @@ static CYTHON_INLINE float __PYX_NAN() { - #include "OsiSolverInterface.hpp" - #include "CbcCompareUser.hpp" - #include "ICbcModel.hpp" -+#include - #include "ios" - #include "new" - #include "stdexcept" - #include "typeinfo" --#include - #include - #include "IClpPrimalColumnPivotBase.h" - #include "ClpPrimalColumnPivot.hpp" -@@ -746,6 +835,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 -@@ -881,23 +971,23 @@ static const char *__pyx_filename; - - static const char *__pyx_f[] = { - "stringsource", -- "cylp\\cy\\CyDantzigPivot.pyx", -+ "cylp/cy/CyDantzigPivot.pyx", - "__init__.pxd", - "type.pxd", - "bool.pxd", - "complex.pxd", -- "cylp\\cy\\CyCoinIndexedVector.pxd", -- "cylp\\cy\\CyClpDualRowPivotBase.pxd", -- "cylp\\cy\\CyCoinModel.pxd", -- "cylp\\cy\\CyCoinPackedMatrix.pxd", -- "cylp\\cy\\CyCgl.pxd", -- "cylp\\cy\\CyCbcNode.pxd", -- "cylp\\cy\\CyOsiSolverInterface.pxd", -- "cylp\\cy\\CyCbcModel.pxd", -- "cylp\\cy\\CyClpSimplex.pxd", -+ "cylp/cy/CyCoinIndexedVector.pxd", -+ "cylp/cy/CyClpDualRowPivotBase.pxd", -+ "cylp/cy/CyCoinModel.pxd", -+ "cylp/cy/CyCoinPackedMatrix.pxd", -+ "cylp/cy/CyCgl.pxd", -+ "cylp/cy/CyCbcNode.pxd", -+ "cylp/cy/CyOsiSolverInterface.pxd", -+ "cylp/cy/CyCbcModel.pxd", -+ "cylp/cy/CyClpSimplex.pxd", - }; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":776 -+/* "../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 # <<<<<<<<<<<<<< -@@ -906,7 +996,7 @@ static const char *__pyx_f[] = { - */ - typedef npy_int8 __pyx_t_5numpy_int8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":777 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":691 - * - * ctypedef npy_int8 int8_t - * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< -@@ -915,7 +1005,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; - */ - typedef npy_int16 __pyx_t_5numpy_int16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":778 -+/* "../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 # <<<<<<<<<<<<<< -@@ -924,7 +1014,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; - */ - typedef npy_int32 __pyx_t_5numpy_int32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":779 -+/* "../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 # <<<<<<<<<<<<<< -@@ -933,7 +1023,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; - */ - typedef npy_int64 __pyx_t_5numpy_int64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":783 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":697 - * #ctypedef npy_int128 int128_t - * - * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< -@@ -942,7 +1032,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; - */ - typedef npy_uint8 __pyx_t_5numpy_uint8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":784 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":698 - * - * ctypedef npy_uint8 uint8_t - * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< -@@ -951,7 +1041,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; - */ - typedef npy_uint16 __pyx_t_5numpy_uint16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":785 -+/* "../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 # <<<<<<<<<<<<<< -@@ -960,7 +1050,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; - */ - typedef npy_uint32 __pyx_t_5numpy_uint32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":786 -+/* "../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 # <<<<<<<<<<<<<< -@@ -969,7 +1059,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; - */ - typedef npy_uint64 __pyx_t_5numpy_uint64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":790 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":704 - * #ctypedef npy_uint128 uint128_t - * - * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< -@@ -978,7 +1068,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; - */ - typedef npy_float32 __pyx_t_5numpy_float32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":791 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":705 - * - * ctypedef npy_float32 float32_t - * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< -@@ -987,7 +1077,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; - */ - typedef npy_float64 __pyx_t_5numpy_float64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":800 -+/* "../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 # <<<<<<<<<<<<<< -@@ -996,7 +1086,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; - */ - typedef npy_long __pyx_t_5numpy_int_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":801 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1005,7 +1095,7 @@ typedef npy_long __pyx_t_5numpy_int_t; - */ - typedef npy_longlong __pyx_t_5numpy_long_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":802 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1014,7 +1104,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; - */ - typedef npy_longlong __pyx_t_5numpy_longlong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":804 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":718 - * ctypedef npy_longlong longlong_t - * - * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< -@@ -1023,7 +1113,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; - */ - typedef npy_ulong __pyx_t_5numpy_uint_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":805 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":719 - * - * ctypedef npy_ulong uint_t - * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< -@@ -1032,7 +1122,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":806 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1041,7 +1131,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":808 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":722 - * ctypedef npy_ulonglong ulonglong_t - * - * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< -@@ -1050,7 +1140,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - */ - typedef npy_intp __pyx_t_5numpy_intp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":809 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":723 - * - * ctypedef npy_intp intp_t - * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< -@@ -1059,7 +1149,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; - */ - typedef npy_uintp __pyx_t_5numpy_uintp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":811 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":725 - * ctypedef npy_uintp uintp_t - * - * ctypedef npy_double float_t # <<<<<<<<<<<<<< -@@ -1068,7 +1158,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; - */ - typedef npy_double __pyx_t_5numpy_float_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":812 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":726 - * - * ctypedef npy_double float_t - * ctypedef npy_double double_t # <<<<<<<<<<<<<< -@@ -1077,7 +1167,7 @@ typedef npy_double __pyx_t_5numpy_float_t; - */ - typedef npy_double __pyx_t_5numpy_double_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":813 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1140,7 +1230,7 @@ struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus; - struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase; - struct __pyx_obj_4cylp_2cy_14CyDantzigPivot_CyDantzigPivot; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":815 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":729 - * ctypedef npy_longdouble longdouble_t - * - * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< -@@ -1149,7 +1239,7 @@ struct __pyx_obj_4cylp_2cy_14CyDantzigPivot_CyDantzigPivot; - */ - typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":816 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":730 - * - * ctypedef npy_cfloat cfloat_t - * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< -@@ -1158,7 +1248,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - */ - typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":817 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1167,7 +1257,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - */ - typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":819 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":733 - * ctypedef npy_clongdouble clongdouble_t - * - * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< -@@ -1882,6 +1972,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()\ -@@ -1889,6 +1980,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 */ -@@ -2048,26 +2140,6 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - /* RaiseException.proto */ - static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); - --/* 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); -- - /* GetTopmostException.proto */ - #if CYTHON_USE_EXC_INFO_STACK - static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate); -@@ -2140,6 +2212,9 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam - /* SetVTable.proto */ - static int __Pyx_SetVtable(PyObject *dict, void *vtable); - -+/* PyObjectGetAttrStrNoError.proto */ -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); -+ - /* SetupReduce.proto */ - static int __Pyx_setup_reduce(PyObject* type_obj); - -@@ -2172,11 +2247,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_long(long value); -- --/* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); -+/* GCCDiagnostics.proto */ -+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -+#define __Pyx_HAS_GCC_DIAGNOSTIC -+#endif - - /* RealImag.proto */ - #if CYTHON_CCOMPLEX -@@ -2277,11 +2351,14 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); - #endif - - /* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value); -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); - - /* CIntFromPy.proto */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); - -+/* CIntToPy.proto */ -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); -+ - /* CIntFromPy.proto */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); - -@@ -2406,8 +2483,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.CyClpDualRowPivotBase' */ - static PyTypeObject *__pyx_ptype_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase = 0; -@@ -2468,9 +2554,6 @@ int __pyx_module_is_main_cylp__cy__CyDantzigPivot = 0; - - /* Implementation of 'cylp.cy.CyDantzigPivot' */ - static PyObject *__pyx_builtin_TypeError; --static PyObject *__pyx_builtin_ValueError; --static PyObject *__pyx_builtin_range; --static PyObject *__pyx_builtin_RuntimeError; - static PyObject *__pyx_builtin_ImportError; - static const char __pyx_k_np[] = "np"; - static const char __pyx_k_init[] = "__init__"; -@@ -2480,7 +2563,6 @@ static const char __pyx_k_test[] = "__test__"; - static const char __pyx_k_basic[] = "basic"; - static const char __pyx_k_clear[] = "clear"; - static const char __pyx_k_numpy[] = "numpy"; --static const char __pyx_k_range[] = "range"; - static const char __pyx_k_shape[] = "shape"; - static const char __pyx_k_where[] = "where"; - static const char __pyx_k_argmax[] = "argmax"; -@@ -2498,14 +2580,12 @@ static const char __pyx_k_nElements[] = "nElements"; - static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; - static const char __pyx_k_varIsFree[] = "varIsFree"; - static const char __pyx_k_varStatus[] = "varStatus"; --static const char __pyx_k_ValueError[] = "ValueError"; - static const char __pyx_k_nVariables[] = "nVariables"; - static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; - static const char __pyx_k_superBasic[] = "superBasic"; - static const char __pyx_k_ImportError[] = "ImportError"; - static const char __pyx_k_varNotBasic[] = "varNotBasic"; - static const char __pyx_k_varNotFixed[] = "varNotFixed"; --static const char __pyx_k_RuntimeError[] = "RuntimeError"; - static const char __pyx_k_atLowerBound[] = "atLowerBound"; - static const char __pyx_k_atUpperBound[] = "atUpperBound"; - static const char __pyx_k_reducedCosts[] = "reducedCosts"; -@@ -2520,23 +2600,12 @@ static const char __pyx_k_varIsAtLowerBound[] = "varIsAtLowerBound"; - static const char __pyx_k_varIsAtUpperBound[] = "varIsAtUpperBound"; - static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; - static const char __pyx_k_updateColumnTranspose[] = "updateColumnTranspose"; --static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; - static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import"; --static const char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%d)"; --static const char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; --static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; --static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; - static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import"; - static const char __pyx_k_self_CppSelf_cannot_be_converted[] = "self.CppSelf cannot be converted to a Python object for pickling"; --static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; - static PyObject *__pyx_n_s_CyDantzigPivot; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; - static PyObject *__pyx_n_s_ImportError; --static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; --static PyObject *__pyx_n_s_RuntimeError; - static PyObject *__pyx_n_s_TypeError; --static PyObject *__pyx_n_s_ValueError; - static PyObject *__pyx_n_s_argWeightedMax; - static PyObject *__pyx_n_s_argmax; - static PyObject *__pyx_n_s_atLowerBound; -@@ -2557,14 +2626,11 @@ static PyObject *__pyx_n_s_main; - static PyObject *__pyx_n_s_nElements; - static PyObject *__pyx_n_s_nVariables; - static PyObject *__pyx_n_s_name; --static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous; --static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou; - static PyObject *__pyx_n_s_np; - static PyObject *__pyx_n_s_numpy; - static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; - static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; - static PyObject *__pyx_n_s_pyx_vtable; --static PyObject *__pyx_n_s_range; - static PyObject *__pyx_n_s_reduce; - static PyObject *__pyx_n_s_reduce_cython; - static PyObject *__pyx_n_s_reduce_ex; -@@ -2576,7 +2642,6 @@ static PyObject *__pyx_n_s_shape; - static PyObject *__pyx_n_s_superBasic; - static PyObject *__pyx_n_s_test; - static PyObject *__pyx_n_s_transposeTimes; --static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; - static PyObject *__pyx_n_s_updateColumnTranspose; - static PyObject *__pyx_n_s_varIsAtLowerBound; - static PyObject *__pyx_n_s_varIsAtUpperBound; -@@ -2589,8 +2654,6 @@ static PyObject *__pyx_n_s_where; - static int __pyx_pf_4cylp_2cy_14CyDantzigPivot_14CyDantzigPivot___init__(struct __pyx_obj_4cylp_2cy_14CyDantzigPivot_CyDantzigPivot *__pyx_v_self, PyObject *__pyx_v_cyModel); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_14CyDantzigPivot_14CyDantzigPivot_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_14CyDantzigPivot_CyDantzigPivot *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_14CyDantzigPivot_14CyDantzigPivot_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_14CyDantzigPivot_CyDantzigPivot *__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_14CyDantzigPivot_CyDantzigPivot(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ - static PyObject *__pyx_int_0; - static PyObject *__pyx_int_1; -@@ -2599,11 +2662,6 @@ static PyObject *__pyx_tuple_; - static PyObject *__pyx_tuple__2; - static PyObject *__pyx_tuple__3; - static PyObject *__pyx_tuple__4; --static PyObject *__pyx_tuple__5; --static PyObject *__pyx_tuple__6; --static PyObject *__pyx_tuple__7; --static PyObject *__pyx_tuple__8; --static PyObject *__pyx_tuple__9; - /* Late includes */ - - /* "cylp/cy/CyDantzigPivot.pyx":15 -@@ -2618,6 +2676,9 @@ static PyObject *__pyx_tuple__9; - static int __pyx_pw_4cylp_2cy_14CyDantzigPivot_14CyDantzigPivot_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ - static int __pyx_pw_4cylp_2cy_14CyDantzigPivot_14CyDantzigPivot_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_cyModel = 0; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); -@@ -2670,6 +2731,9 @@ static int __pyx_pf_4cylp_2cy_14CyDantzigPivot_14CyDantzigPivot___init__(struct - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__init__", 0); - - /* "cylp/cy/CyDantzigPivot.pyx":16 -@@ -2770,6 +2834,9 @@ static PyObject *__pyx_f_4cylp_2cy_14CyDantzigPivot_14CyDantzigPivot_pivotColumn - PyObject *__pyx_t_8 = NULL; - double __pyx_t_9; - PyObject *__pyx_t_10 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("pivotColumn", 0); - - /* "cylp/cy/CyDantzigPivot.pyx":22 -@@ -3764,6 +3831,9 @@ static PyObject *__pyx_pf_4cylp_2cy_14CyDantzigPivot_14CyDantzigPivot_2__reduce_ - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -3819,6 +3889,9 @@ static PyObject *__pyx_pf_4cylp_2cy_14CyDantzigPivot_14CyDantzigPivot_4__setstat - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -3849,1918 +3922,331 @@ static PyObject *__pyx_pf_4cylp_2cy_14CyDantzigPivot_14CyDantzigPivot_4__setstat - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/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; -- 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); -+ PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; -+ __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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); - -- /* "../../../../Users/tkral/Anaconda3/lib/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; -+} - -- /* "../../../../Users/tkral/Anaconda3/lib/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:; - -- /* "../../../../Users/tkral/Anaconda3/lib/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); - -- /* "../../../../Users/tkral/Anaconda3/lib/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__3, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } - -- /* "../../../../Users/tkral/Anaconda3/lib/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:; - -- /* "../../../../Users/tkral/Anaconda3/lib/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); - -- /* "../../../../Users/tkral/Anaconda3/lib/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__4, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)))); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- */ -- (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } - -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- /*else*/ { -- __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); -+ /* 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; -+} - -- /* "../../../../Users/tkral/Anaconda3/lib/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:; - -- /* "../../../../Users/tkral/Anaconda3/lib/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; -+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); - -- /* "../../../../Users/tkral/Anaconda3/lib/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":745 - * -- */ -- __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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_MultiIterNew4(a, b, c, d): -+ * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< - * -- * cdef int t -+ * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): - */ -- __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":296 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":744 -+ * return PyArray_MultiIterNew(3, a, b, c) - * -- * cdef int t -- * cdef char* f = NULL # <<<<<<<<<<<<<< -- * cdef dtype descr = PyArray_DESCR(self) -- * cdef int offset -- */ -- __pyx_v_f = NULL; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":297 -- * cdef int t -- * cdef char* f = NULL -- * cdef dtype descr = PyArray_DESCR(self) # <<<<<<<<<<<<<< -- * cdef int offset -+ * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< -+ * return PyArray_MultiIterNew(4, a, b, c, 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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":300 -- * cdef int offset -+ /* 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; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 -+ * return PyArray_MultiIterNew(4, a, b, c, d) - * -- * info.obj = self # <<<<<<<<<<<<<< -+ * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -+ * return PyArray_MultiIterNew(5, a, b, c, d, e) - * -- * 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":302 -- * info.obj = self -+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); -+ -+ /* "../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) # <<<<<<<<<<<<<< - * -- * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< -- * t = descr.type_num -- * if ((descr.byteorder == c'>' and little_endian) or -+ * cdef inline tuple PyDataType_SHAPE(dtype d): - */ -- __pyx_t_1 = ((!(PyDataType_HASFIELDS(__pyx_v_descr) != 0)) != 0); -- if (__pyx_t_1) { -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":303 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 -+ * 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) - * -- * 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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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__5, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]) = '^'; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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'; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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): -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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(); --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -- * 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; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":822 -- * -- * 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, 822, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -- * 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -- * 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; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":825 -- * -- * 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, 825, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -- * 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -- * 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; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":828 -- * -- * 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, 828, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -- * 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -- * 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; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":831 -- * -- * 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, 831, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -- * 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -- * 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; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":834 -- * -- * 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, 834, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -- * 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) -- * -- */ -- -- /* 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -- * 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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -- * -- * 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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":838 -- * 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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -- * -- * cdef inline tuple PyDataType_SHAPE(dtype d): -- * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -- * return d.subarray.shape -- * else: -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":840 -- * 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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -- * 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -- * -- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< -- * # Recursive utility function used in __getbuffer__ to get format -- * # string. The new location in the format string is returned. -- */ -- --static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) { -- PyArray_Descr *__pyx_v_child = 0; -- int __pyx_v_endian_detector; -- int __pyx_v_little_endian; -- PyObject *__pyx_v_fields = 0; -- PyObject *__pyx_v_childname = NULL; -- PyObject *__pyx_v_new_offset = NULL; -- PyObject *__pyx_v_t = NULL; -- char *__pyx_r; -- __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- Py_ssize_t __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- PyObject *__pyx_t_4 = NULL; -- int __pyx_t_5; -- int __pyx_t_6; -- int __pyx_t_7; -- long __pyx_t_8; -- char *__pyx_t_9; -- __Pyx_RefNannySetupContext("_util_dtypestring", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":848 -- * 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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- if (unlikely(__pyx_v_descr->names == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -- __PYX_ERR(2, 851, __pyx_L1_error) -- } -- __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; -- for (;;) { -- if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; -- #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, 851, __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, 851, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- #endif -- __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":852 -- * -- * for childname in descr.names: -- * fields = descr.fields[childname] # <<<<<<<<<<<<<< -- * child, new_offset = fields -- * -- */ -- if (unlikely(__pyx_v_descr->fields == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -- __PYX_ERR(2, 852, __pyx_L1_error) -- } -- __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":853 -- * 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, 853, __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, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- #endif -- } else { -- __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 853, __pyx_L1_error) -- } -- if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3)); -- __pyx_t_3 = 0; -- __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 856, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0); -- if (!__pyx_t_7) { -- goto __pyx_L8_next_or; -- } else { -- } -- __pyx_t_7 = (__pyx_v_little_endian != 0); -- if (!__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_L8_next_or:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":859 -- * -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< -- * raise ValueError(u"Non-native byte order not supported") -- * # One could encode it in the format string and have Cython -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0); -- if (__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0); -- __pyx_t_6 = __pyx_t_7; -- __pyx_L7_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":860 -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * # One could encode it in the format string and have Cython -- * # complain instead, BUT: < and > in format strings also imply -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 860, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 860, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":870 -- * -- * # Output padding bytes -- * while offset[0] < new_offset: # <<<<<<<<<<<<<< -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- */ -- while (1) { -- __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (!__pyx_t_6) break; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":871 -- * # Output padding bytes -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< -- * f += 1 -- * offset[0] += 1 -- */ -- (__pyx_v_f[0]) = 0x78; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":872 -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte -- * f += 1 # <<<<<<<<<<<<<< -- * offset[0] += 1 -- * -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":873 -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- * offset[0] += 1 # <<<<<<<<<<<<<< -- * -- * offset[0] += child.itemsize -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":875 -- * offset[0] += 1 -- * -- * offset[0] += child.itemsize # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(child): -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); -- if (__pyx_t_6) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":878 -- * -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num # <<<<<<<<<<<<<< -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") -- */ -- __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 878, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 880, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":883 -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 98; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":884 -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":885 -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x68; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":886 -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 72; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":887 -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x69; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":888 -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 73; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":889 -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x6C; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":890 -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 76; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":891 -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x71; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":892 -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 81; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":893 -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":894 -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x64; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":895 -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x67; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":896 -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x66; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":897 -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x64; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":898 -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x67; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":899 -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (likely(__pyx_t_6)) { -- (__pyx_v_f[0]) = 79; -- goto __pyx_L15; -- } -+ /* 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; -+} - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":901 -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< -- * f += 1 -- * else: -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 -+ * return PyArray_MultiIterNew(5, a, b, c, d, e) -+ * -+ * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -+ * if PyDataType_HASSUBARRAY(d): -+ * return d.subarray.shape - */ -- /*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, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 901, __pyx_L1_error) -- } -- __pyx_L15:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":902 -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- * f += 1 # <<<<<<<<<<<<<< -- * else: -- * # Cython ignores struct boundary information ("T{...}"), -- */ -- __pyx_v_f = (__pyx_v_f + 1); -+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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * 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) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":906 -- * # Cython ignores struct boundary information ("T{...}"), -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< -- * return f -- * -+ /* "../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, 906, __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * 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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":907 -- * # 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; -+ } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * 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; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -+/* "../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): # <<<<<<<<<<<<<< -@@ -5772,7 +4258,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1023 -+ /* "../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! # <<<<<<<<<<<<<< -@@ -5781,7 +4267,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - Py_INCREF(__pyx_v_base); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1024 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -5790,7 +4276,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -5802,7 +4288,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyFinishContext(); - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+/* "../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): # <<<<<<<<<<<<<< -@@ -5817,7 +4303,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - int __pyx_t_1; - __Pyx_RefNannySetupContext("get_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1027 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -5826,7 +4312,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - __pyx_v_base = PyArray_BASE(__pyx_v_arr); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -5836,7 +4322,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) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1029 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":936 - * base = PyArray_BASE(arr) - * if base is NULL: - * return None # <<<<<<<<<<<<<< -@@ -5847,7 +4333,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -5856,7 +4342,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1030 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":937 - * if base is NULL: - * return None - * return base # <<<<<<<<<<<<<< -@@ -5868,7 +4354,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = ((PyObject *)__pyx_v_base); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -5883,12 +4369,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { -@@ -5902,13 +4388,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_array", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - { -@@ -5920,20 +4409,20 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1036 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":943 - * cdef inline int import_array() except -1: - * try: -- * _import_array() # <<<<<<<<<<<<<< -+ * __pyx_import_array() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") - */ -- __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1036, __pyx_L3_error) -+ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 943, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - } -@@ -5943,9 +4432,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1037 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":944 - * try: -- * _import_array() -+ * __pyx_import_array() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.multiarray failed to import") - * -@@ -5953,32 +4442,32 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1037, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 944, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 945, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __PYX_ERR(2, 945, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - __Pyx_XGIVEREF(__pyx_t_1); -@@ -5989,12 +4478,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - /* function exit code */ -@@ -6012,7 +4501,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -6031,9 +4520,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_umath", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -6049,16 +4541,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1042 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":949 - * cdef inline int import_umath() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1042, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 949, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -6072,7 +4564,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1043 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":950 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< -@@ -6082,28 +4574,28 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1043, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 950, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 951, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __PYX_ERR(2, 951, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -6118,7 +4610,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -6141,7 +4633,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -6160,9 +4652,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_ufunc", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -6178,16 +4673,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1048 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":955 - * cdef inline int import_ufunc() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1048, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 955, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -6201,69 +4696,246 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1049 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":956 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.umath failed to import") -+ * - */ - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1049, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 956, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1050 -- * _import_umath() -- * except Exception: -- * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":957 -+ * _import_umath() -+ * except Exception: -+ * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< -+ * -+ * cdef extern from *: -+ */ -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 957, __pyx_L5_except_error) -+ __Pyx_GOTREF(__pyx_t_8); -+ __Pyx_Raise(__pyx_t_8, 0, 0, 0); -+ __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -+ __PYX_ERR(2, 957, __pyx_L5_except_error) -+ } -+ goto __pyx_L5_except_error; -+ __pyx_L5_except_error:; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 -+ * -+ * cdef inline int import_ufunc() except -1: -+ * try: # <<<<<<<<<<<<<< -+ * _import_umath() -+ * except Exception: -+ */ -+ __Pyx_XGIVEREF(__pyx_t_1); -+ __Pyx_XGIVEREF(__pyx_t_2); -+ __Pyx_XGIVEREF(__pyx_t_3); -+ __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); -+ goto __pyx_L1_error; -+ __pyx_L8_try_end:; -+ } -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 -+ * raise ImportError("numpy.core.umath failed to import") -+ * -+ * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -+ * try: -+ * _import_umath() -+ */ -+ -+ /* function exit code */ -+ __pyx_r = 0; -+ goto __pyx_L0; -+ __pyx_L1_error:; -+ __Pyx_XDECREF(__pyx_t_5); -+ __Pyx_XDECREF(__pyx_t_6); -+ __Pyx_XDECREF(__pyx_t_7); -+ __Pyx_XDECREF(__pyx_t_8); -+ __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -+ __pyx_r = -1; -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_timedelta64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":979 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_datetime64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":994 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { -+ npy_datetime __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1004 -+ * also needed. That can be found using `get_datetime64_unit`. -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1050, __pyx_L5_except_error) -- __Pyx_GOTREF(__pyx_t_8); -- __Pyx_Raise(__pyx_t_8, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1050, __pyx_L5_except_error) -- } -- goto __pyx_L5_except_error; -- __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { -+ npy_timedelta __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1011 -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * - * -- * cdef inline int import_ufunc() except -1: -- * try: # <<<<<<<<<<<<<< -- * _import_umath() -- * except Exception: - */ -- __Pyx_XGIVEREF(__pyx_t_1); -- __Pyx_XGIVEREF(__pyx_t_2); -- __Pyx_XGIVEREF(__pyx_t_3); -- __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); -- goto __pyx_L1_error; -- __pyx_L8_try_end:; -- } -+ __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -- * raise ImportError("numpy.core.umath failed to import") -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 - * -- * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -- * try: -- * _import_umath() -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object - */ - - /* function exit code */ -- __pyx_r = 0; -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { -+ NPY_DATETIMEUNIT __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1018 -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ * """ -+ * return (obj).obmeta.base # <<<<<<<<<<<<<< -+ */ -+ __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); - goto __pyx_L0; -- __pyx_L1_error:; -- __Pyx_XDECREF(__pyx_t_5); -- __Pyx_XDECREF(__pyx_t_6); -- __Pyx_XDECREF(__pyx_t_7); -- __Pyx_XDECREF(__pyx_t_8); -- __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -- __pyx_r = -1; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+ /* function exit code */ - __pyx_L0:; -- __Pyx_RefNannyFinishContext(); - return __pyx_r; - } - static struct __pyx_vtabstruct_4cylp_2cy_14CyDantzigPivot_CyDantzigPivot __pyx_vtable_4cylp_2cy_14CyDantzigPivot_CyDantzigPivot; -@@ -6311,7 +4983,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_14CyDantzigPivot_CyDantzigPivot = { - sizeof(struct __pyx_obj_4cylp_2cy_14CyDantzigPivot_CyDantzigPivot), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_14CyDantzigPivot_CyDantzigPivot, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -6364,6 +5041,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_14CyDantzigPivot_CyDantzigPivot = { - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyMethodDef __pyx_methods[] = { -@@ -6413,13 +5096,8 @@ static struct PyModuleDef __pyx_moduledef = { - - static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_CyDantzigPivot, __pyx_k_CyDantzigPivot, sizeof(__pyx_k_CyDantzigPivot), 0, 0, 1, 1}, -- {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, -- {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, - {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, -- {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, -- {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, -- {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_n_s_argWeightedMax, __pyx_k_argWeightedMax, sizeof(__pyx_k_argWeightedMax), 0, 0, 1, 1}, - {&__pyx_n_s_argmax, __pyx_k_argmax, sizeof(__pyx_k_argmax), 0, 0, 1, 1}, - {&__pyx_n_s_atLowerBound, __pyx_k_atLowerBound, sizeof(__pyx_k_atLowerBound), 0, 0, 1, 1}, -@@ -6440,14 +5118,11 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_nElements, __pyx_k_nElements, sizeof(__pyx_k_nElements), 0, 0, 1, 1}, - {&__pyx_n_s_nVariables, __pyx_k_nVariables, sizeof(__pyx_k_nVariables), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, -- {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, -- {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, - {&__pyx_n_s_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 0, 1, 1}, - {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1}, - {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0}, - {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0}, - {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, -- {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, -@@ -6459,7 +5134,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_superBasic, __pyx_k_superBasic, sizeof(__pyx_k_superBasic), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, - {&__pyx_n_s_transposeTimes, __pyx_k_transposeTimes, sizeof(__pyx_k_transposeTimes), 0, 0, 1, 1}, -- {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, - {&__pyx_n_s_updateColumnTranspose, __pyx_k_updateColumnTranspose, sizeof(__pyx_k_updateColumnTranspose), 0, 0, 1, 1}, - {&__pyx_n_s_varIsAtLowerBound, __pyx_k_varIsAtLowerBound, sizeof(__pyx_k_varIsAtLowerBound), 0, 0, 1, 1}, - {&__pyx_n_s_varIsAtUpperBound, __pyx_k_varIsAtUpperBound, sizeof(__pyx_k_varIsAtUpperBound), 0, 0, 1, 1}, -@@ -6473,10 +5147,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - }; - static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 2, __pyx_L1_error) -- __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(2, 272, __pyx_L1_error) -- __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(2, 285, __pyx_L1_error) -- __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(2, 856, __pyx_L1_error) -- __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 1038, __pyx_L1_error) -+ __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 945, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -@@ -6505,82 +5176,27 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_GOTREF(__pyx_tuple__2); - __Pyx_GIVEREF(__pyx_tuple__2); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":272 -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(2, 272, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__3); -- __Pyx_GIVEREF(__pyx_tuple__3); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":276 -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 276, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__4); -- __Pyx_GIVEREF(__pyx_tuple__4); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":306 -- * if ((descr.byteorder == c'>' and little_endian) or -- * (descr.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * if t == NPY_BYTE: f = "b" -- * elif t == NPY_UBYTE: f = "B" -- */ -- __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(2, 306, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__5); -- __Pyx_GIVEREF(__pyx_tuple__5); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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_tuple__6 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__6); -- __Pyx_GIVEREF(__pyx_tuple__6); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__7); -- __Pyx_GIVEREF(__pyx_tuple__7); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(2, 1038, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__8); -- __Pyx_GIVEREF(__pyx_tuple__8); -+ __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(2, 945, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__3); -+ __Pyx_GIVEREF(__pyx_tuple__3); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(2, 1044, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__9); -- __Pyx_GIVEREF(__pyx_tuple__9); -+ __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 951, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__4); -+ __Pyx_GIVEREF(__pyx_tuple__4); - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; -@@ -6633,6 +5249,9 @@ static int __Pyx_modinit_function_export_code(void) { - static int __Pyx_modinit_type_init_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyClpPrimalColumnPivotBase"); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error) -@@ -6669,6 +5288,9 @@ static int __Pyx_modinit_type_init_code(void) { - static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error) -@@ -6698,18 +5320,38 @@ static int __Pyx_modinit_type_import_code(void) { - if (!__pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector) __PYX_ERR(6, 22, __pyx_L1_error) - __pyx_vtabptr_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector = (struct __pyx_vtabstruct_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector*)__Pyx_GetVtable(__pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector->tp_dict); if (unlikely(!__pyx_vtabptr_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector)) __PYX_ERR(6, 22, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 206, __pyx_L1_error) -+ __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 206, __pyx_L1_error) -- __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 229, __pyx_L1_error) -- __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 233, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 200, __pyx_L1_error) -+ __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 223, __pyx_L1_error) -+ __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 227, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 242, __pyx_L1_error) -- __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 918, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 239, __pyx_L1_error) -+ __pyx_ptype_5numpy_generic = __Pyx_ImportType(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 771, __pyx_L1_error) -+ __pyx_ptype_5numpy_number = __Pyx_ImportType(__pyx_t_1, "numpy", "number", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 773, __pyx_L1_error) -+ __pyx_ptype_5numpy_integer = __Pyx_ImportType(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 775, __pyx_L1_error) -+ __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 777, __pyx_L1_error) -+ __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 779, __pyx_L1_error) -+ __pyx_ptype_5numpy_inexact = __Pyx_ImportType(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 781, __pyx_L1_error) -+ __pyx_ptype_5numpy_floating = __Pyx_ImportType(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 783, __pyx_L1_error) -+ __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 785, __pyx_L1_error) -+ __pyx_ptype_5numpy_flexible = __Pyx_ImportType(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 787, __pyx_L1_error) -+ __pyx_ptype_5numpy_character = __Pyx_ImportType(__pyx_t_1, "numpy", "character", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 789, __pyx_L1_error) -+ __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 827, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyClpDualRowPivotBase"); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 72, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); -@@ -6812,13 +5454,17 @@ static int __Pyx_modinit_variable_import_code(void) { - static int __Pyx_modinit_function_import_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); - /*--- Function import code ---*/ - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyClpPrimalColumnPivotBase"); if (!__pyx_t_1) __PYX_ERR(1, 1, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_ImportFunction(__pyx_t_1, "RunPivotColumn", (void (**)(void))&__pyx_f_4cylp_2cy_26CyClpPrimalColumnPivotBase_RunPivotColumn, "int (void *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error) - if (__Pyx_ImportFunction(__pyx_t_1, "RunClone", (void (**)(void))&__pyx_f_4cylp_2cy_26CyClpPrimalColumnPivotBase_RunClone, "ClpPrimalColumnPivot *(void *, int)") < 0) __PYX_ERR(1, 1, __pyx_L1_error) - if (__Pyx_ImportFunction(__pyx_t_1, "RunSaveWeights", (void (**)(void))&__pyx_f_4cylp_2cy_26CyClpPrimalColumnPivotBase_RunSaveWeights, "void (void *, IClpSimplex *, int)") < 0) __PYX_ERR(1, 1, __pyx_L1_error) -- Py_DECREF(__pyx_t_1); __pyx_t_1 = 0; -+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; -@@ -6828,17 +5474,19 @@ static int __Pyx_modinit_function_import_code(void) { - } - - --#if PY_MAJOR_VERSION < 3 --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC void --#else -+#ifndef CYTHON_NO_PYINIT_EXPORT - #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#elif PY_MAJOR_VERSION < 3 -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" void -+#else -+#define __Pyx_PyMODINIT_FUNC void - #endif - #else --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC PyObject * -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * - #else --#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#define __Pyx_PyMODINIT_FUNC PyObject * - #endif - #endif - -@@ -6920,6 +5568,9 @@ static CYTHON_SMALL_CODE int __pyx_pymod_exec_CyDantzigPivot(PyObject *__pyx_pyi - #endif - { - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { -@@ -6967,11 +5618,9 @@ if (!__Pyx_RefNanny) { - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ -- #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS -- #ifdef WITH_THREAD /* Python build with threading support? */ -+ #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - PyEval_InitThreads(); - #endif -- #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; -@@ -7008,17 +5657,17 @@ if (!__Pyx_RefNanny) { - } - #endif - /*--- Builtin init code ---*/ -- if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Constants init code ---*/ -- if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(); - (void)__Pyx_modinit_variable_export_code(); - (void)__Pyx_modinit_function_export_code(); -- if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; -- if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; -+ if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) -+ if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) - (void)__Pyx_modinit_variable_import_code(); -- if (unlikely(__Pyx_modinit_function_import_code() != 0)) goto __pyx_L1_error; -+ if (unlikely(__Pyx_modinit_function_import_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Execution code ---*/ - #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) - if (__Pyx_patch_abc() < 0) __PYX_ERR(1, 1, __pyx_L1_error) -@@ -7076,12 +5725,12 @@ if (!__Pyx_RefNanny) { - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -- * raise ImportError("numpy.core.umath failed to import") -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -- * try: -- * _import_umath() -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ - - /*--- Wrapped vars code ---*/ -@@ -7190,7 +5839,7 @@ static int __Pyx_ParseOptionalKeywords( - } - name = first_kw_arg; - #if PY_MAJOR_VERSION < 3 -- if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { -+ if (likely(PyString_Check(key))) { - while (*name) { - if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) - && _PyString_Eq(**name, key)) { -@@ -7217,7 +5866,7 @@ static int __Pyx_ParseOptionalKeywords( - while (*name) { - int cmp = (**name == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 -- (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : -+ (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**name, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; -@@ -7233,7 +5882,7 @@ static int __Pyx_ParseOptionalKeywords( - while (argname != first_kw_arg) { - int cmp = (**argname == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 -- (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : -+ (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**argname, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; -@@ -7455,7 +6104,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, - #if CYTHON_COMPILING_IN_CPYTHON - static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; -- ternaryfunc call = func->ob_type->tp_call; -+ ternaryfunc call = Py_TYPE(func)->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -@@ -7542,7 +6191,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec - if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { - return __Pyx_PyObject_CallMethO(func, arg); - #if CYTHON_FAST_PYCCALL -- } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { -+ } else if (__Pyx_PyFastCFunction_Check(func)) { - return __Pyx_PyCFunction_FastCall(func, &arg, 1); - #endif - } -@@ -7866,7 +6515,7 @@ static PyObject *__Pyx_PyLong_AbsNeg(PyObject *n) { - { - PyObject *copy = _PyLong_Copy((PyLongObject*)n); - if (likely(copy)) { -- Py_SIZE(copy) = -(Py_SIZE(copy)); -+ __Pyx_SET_SIZE(copy, -Py_SIZE(copy)); - } - return copy; - } -@@ -8059,48 +6708,6 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject - } - #endif - --/* DictGetItem */ --#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY --static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { -- PyObject *value; -- value = PyDict_GetItemWithError(d, key); -- if (unlikely(!value)) { -- if (!PyErr_Occurred()) { -- if (unlikely(PyTuple_Check(key))) { -- PyObject* args = PyTuple_Pack(1, key); -- if (likely(args)) { -- PyErr_SetObject(PyExc_KeyError, args); -- Py_DECREF(args); -- } -- } else { -- PyErr_SetObject(PyExc_KeyError, key); -- } -- } -- return NULL; -- } -- Py_INCREF(value); -- return value; --} --#endif -- --/* RaiseTooManyValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { -- PyErr_Format(PyExc_ValueError, -- "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); --} -- --/* RaiseNeedMoreValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { -- PyErr_Format(PyExc_ValueError, -- "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", -- index, (index == 1) ? "" : "s"); --} -- --/* RaiseNoneIterError */ --static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); --} -- - /* GetTopmostException */ - #if CYTHON_USE_EXC_INFO_STACK - static _PyErr_StackItem * -@@ -8439,6 +7046,28 @@ static int __Pyx_SetVtable(PyObject *dict, void *vtable) { - return -1; - } - -+/* PyObjectGetAttrStrNoError */ -+static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { -+ __Pyx_PyThreadState_declare -+ __Pyx_PyThreadState_assign -+ if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) -+ __Pyx_PyErr_Clear(); -+} -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { -+ PyObject *result; -+#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 -+ PyTypeObject* tp = Py_TYPE(obj); -+ if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { -+ return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); -+ } -+#endif -+ result = __Pyx_PyObject_GetAttrStr(obj, attr_name); -+ if (unlikely(!result)) { -+ __Pyx_PyObject_GetAttrStr_ClearAttributeError(); -+ } -+ return result; -+} -+ - /* SetupReduce */ - static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { - int ret; -@@ -8466,43 +7095,51 @@ static int __Pyx_setup_reduce(PyObject* type_obj) { - PyObject *setstate = NULL; - PyObject *setstate_cython = NULL; - #if CYTHON_USE_PYTYPE_LOOKUP -- if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #else -- if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #endif - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #else -- object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #endif -- reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; -+ reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; - if (reduce_ex == object_reduce_ex) { - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #else -- object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #endif -- reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; -+ reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; - if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { -- reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; -+ reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); -+ if (likely(reduce_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (reduce == object_reduce || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); - if (!setstate) PyErr_Clear(); - if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { -- setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; -+ setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); -+ if (likely(setstate_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (!setstate || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - } - PyType_Modified((PyTypeObject*)type_obj); - } - } -- goto GOOD; --BAD: -+ goto __PYX_GOOD; -+__PYX_BAD: - if (!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); - ret = -1; --GOOD: -+__PYX_GOOD: - #if !CYTHON_USE_PYTYPE_LOOKUP - Py_XDECREF(object_reduce); - Py_XDECREF(object_reduce_ex); -@@ -8545,7 +7182,7 @@ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { - { - #if PY_MAJOR_VERSION >= 3 - if (level == -1) { -- if (strchr(__Pyx_MODULE_NAME, '.')) { -+ if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) { - module = PyImport_ImportModuleLevelObject( - name, global_dict, empty_dict, list, 1); - if (!module) { -@@ -8582,7 +7219,7 @@ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { - - /* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK --static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { -+static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) { - PyObject *use_cline; - PyObject *ptype, *pvalue, *ptraceback; - #if CYTHON_COMPILING_IN_CPYTHON -@@ -8612,7 +7249,7 @@ static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { - } - if (!use_cline) { - c_line = 0; -- PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); -+ (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; -@@ -8686,7 +7323,7 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - if (__pyx_code_cache.count == __pyx_code_cache.max_count) { - int new_max = __pyx_code_cache.max_count + 64; - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( -- __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); -+ __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); - if (unlikely(!entries)) { - return; - } -@@ -8709,30 +7346,31 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { -- PyCodeObject *py_code = 0; -- PyObject *py_srcfile = 0; -- PyObject *py_funcname = 0; -+ PyCodeObject *py_code = NULL; -+ PyObject *py_funcname = NULL; - #if PY_MAJOR_VERSION < 3 -+ PyObject *py_srcfile = NULL; - py_srcfile = PyString_FromString(filename); -- #else -- py_srcfile = PyUnicode_FromString(filename); -- #endif - if (!py_srcfile) goto bad; -+ #endif - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; -+ funcname = PyUnicode_AsUTF8(py_funcname); -+ if (!funcname) goto bad; - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); -- #else -- py_funcname = PyUnicode_FromString(funcname); -+ if (!py_funcname) goto bad; - #endif - } -- if (!py_funcname) goto bad; -+ #if PY_MAJOR_VERSION < 3 - py_code = __Pyx_PyCode_New( - 0, - 0, -@@ -8751,11 +7389,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); -- Py_DECREF(py_funcname); -+ #else -+ py_code = PyCode_NewEmpty(filename, funcname, py_line); -+ #endif -+ Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline - return py_code; - bad: -- Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); -+ #if PY_MAJOR_VERSION < 3 -+ Py_XDECREF(py_srcfile); -+ #endif - return NULL; - } - static void __Pyx_AddTraceback(const char *funcname, int c_line, -@@ -8787,37 +7430,6 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - Py_XDECREF(py_frame); - } - --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(long) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(long) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(long) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(long), -- little, !is_unsigned); -- } --} -- - /* CIntFromPyVerify */ - #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ - __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) -@@ -8840,37 +7452,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - return (target_type) value;\ - } - --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(int) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(int) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(int) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(int), -- little, !is_unsigned); -- } --} -- - /* Declarations */ - #if CYTHON_CCOMPLEX - #ifdef __cplusplus -@@ -8988,7 +7569,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_float(a, a); - return __Pyx_c_prod_float(a, a); - case 3: - z = __Pyx_c_prod_float(a, a); -@@ -9143,7 +7723,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_double(a, a); - return __Pyx_c_prod_double(a, a); - case 3: - z = __Pyx_c_prod_double(a, a); -@@ -9182,24 +7761,31 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - #endif - - /* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { -- const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0; -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { -- if (sizeof(enum NPY_TYPES) < sizeof(long)) { -+ if (sizeof(long) < sizeof(long)) { - return PyInt_FromLong((long) value); -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { -+ } else if (sizeof(long) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); - #ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { -+ } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); - #endif - } - } else { -- if (sizeof(enum NPY_TYPES) <= sizeof(long)) { -+ if (sizeof(long) <= sizeof(long)) { - return PyInt_FromLong((long) value); - #ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { -+ } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); - #endif - } -@@ -9207,14 +7793,21 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES v - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), -+ return _PyLong_FromByteArray(bytes, sizeof(long), - little, !is_unsigned); - } - } - - /* CIntFromPy */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -9401,9 +7994,54 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - return (int) -1; - } - -+/* CIntToPy */ -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif -+ const int is_unsigned = neg_one > const_zero; -+ if (is_unsigned) { -+ if (sizeof(int) < sizeof(long)) { -+ return PyInt_FromLong((long) value); -+ } else if (sizeof(int) <= sizeof(unsigned long)) { -+ return PyLong_FromUnsignedLong((unsigned long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -+ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+#endif -+ } -+ } else { -+ if (sizeof(int) <= sizeof(long)) { -+ return PyInt_FromLong((long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -+ return PyLong_FromLongLong((PY_LONG_LONG) value); -+#endif -+ } -+ } -+ { -+ int one = 1; int little = (int)*(unsigned char *)&one; -+ unsigned char *bytes = (unsigned char *)&value; -+ return _PyLong_FromByteArray(bytes, sizeof(int), -+ little, !is_unsigned); -+ } -+} -+ - /* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -10008,6 +8646,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_DECREF(x); - return ival; - } -+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { -+ if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { -+ return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); -+#if PY_MAJOR_VERSION < 3 -+ } else if (likely(PyInt_CheckExact(o))) { -+ return PyInt_AS_LONG(o); -+#endif -+ } else { -+ Py_ssize_t ival; -+ PyObject *x; -+ x = PyNumber_Index(o); -+ if (!x) return -1; -+ ival = PyInt_AsLong(x); -+ Py_DECREF(x); -+ return ival; -+ } -+} - static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); - } -diff --git a/cylp/cy/CyDualPivotPythonBase.cpp b/cylp/cy/CyDualPivotPythonBase.cpp -index df769b2..b5a8e15 100644 ---- a/cylp/cy/CyDualPivotPythonBase.cpp -+++ b/cylp/cy/CyDualPivotPythonBase.cpp -@@ -1,14 +1,16 @@ --/* Generated by Cython 0.29.12 */ -+/* 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_12" --#define CYTHON_HEX_VERSION 0x001D0CF0 -+#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) -@@ -449,7 +516,15 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) - #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) -+ #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 - #else - #define CYTHON_PEP393_ENABLED 0 - #define PyUnicode_1BYTE_KIND 1 -@@ -498,8 +573,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact -+#ifndef PyObject_Unicode - #define PyObject_Unicode PyObject_Str - #endif -+#endif - #if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) - #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) -@@ -510,6 +587,13 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #ifndef PySet_CheckExact - #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) - #endif -+#if PY_VERSION_HEX >= 0x030900A4 -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) -+#else -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) -+#endif - #if CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) - #else -@@ -543,13 +627,13 @@ 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) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) -+ #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) - #else - #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) - #endif -@@ -590,11 +674,10 @@ static CYTHON_INLINE float __PYX_NAN() { - #define __Pyx_truncl truncl - #endif - -- -+#define __PYX_MARK_ERR_POS(f_index, lineno) \ -+ { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } - #define __PYX_ERR(f_index, lineno, Ln_error) \ --{ \ -- __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ --} -+ { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } - - #ifndef __PYX_EXTERN_C - #ifdef __cplusplus -@@ -610,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 "pythread.h" - #include "ICoinIndexedVector.hpp" - #include "ClpPrimalColumnPivot.hpp" -@@ -641,11 +730,11 @@ static CYTHON_INLINE float __PYX_NAN() { - #include "OsiSolverInterface.hpp" - #include "CbcCompareUser.hpp" - #include "ICbcModel.hpp" -+#include - #include "ios" - #include "new" - #include "stdexcept" - #include "typeinfo" --#include - #include - #include "ClpDualRowPivot.hpp" - #include "IClpSimplex.hpp" -@@ -746,6 +835,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 -@@ -881,20 +971,20 @@ static const char *__pyx_filename; - - static const char *__pyx_f[] = { - "stringsource", -- "cylp\\cy\\CyDualPivotPythonBase.pyx", -+ "cylp/cy/CyDualPivotPythonBase.pyx", - "__init__.pxd", - "type.pxd", - "bool.pxd", - "complex.pxd", -- "cylp\\cy\\CyCoinIndexedVector.pxd", -- "cylp\\cy\\CyClpPrimalColumnPivotBase.pxd", -- "cylp\\cy\\CyCoinModel.pxd", -- "cylp\\cy\\CyCoinPackedMatrix.pxd", -- "cylp\\cy\\CyCgl.pxd", -- "cylp\\cy\\CyCbcNode.pxd", -- "cylp\\cy\\CyOsiSolverInterface.pxd", -- "cylp\\cy\\CyCbcModel.pxd", -- "cylp\\cy\\CyClpSimplex.pxd", -+ "cylp/cy/CyCoinIndexedVector.pxd", -+ "cylp/cy/CyClpPrimalColumnPivotBase.pxd", -+ "cylp/cy/CyCoinModel.pxd", -+ "cylp/cy/CyCoinPackedMatrix.pxd", -+ "cylp/cy/CyCgl.pxd", -+ "cylp/cy/CyCbcNode.pxd", -+ "cylp/cy/CyOsiSolverInterface.pxd", -+ "cylp/cy/CyCbcModel.pxd", -+ "cylp/cy/CyClpSimplex.pxd", - }; - /* BufferFormatStructs.proto */ - #define IS_UNSIGNED(type) (((type) -1) > 0) -@@ -933,7 +1023,7 @@ typedef struct { - } __Pyx_BufFmt_Context; - - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":776 -+/* "../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 # <<<<<<<<<<<<<< -@@ -942,7 +1032,7 @@ typedef struct { - */ - typedef npy_int8 __pyx_t_5numpy_int8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":777 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":691 - * - * ctypedef npy_int8 int8_t - * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< -@@ -951,7 +1041,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; - */ - typedef npy_int16 __pyx_t_5numpy_int16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":778 -+/* "../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 # <<<<<<<<<<<<<< -@@ -960,7 +1050,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; - */ - typedef npy_int32 __pyx_t_5numpy_int32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":779 -+/* "../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 # <<<<<<<<<<<<<< -@@ -969,7 +1059,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; - */ - typedef npy_int64 __pyx_t_5numpy_int64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":783 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":697 - * #ctypedef npy_int128 int128_t - * - * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< -@@ -978,7 +1068,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; - */ - typedef npy_uint8 __pyx_t_5numpy_uint8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":784 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":698 - * - * ctypedef npy_uint8 uint8_t - * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< -@@ -987,7 +1077,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; - */ - typedef npy_uint16 __pyx_t_5numpy_uint16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":785 -+/* "../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 # <<<<<<<<<<<<<< -@@ -996,7 +1086,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; - */ - typedef npy_uint32 __pyx_t_5numpy_uint32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":786 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1005,7 +1095,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; - */ - typedef npy_uint64 __pyx_t_5numpy_uint64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":790 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":704 - * #ctypedef npy_uint128 uint128_t - * - * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< -@@ -1014,7 +1104,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; - */ - typedef npy_float32 __pyx_t_5numpy_float32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":791 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":705 - * - * ctypedef npy_float32 float32_t - * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< -@@ -1023,7 +1113,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; - */ - typedef npy_float64 __pyx_t_5numpy_float64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":800 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1032,7 +1122,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; - */ - typedef npy_long __pyx_t_5numpy_int_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":801 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1041,7 +1131,7 @@ typedef npy_long __pyx_t_5numpy_int_t; - */ - typedef npy_longlong __pyx_t_5numpy_long_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":802 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1050,7 +1140,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; - */ - typedef npy_longlong __pyx_t_5numpy_longlong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":804 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":718 - * ctypedef npy_longlong longlong_t - * - * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< -@@ -1059,7 +1149,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; - */ - typedef npy_ulong __pyx_t_5numpy_uint_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":805 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":719 - * - * ctypedef npy_ulong uint_t - * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< -@@ -1068,7 +1158,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":806 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1077,7 +1167,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":808 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":722 - * ctypedef npy_ulonglong ulonglong_t - * - * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< -@@ -1086,7 +1176,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - */ - typedef npy_intp __pyx_t_5numpy_intp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":809 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":723 - * - * ctypedef npy_intp intp_t - * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< -@@ -1095,7 +1185,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; - */ - typedef npy_uintp __pyx_t_5numpy_uintp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":811 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":725 - * ctypedef npy_uintp uintp_t - * - * ctypedef npy_double float_t # <<<<<<<<<<<<<< -@@ -1104,7 +1194,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; - */ - typedef npy_double __pyx_t_5numpy_float_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":812 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":726 - * - * ctypedef npy_double float_t - * ctypedef npy_double double_t # <<<<<<<<<<<<<< -@@ -1113,7 +1203,7 @@ typedef npy_double __pyx_t_5numpy_float_t; - */ - typedef npy_double __pyx_t_5numpy_double_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":813 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1176,7 +1266,7 @@ struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus; - struct __pyx_obj_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase; - struct __pyx_obj_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":815 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":729 - * ctypedef npy_longdouble longdouble_t - * - * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< -@@ -1185,7 +1275,7 @@ struct __pyx_obj_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase; - */ - typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":816 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":730 - * - * ctypedef npy_cfloat cfloat_t - * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< -@@ -1194,7 +1284,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - */ - typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":817 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1203,7 +1293,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - */ - typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":819 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":733 - * ctypedef npy_clongdouble clongdouble_t - * - * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< -@@ -1916,6 +2006,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()\ -@@ -1923,6 +2014,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 */ -@@ -2019,29 +2111,6 @@ static void __Pyx_RaiseBufferIndexError(int axis); - /* RaiseException.proto */ - static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); - --/* 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); -@@ -2114,6 +2183,9 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam - /* SetVTable.proto */ - static int __Pyx_SetVtable(PyObject *dict, void *vtable); - -+/* PyObjectGetAttrStrNoError.proto */ -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); -+ - /* SetupReduce.proto */ - static int __Pyx_setup_reduce(PyObject* type_obj); - -@@ -2290,14 +2362,10 @@ typedef struct { - #endif - #endif - --/* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); -- --/* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value); -- --/* CIntFromPy.proto */ --static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); -+/* GCCDiagnostics.proto */ -+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -+#define __Pyx_HAS_GCC_DIAGNOSTIC -+#endif - - /* CIntToPy.proto */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); -@@ -2305,6 +2373,9 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); - /* CIntFromPy.proto */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); - -+/* CIntFromPy.proto */ -+static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); -+ - /* FastTypeChecks.proto */ - #if CYTHON_COMPILING_IN_CPYTHON - #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) -@@ -2422,8 +2493,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' */ - -@@ -2491,25 +2571,19 @@ int __pyx_module_is_main_cylp__cy__CyDualPivotPythonBase = 0; - - /* Implementation of 'cylp.cy.CyDualPivotPythonBase' */ - static PyObject *__pyx_builtin_TypeError; --static PyObject *__pyx_builtin_ValueError; --static PyObject *__pyx_builtin_range; --static PyObject *__pyx_builtin_RuntimeError; - static PyObject *__pyx_builtin_ImportError; - static const char __pyx_k_init[] = "__init__"; - static const char __pyx_k_main[] = "__main__"; - static const char __pyx_k_name[] = "__name__"; - static const char __pyx_k_test[] = "__test__"; --static const char __pyx_k_range[] = "range"; - static const char __pyx_k_reduce[] = "__reduce__"; - static const char __pyx_k_getstate[] = "__getstate__"; - static const char __pyx_k_pivotRow[] = "pivotRow"; - static const char __pyx_k_setstate[] = "__setstate__"; - static const char __pyx_k_TypeError[] = "TypeError"; - static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; --static const char __pyx_k_ValueError[] = "ValueError"; - static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; - static const char __pyx_k_ImportError[] = "ImportError"; --static const char __pyx_k_RuntimeError[] = "RuntimeError"; - static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; - static const char __pyx_k_updateWeights[] = "updateWeights"; - static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; -@@ -2517,36 +2591,22 @@ static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; - static const char __pyx_k_updatePrimalSolution[] = "updatePrimalSolution"; - static const char __pyx_k_CyDualPivotPythonBase[] = "CyDualPivotPythonBase"; - static const char __pyx_k_dualPivotMethodObject[] = "dualPivotMethodObject"; --static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; - static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import"; --static const char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%d)"; --static const char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; --static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; --static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; - static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import"; - static const char __pyx_k_self_CppSelf_cannot_be_converted[] = "self.CppSelf cannot be converted to a Python object for pickling"; --static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; - static PyObject *__pyx_n_s_CyDualPivotPythonBase; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; - static PyObject *__pyx_n_s_ImportError; --static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; --static PyObject *__pyx_n_s_RuntimeError; - static PyObject *__pyx_n_s_TypeError; --static PyObject *__pyx_n_s_ValueError; - static PyObject *__pyx_n_s_cline_in_traceback; - static PyObject *__pyx_n_s_dualPivotMethodObject; - static PyObject *__pyx_n_s_getstate; - static PyObject *__pyx_n_s_init; - static PyObject *__pyx_n_s_main; - static PyObject *__pyx_n_s_name; --static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous; --static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou; - static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; - static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; - static PyObject *__pyx_n_s_pivotRow; - static PyObject *__pyx_n_s_pyx_vtable; --static PyObject *__pyx_n_s_range; - static PyObject *__pyx_n_s_reduce; - static PyObject *__pyx_n_s_reduce_cython; - static PyObject *__pyx_n_s_reduce_ex; -@@ -2554,24 +2614,16 @@ static PyObject *__pyx_kp_s_self_CppSelf_cannot_be_converted; - static PyObject *__pyx_n_s_setstate; - static PyObject *__pyx_n_s_setstate_cython; - static PyObject *__pyx_n_s_test; --static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; - static PyObject *__pyx_n_s_updatePrimalSolution; - static PyObject *__pyx_n_s_updateWeights; - static int __pyx_pf_4cylp_2cy_21CyDualPivotPythonBase_21CyDualPivotPythonBase___init__(struct __pyx_obj_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase *__pyx_v_self, PyObject *__pyx_v_dualPivotMethodObject); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_21CyDualPivotPythonBase_21CyDualPivotPythonBase_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_21CyDualPivotPythonBase_21CyDualPivotPythonBase_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase *__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_21CyDualPivotPythonBase_CyDualPivotPythonBase(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ - static PyObject *__pyx_tuple_; - static PyObject *__pyx_tuple__2; - static PyObject *__pyx_tuple__3; - static PyObject *__pyx_tuple__4; --static PyObject *__pyx_tuple__5; --static PyObject *__pyx_tuple__6; --static PyObject *__pyx_tuple__7; --static PyObject *__pyx_tuple__8; --static PyObject *__pyx_tuple__9; - /* Late includes */ - - /* "cylp/cy/CyDualPivotPythonBase.pyx":7 -@@ -2586,6 +2638,9 @@ static PyObject *__pyx_tuple__9; - static int __pyx_pw_4cylp_2cy_21CyDualPivotPythonBase_21CyDualPivotPythonBase_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ - static int __pyx_pw_4cylp_2cy_21CyDualPivotPythonBase_21CyDualPivotPythonBase_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_dualPivotMethodObject = 0; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); -@@ -2638,6 +2693,9 @@ static int __pyx_pf_4cylp_2cy_21CyDualPivotPythonBase_21CyDualPivotPythonBase___ - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__init__", 0); - - /* "cylp/cy/CyDualPivotPythonBase.pyx":8 -@@ -2724,6 +2782,9 @@ static PyObject *__pyx_f_4cylp_2cy_21CyDualPivotPythonBase_21CyDualPivotPythonBa - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("pivotRow", 0); - - /* "cylp/cy/CyDualPivotPythonBase.pyx":13 -@@ -2844,6 +2905,9 @@ static double __pyx_f_4cylp_2cy_21CyDualPivotPythonBase_21CyDualPivotPythonBase_ - int __pyx_t_4; - PyObject *__pyx_t_5 = NULL; - double __pyx_t_6; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("updateWeights", 0); - - /* "cylp/cy/CyDualPivotPythonBase.pyx":29 -@@ -3050,6 +3114,9 @@ static void __pyx_f_4cylp_2cy_21CyDualPivotPythonBase_21CyDualPivotPythonBase_up - PyObject *__pyx_t_6 = NULL; - __pyx_t_5numpy_double_t __pyx_t_7; - Py_ssize_t __pyx_t_8; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("updatePrimalSolution", 0); - __pyx_pybuffer_changeInObjective.pybuffer.buf = NULL; - __pyx_pybuffer_changeInObjective.refcount = 0; -@@ -3221,6 +3288,9 @@ static PyObject *__pyx_pf_4cylp_2cy_21CyDualPivotPythonBase_21CyDualPivotPythonB - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -3276,6 +3346,9 @@ static PyObject *__pyx_pf_4cylp_2cy_21CyDualPivotPythonBase_21CyDualPivotPythonB - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -3306,863 +3379,7 @@ static PyObject *__pyx_pf_4cylp_2cy_21CyDualPivotPythonBase_21CyDualPivotPythonB - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":258 -- * # experimental exception made for __getbuffer__ and __releasebuffer__ -- * # -- the details of this may change. -- * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< -- * # This implementation of getbuffer is geared towards Cython -- * # requirements, and does not yet fulfill the PEP. -- */ -- --/* Python wrapper */ --static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ --static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { -- int __pyx_r; -- __Pyx_RefNannyDeclarations -- __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); -- __pyx_r = __pyx_pf_5numpy_7ndarray___getbuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); -- -- /* function exit code */ -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { -- int __pyx_v_i; -- int __pyx_v_ndim; -- int __pyx_v_endian_detector; -- int __pyx_v_little_endian; -- int __pyx_v_t; -- char *__pyx_v_f; -- PyArray_Descr *__pyx_v_descr = 0; -- int __pyx_v_offset; -- int __pyx_r; -- __Pyx_RefNannyDeclarations -- int __pyx_t_1; -- int __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- int __pyx_t_4; -- int __pyx_t_5; -- int __pyx_t_6; -- PyArray_Descr *__pyx_t_7; -- PyObject *__pyx_t_8 = NULL; -- char *__pyx_t_9; -- if (__pyx_v_info == NULL) { -- PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); -- return -1; -- } -- __Pyx_RefNannySetupContext("__getbuffer__", 0); -- __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); -- __Pyx_GIVEREF(__pyx_v_info->obj); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- * -- */ -- __pyx_v_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) # <<<<<<<<<<<<<< -- * -- * ndim = PyArray_NDIM(self) -- */ -- __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":268 -- * cdef bint little_endian = ((&endian_detector)[0] != 0) -- * -- * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- */ -- __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":271 -- * -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< -- * raise ValueError(u"ndarray is not C contiguous") -- * -- */ -- __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_C_CONTIGUOUS) != 0)) != 0); -- __pyx_t_1 = __pyx_t_2; -- __pyx_L4_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":272 -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__3, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":274 -- * raise ValueError(u"ndarray is not C contiguous") -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") -- */ -- __pyx_t_2 = (((__pyx_v_flags & PyBUF_F_CONTIGUOUS) == PyBUF_F_CONTIGUOUS) != 0); -- if (__pyx_t_2) { -- } else { -- __pyx_t_1 = __pyx_t_2; -- goto __pyx_L7_bool_binop_done; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":275 -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< -- * raise ValueError(u"ndarray is not Fortran contiguous") -- * -- */ -- __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_F_CONTIGUOUS) != 0)) != 0); -- __pyx_t_1 = __pyx_t_2; -- __pyx_L7_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":276 -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__4, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":278 -- * raise ValueError(u"ndarray is not Fortran contiguous") -- * -- * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< -- * info.ndim = ndim -- * if sizeof(npy_intp) != sizeof(Py_ssize_t): -- */ -- __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":279 -- * -- * info.buf = PyArray_DATA(self) -- * info.ndim = ndim # <<<<<<<<<<<<<< -- * if sizeof(npy_intp) != sizeof(Py_ssize_t): -- * # Allocate new buffer for strides and shape info. -- */ -- __pyx_v_info->ndim = __pyx_v_ndim; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)))); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- */ -- (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- /*else*/ { -- __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- */ -- __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(__pyx_v_self)); -- } -- __pyx_L9:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- * -- */ -- __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":293 -- * info.suboffsets = NULL -- * info.itemsize = PyArray_ITEMSIZE(self) -- * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< -- * -- * cdef int t -- */ -- __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":297 -- * cdef int t -- * cdef char* f = NULL -- * cdef dtype descr = PyArray_DESCR(self) # <<<<<<<<<<<<<< -- * cdef int offset -- * -- */ -- __pyx_t_7 = PyArray_DESCR(__pyx_v_self); -- __pyx_t_3 = ((PyObject *)__pyx_t_7); -- __Pyx_INCREF(__pyx_t_3); -- __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":300 -- * cdef int offset -- * -- * info.obj = self # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(descr): -- */ -- __Pyx_INCREF(((PyObject *)__pyx_v_self)); -- __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); -- __Pyx_GOTREF(__pyx_v_info->obj); -- __Pyx_DECREF(__pyx_v_info->obj); -- __pyx_v_info->obj = ((PyObject *)__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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__5, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]) = '^'; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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'; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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): -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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(); --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735 - * ctypedef npy_cdouble complex_t - * - * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< -@@ -4174,9 +3391,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":822 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":736 - * - * cdef inline object PyArray_MultiIterNew1(a): - * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< -@@ -4184,13 +3404,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - * 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, 822, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735 - * ctypedef npy_cdouble complex_t - * - * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< -@@ -4209,7 +3429,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -+/* "../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): # <<<<<<<<<<<<<< -@@ -4221,9 +3441,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":825 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":739 - * - * cdef inline object PyArray_MultiIterNew2(a, b): - * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< -@@ -4231,13 +3454,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - * 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, 825, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -4256,7 +3479,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741 - * return PyArray_MultiIterNew(2, a, b) - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< -@@ -4268,9 +3491,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":828 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":742 - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): - * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< -@@ -4278,13 +3504,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - * 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, 828, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741 - * return PyArray_MultiIterNew(2, a, b) - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< -@@ -4303,7 +3529,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -+/* "../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): # <<<<<<<<<<<<<< -@@ -4315,9 +3541,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":831 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -4325,13 +3554,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - * 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, 831, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -4350,7 +3579,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 - * return PyArray_MultiIterNew(4, a, b, c, d) - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -@@ -4362,9 +3591,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":834 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -4372,13 +3604,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - * 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, 834, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 - * return PyArray_MultiIterNew(4, a, b, c, d) - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -@@ -4397,7 +3629,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -@@ -4411,7 +3643,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - int __pyx_t_1; - __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -@@ -4421,7 +3653,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); - if (__pyx_t_1) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":838 -+ /* "../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 # <<<<<<<<<<<<<< -@@ -4433,7 +3665,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -@@ -4442,12 +3674,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":840 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":754 - * 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); -@@ -4456,7 +3688,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - goto __pyx_L0; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -@@ -4471,765 +3703,19 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":929 -+ * int _import_umath() except -1 - * -- * 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 void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< -+ * Py_INCREF(base) # important to do this before stealing the reference below! -+ * PyArray_SetBaseObject(arr, base) - */ - --static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) { -- PyArray_Descr *__pyx_v_child = 0; -- int __pyx_v_endian_detector; -- int __pyx_v_little_endian; -- PyObject *__pyx_v_fields = 0; -- PyObject *__pyx_v_childname = NULL; -- PyObject *__pyx_v_new_offset = NULL; -- PyObject *__pyx_v_t = NULL; -- char *__pyx_r; -- __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- Py_ssize_t __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- PyObject *__pyx_t_4 = NULL; -- int __pyx_t_5; -- int __pyx_t_6; -- int __pyx_t_7; -- long __pyx_t_8; -- char *__pyx_t_9; -- __Pyx_RefNannySetupContext("_util_dtypestring", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":848 -- * 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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- if (unlikely(__pyx_v_descr->names == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -- __PYX_ERR(2, 851, __pyx_L1_error) -- } -- __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; -- for (;;) { -- if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; -- #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, 851, __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, 851, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- #endif -- __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":852 -- * -- * for childname in descr.names: -- * fields = descr.fields[childname] # <<<<<<<<<<<<<< -- * child, new_offset = fields -- * -- */ -- if (unlikely(__pyx_v_descr->fields == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -- __PYX_ERR(2, 852, __pyx_L1_error) -- } -- __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":853 -- * 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, 853, __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, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- #endif -- } else { -- __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 853, __pyx_L1_error) -- } -- if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3)); -- __pyx_t_3 = 0; -- __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 856, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0); -- if (!__pyx_t_7) { -- goto __pyx_L8_next_or; -- } else { -- } -- __pyx_t_7 = (__pyx_v_little_endian != 0); -- if (!__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_L8_next_or:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":859 -- * -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< -- * raise ValueError(u"Non-native byte order not supported") -- * # One could encode it in the format string and have Cython -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0); -- if (__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0); -- __pyx_t_6 = __pyx_t_7; -- __pyx_L7_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":860 -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * # One could encode it in the format string and have Cython -- * # complain instead, BUT: < and > in format strings also imply -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 860, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 860, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":870 -- * -- * # Output padding bytes -- * while offset[0] < new_offset: # <<<<<<<<<<<<<< -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- */ -- while (1) { -- __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (!__pyx_t_6) break; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":871 -- * # Output padding bytes -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< -- * f += 1 -- * offset[0] += 1 -- */ -- (__pyx_v_f[0]) = 0x78; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":872 -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte -- * f += 1 # <<<<<<<<<<<<<< -- * offset[0] += 1 -- * -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":873 -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- * offset[0] += 1 # <<<<<<<<<<<<<< -- * -- * offset[0] += child.itemsize -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":875 -- * offset[0] += 1 -- * -- * offset[0] += child.itemsize # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(child): -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); -- if (__pyx_t_6) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":878 -- * -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num # <<<<<<<<<<<<<< -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") -- */ -- __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 878, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 880, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":883 -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 98; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":884 -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":885 -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x68; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":886 -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 72; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":887 -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x69; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":888 -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 73; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":889 -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x6C; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":890 -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 76; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":891 -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x71; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":892 -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 81; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":893 -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":894 -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x64; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":895 -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x67; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":896 -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x66; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":897 -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x64; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":898 -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x67; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":899 -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (likely(__pyx_t_6)) { -- (__pyx_v_f[0]) = 79; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":901 -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< -- * f += 1 -- * else: -- */ -- /*else*/ { -- __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 901, __pyx_L1_error) -- } -- __pyx_L15:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":902 -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- * f += 1 # <<<<<<<<<<<<<< -- * else: -- * # Cython ignores struct boundary information ("T{...}"), -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- goto __pyx_L13; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":906 -- * # Cython ignores struct boundary information ("T{...}"), -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< -- * return f -- * -- */ -- /*else*/ { -- __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(2, 906, __pyx_L1_error) -- __pyx_v_f = __pyx_t_9; -- } -- __pyx_L13:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- } -- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":907 -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) -- * return f # <<<<<<<<<<<<<< -- * -- * -- */ -- __pyx_r = __pyx_v_f; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -- * -- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< -- * # Recursive utility function used in __getbuffer__ to get format -- * # string. The new location in the format string is returned. -- */ -- -- /* function exit code */ -- __pyx_L1_error:; -- __Pyx_XDECREF(__pyx_t_1); -- __Pyx_XDECREF(__pyx_t_3); -- __Pyx_XDECREF(__pyx_t_4); -- __Pyx_AddTraceback("numpy._util_dtypestring", __pyx_clineno, __pyx_lineno, __pyx_filename); -- __pyx_r = NULL; -- __pyx_L0:; -- __Pyx_XDECREF((PyObject *)__pyx_v_child); -- __Pyx_XDECREF(__pyx_v_fields); -- __Pyx_XDECREF(__pyx_v_childname); -- __Pyx_XDECREF(__pyx_v_new_offset); -- __Pyx_XDECREF(__pyx_v_t); -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -- * int _import_umath() except -1 -- * -- * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< -- * Py_INCREF(base) # important to do this before stealing the reference below! -- * PyArray_SetBaseObject(arr, base) -- */ -- --static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { -+static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1023 -+ /* "../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! # <<<<<<<<<<<<<< -@@ -5238,7 +3724,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - Py_INCREF(__pyx_v_base); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1024 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -5247,7 +3733,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -5259,7 +3745,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyFinishContext(); - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+/* "../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): # <<<<<<<<<<<<<< -@@ -5274,7 +3760,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - int __pyx_t_1; - __Pyx_RefNannySetupContext("get_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1027 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -5283,7 +3769,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - __pyx_v_base = PyArray_BASE(__pyx_v_arr); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -5293,7 +3779,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) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1029 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":936 - * base = PyArray_BASE(arr) - * if base is NULL: - * return None # <<<<<<<<<<<<<< -@@ -5304,7 +3790,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -5313,7 +3799,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1030 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":937 - * if base is NULL: - * return None - * return base # <<<<<<<<<<<<<< -@@ -5325,7 +3811,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = ((PyObject *)__pyx_v_base); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -5340,12 +3826,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { -@@ -5359,13 +3845,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_array", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - { -@@ -5377,20 +3866,20 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1036 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":943 - * cdef inline int import_array() except -1: - * try: -- * _import_array() # <<<<<<<<<<<<<< -+ * __pyx_import_array() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") - */ -- __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1036, __pyx_L3_error) -+ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 943, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - } -@@ -5400,9 +3889,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1037 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":944 - * try: -- * _import_array() -+ * __pyx_import_array() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.multiarray failed to import") - * -@@ -5410,32 +3899,32 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1037, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 944, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 945, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __PYX_ERR(2, 945, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - __Pyx_XGIVEREF(__pyx_t_1); -@@ -5446,12 +3935,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - /* function exit code */ -@@ -5469,7 +3958,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -5488,9 +3977,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_umath", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5506,16 +3998,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1042 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":949 - * cdef inline int import_umath() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1042, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 949, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5529,7 +4021,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1043 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":950 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< -@@ -5539,28 +4031,28 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1043, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 950, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 951, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __PYX_ERR(2, 951, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5575,7 +4067,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -5598,7 +4090,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -5617,9 +4109,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_ufunc", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5635,16 +4130,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1048 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":955 - * cdef inline int import_ufunc() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1048, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 955, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5658,35 +4153,38 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1049 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":956 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.umath failed to import") -+ * - */ - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1049, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 956, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1050 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":957 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< -+ * -+ * cdef extern from *: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 957, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __PYX_ERR(2, 957, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5701,7 +4199,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -5723,6 +4221,180 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_RefNannyFinishContext(); - return __pyx_r; - } -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_timedelta64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":979 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_datetime64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":994 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { -+ npy_datetime __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1004 -+ * also needed. That can be found using `get_datetime64_unit`. -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { -+ npy_timedelta __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1011 -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { -+ NPY_DATETIMEUNIT __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1018 -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ * """ -+ * return (obj).obmeta.base # <<<<<<<<<<<<<< -+ */ -+ __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} - static struct __pyx_vtabstruct_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase __pyx_vtable_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase; - - static PyObject *__pyx_tp_new_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase(PyTypeObject *t, PyObject *a, PyObject *k) { -@@ -5780,7 +4452,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPyth - sizeof(struct __pyx_obj_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPythonBase, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -5833,6 +4510,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_21CyDualPivotPythonBase_CyDualPivotPyth - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyMethodDef __pyx_methods[] = { -@@ -5882,26 +4565,18 @@ static struct PyModuleDef __pyx_moduledef = { - - static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_CyDualPivotPythonBase, __pyx_k_CyDualPivotPythonBase, sizeof(__pyx_k_CyDualPivotPythonBase), 0, 0, 1, 1}, -- {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, -- {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, - {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, -- {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, -- {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, -- {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, - {&__pyx_n_s_dualPivotMethodObject, __pyx_k_dualPivotMethodObject, sizeof(__pyx_k_dualPivotMethodObject), 0, 0, 1, 1}, - {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, - {&__pyx_n_s_init, __pyx_k_init, sizeof(__pyx_k_init), 0, 0, 1, 1}, - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, -- {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, -- {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, - {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0}, - {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0}, - {&__pyx_n_s_pivotRow, __pyx_k_pivotRow, sizeof(__pyx_k_pivotRow), 0, 0, 1, 1}, - {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, -- {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, -@@ -5909,17 +4584,13 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, - {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, -- {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, - {&__pyx_n_s_updatePrimalSolution, __pyx_k_updatePrimalSolution, sizeof(__pyx_k_updatePrimalSolution), 0, 0, 1, 1}, - {&__pyx_n_s_updateWeights, __pyx_k_updateWeights, sizeof(__pyx_k_updateWeights), 0, 0, 1, 1}, - {0, 0, 0, 0, 0, 0, 0} - }; - static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 2, __pyx_L1_error) -- __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(2, 272, __pyx_L1_error) -- __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(2, 285, __pyx_L1_error) -- __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(2, 856, __pyx_L1_error) -- __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 1038, __pyx_L1_error) -+ __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 945, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -@@ -5948,82 +4619,27 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_GOTREF(__pyx_tuple__2); - __Pyx_GIVEREF(__pyx_tuple__2); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":272 -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(2, 272, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__3); -- __Pyx_GIVEREF(__pyx_tuple__3); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":276 -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 276, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__4); -- __Pyx_GIVEREF(__pyx_tuple__4); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":306 -- * if ((descr.byteorder == c'>' and little_endian) or -- * (descr.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * if t == NPY_BYTE: f = "b" -- * elif t == NPY_UBYTE: f = "B" -- */ -- __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(2, 306, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__5); -- __Pyx_GIVEREF(__pyx_tuple__5); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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_tuple__6 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__6); -- __Pyx_GIVEREF(__pyx_tuple__6); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__7); -- __Pyx_GIVEREF(__pyx_tuple__7); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(2, 1038, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__8); -- __Pyx_GIVEREF(__pyx_tuple__8); -+ __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(2, 945, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__3); -+ __Pyx_GIVEREF(__pyx_tuple__3); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(2, 1044, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__9); -- __Pyx_GIVEREF(__pyx_tuple__9); -+ __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 951, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__4); -+ __Pyx_GIVEREF(__pyx_tuple__4); - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; -@@ -6073,6 +4689,9 @@ static int __Pyx_modinit_function_export_code(void) { - static int __Pyx_modinit_type_init_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyClpDualRowPivotBase"); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error) -@@ -6110,6 +4729,9 @@ static int __Pyx_modinit_type_init_code(void) { - static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error) -@@ -6133,18 +4755,38 @@ static int __Pyx_modinit_type_import_code(void) { - __pyx_ptype_7cpython_7complex_complex = __Pyx_ImportType(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "complex", sizeof(PyComplexObject), __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_7cpython_7complex_complex) __PYX_ERR(5, 15, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 206, __pyx_L1_error) -+ __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 206, __pyx_L1_error) -- __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 229, __pyx_L1_error) -- __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 233, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 200, __pyx_L1_error) -+ __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 223, __pyx_L1_error) -+ __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 227, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 242, __pyx_L1_error) -- __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 918, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 239, __pyx_L1_error) -+ __pyx_ptype_5numpy_generic = __Pyx_ImportType(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 771, __pyx_L1_error) -+ __pyx_ptype_5numpy_number = __Pyx_ImportType(__pyx_t_1, "numpy", "number", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 773, __pyx_L1_error) -+ __pyx_ptype_5numpy_integer = __Pyx_ImportType(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 775, __pyx_L1_error) -+ __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 777, __pyx_L1_error) -+ __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 779, __pyx_L1_error) -+ __pyx_ptype_5numpy_inexact = __Pyx_ImportType(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 781, __pyx_L1_error) -+ __pyx_ptype_5numpy_floating = __Pyx_ImportType(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 783, __pyx_L1_error) -+ __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 785, __pyx_L1_error) -+ __pyx_ptype_5numpy_flexible = __Pyx_ImportType(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 787, __pyx_L1_error) -+ __pyx_ptype_5numpy_character = __Pyx_ImportType(__pyx_t_1, "numpy", "character", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 789, __pyx_L1_error) -+ __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 827, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyCoinIndexedVector"); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 22, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); -@@ -6253,14 +4895,18 @@ static int __Pyx_modinit_variable_import_code(void) { - static int __Pyx_modinit_function_import_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); - /*--- Function import code ---*/ - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyClpDualRowPivotBase"); if (!__pyx_t_1) __PYX_ERR(1, 1, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_ImportFunction(__pyx_t_1, "RunPivotRow", (void (**)(void))&__pyx_f_4cylp_2cy_21CyClpDualRowPivotBase_RunPivotRow, "int (void *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error) - if (__Pyx_ImportFunction(__pyx_t_1, "RunDualPivotClone", (void (**)(void))&__pyx_f_4cylp_2cy_21CyClpDualRowPivotBase_RunDualPivotClone, "ClpDualRowPivot *(void *, int)") < 0) __PYX_ERR(1, 1, __pyx_L1_error) - if (__Pyx_ImportFunction(__pyx_t_1, "RunUpdateWeights", (void (**)(void))&__pyx_f_4cylp_2cy_21CyClpDualRowPivotBase_RunUpdateWeights, "double (void *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error) - if (__Pyx_ImportFunction(__pyx_t_1, "RunUpdatePrimalSolution", (void (**)(void))&__pyx_f_4cylp_2cy_21CyClpDualRowPivotBase_RunUpdatePrimalSolution, "void (void *, ICoinIndexedVector *, double, double *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error) -- Py_DECREF(__pyx_t_1); __pyx_t_1 = 0; -+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; -@@ -6270,17 +4916,19 @@ static int __Pyx_modinit_function_import_code(void) { - } - - --#if PY_MAJOR_VERSION < 3 --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC void --#else -+#ifndef CYTHON_NO_PYINIT_EXPORT - #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#elif PY_MAJOR_VERSION < 3 -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" void -+#else -+#define __Pyx_PyMODINIT_FUNC void - #endif - #else --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC PyObject * -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * - #else --#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#define __Pyx_PyMODINIT_FUNC PyObject * - #endif - #endif - -@@ -6362,6 +5010,9 @@ static CYTHON_SMALL_CODE int __pyx_pymod_exec_CyDualPivotPythonBase(PyObject *__ - #endif - { - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { -@@ -6409,11 +5060,9 @@ if (!__Pyx_RefNanny) { - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ -- #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS -- #ifdef WITH_THREAD /* Python build with threading support? */ -+ #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - PyEval_InitThreads(); - #endif -- #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; -@@ -6450,17 +5099,17 @@ if (!__Pyx_RefNanny) { - } - #endif - /*--- Builtin init code ---*/ -- if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Constants init code ---*/ -- if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(); - (void)__Pyx_modinit_variable_export_code(); - (void)__Pyx_modinit_function_export_code(); -- if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; -- if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; -+ if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) -+ if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) - (void)__Pyx_modinit_variable_import_code(); -- if (unlikely(__Pyx_modinit_function_import_code() != 0)) goto __pyx_L1_error; -+ if (unlikely(__Pyx_modinit_function_import_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Execution code ---*/ - #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) - if (__Pyx_patch_abc() < 0) __PYX_ERR(1, 1, __pyx_L1_error) -@@ -6476,12 +5125,12 @@ if (!__Pyx_RefNanny) { - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -- * raise ImportError("numpy.core.umath failed to import") -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -- * try: -- * _import_umath() -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ - - /*--- Wrapped vars code ---*/ -@@ -6590,7 +5239,7 @@ static int __Pyx_ParseOptionalKeywords( - } - name = first_kw_arg; - #if PY_MAJOR_VERSION < 3 -- if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { -+ if (likely(PyString_Check(key))) { - while (*name) { - if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) - && _PyString_Eq(**name, key)) { -@@ -6617,7 +5266,7 @@ static int __Pyx_ParseOptionalKeywords( - while (*name) { - int cmp = (**name == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 -- (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : -+ (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**name, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; -@@ -6633,7 +5282,7 @@ static int __Pyx_ParseOptionalKeywords( - while (argname != first_kw_arg) { - int cmp = (**argname == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 -- (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : -+ (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**argname, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; -@@ -6842,7 +5491,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, - #if CYTHON_COMPILING_IN_CPYTHON - static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; -- ternaryfunc call = func->ob_type->tp_call; -+ ternaryfunc call = Py_TYPE(func)->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -@@ -6929,7 +5578,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec - if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { - return __Pyx_PyObject_CallMethO(func, arg); - #if CYTHON_FAST_PYCCALL -- } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { -+ } else if (__Pyx_PyFastCFunction_Check(func)) { - return __Pyx_PyCFunction_FastCall(func, &arg, 1); - #endif - } -@@ -7102,6 +5751,7 @@ static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) { - } - static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) { - switch (ch) { -+ case '?': return "'bool'"; - case 'c': return "'char'"; - case 'b': return "'signed char'"; - case 'B': return "'unsigned char'"; -@@ -7144,7 +5794,7 @@ static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) { - } - static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) { - switch (ch) { -- case 'c': case 'b': case 'B': case 's': case 'p': return 1; -+ case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; - case 'h': case 'H': return sizeof(short); - case 'i': case 'I': return sizeof(int); - case 'l': case 'L': return sizeof(long); -@@ -7228,7 +5878,7 @@ static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) { - case 'b': case 'h': case 'i': - case 'l': case 'q': case 's': case 'p': - return 'I'; -- case 'B': case 'H': case 'I': case 'L': case 'Q': -+ case '?': case 'B': case 'H': case 'I': case 'L': case 'Q': - return 'U'; - case 'f': case 'd': case 'g': - return (is_complex ? 'C' : 'R'); -@@ -7372,9 +6022,7 @@ static PyObject * - __pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp) - { - const char *ts = *tsp; -- int i = 0, number; -- int ndim = ctx->head->field->type->ndim; --; -+ int i = 0, number, ndim; - ++ts; - if (ctx->new_count != 1) { - PyErr_SetString(PyExc_ValueError, -@@ -7382,6 +6030,7 @@ __pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp) - return NULL; - } - if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; -+ ndim = ctx->head->field->type->ndim; - while (*ts && *ts != ')') { - switch (*ts) { - case ' ': case '\f': case '\r': case '\n': case '\t': case '\v': continue; -@@ -7507,12 +6156,12 @@ static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const cha - return NULL; - } - CYTHON_FALLTHROUGH; -- case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I': -+ case '?': case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I': - case 'l': case 'L': case 'q': case 'Q': - case 'f': case 'd': case 'g': - case 'O': case 'p': -- if (ctx->enc_type == *ts && got_Z == ctx->is_complex && -- ctx->enc_packmode == ctx->new_packmode) { -+ if ((ctx->enc_type == *ts) && (got_Z == ctx->is_complex) && -+ (ctx->enc_packmode == ctx->new_packmode) && (!ctx->is_valid_array)) { - ctx->enc_count += ctx->new_count; - ctx->new_count = 1; - got_Z = 0; -@@ -7760,61 +6409,6 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject - } - #endif - --/* DictGetItem */ -- #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY --static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { -- PyObject *value; -- value = PyDict_GetItemWithError(d, key); -- if (unlikely(!value)) { -- if (!PyErr_Occurred()) { -- if (unlikely(PyTuple_Check(key))) { -- PyObject* args = PyTuple_Pack(1, key); -- if (likely(args)) { -- PyErr_SetObject(PyExc_KeyError, args); -- Py_DECREF(args); -- } -- } else { -- PyErr_SetObject(PyExc_KeyError, key); -- } -- } -- return NULL; -- } -- Py_INCREF(value); -- return value; --} --#endif -- --/* RaiseTooManyValuesToUnpack */ -- static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { -- PyErr_Format(PyExc_ValueError, -- "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); --} -- --/* RaiseNeedMoreValuesToUnpack */ -- static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { -- PyErr_Format(PyExc_ValueError, -- "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", -- index, (index == 1) ? "" : "s"); --} -- --/* RaiseNoneIterError */ -- static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); --} -- --/* ExtTypeTest */ -- static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { -- if (unlikely(!type)) { -- PyErr_SetString(PyExc_SystemError, "Missing type object"); -- return 0; -- } -- if (likely(__Pyx_TypeCheck(obj, type))) -- return 1; -- PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", -- Py_TYPE(obj)->tp_name, type->tp_name); -- return 0; --} -- - /* GetTopmostException */ - #if CYTHON_USE_EXC_INFO_STACK - static _PyErr_StackItem * -@@ -8153,6 +6747,28 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam - return -1; - } - -+/* PyObjectGetAttrStrNoError */ -+ static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { -+ __Pyx_PyThreadState_declare -+ __Pyx_PyThreadState_assign -+ if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) -+ __Pyx_PyErr_Clear(); -+} -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { -+ PyObject *result; -+#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 -+ PyTypeObject* tp = Py_TYPE(obj); -+ if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { -+ return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); -+ } -+#endif -+ result = __Pyx_PyObject_GetAttrStr(obj, attr_name); -+ if (unlikely(!result)) { -+ __Pyx_PyObject_GetAttrStr_ClearAttributeError(); -+ } -+ return result; -+} -+ - /* SetupReduce */ - static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { - int ret; -@@ -8180,43 +6796,51 @@ static int __Pyx_setup_reduce(PyObject* type_obj) { - PyObject *setstate = NULL; - PyObject *setstate_cython = NULL; - #if CYTHON_USE_PYTYPE_LOOKUP -- if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #else -- if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #endif - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #else -- object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #endif -- reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; -+ reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; - if (reduce_ex == object_reduce_ex) { - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #else -- object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #endif -- reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; -+ reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; - if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { -- reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; -+ reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); -+ if (likely(reduce_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (reduce == object_reduce || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); - if (!setstate) PyErr_Clear(); - if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { -- setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; -+ setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); -+ if (likely(setstate_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (!setstate || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - } - PyType_Modified((PyTypeObject*)type_obj); - } - } -- goto GOOD; --BAD: -+ goto __PYX_GOOD; -+__PYX_BAD: - if (!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); - ret = -1; --GOOD: -+__PYX_GOOD: - #if !CYTHON_USE_PYTYPE_LOOKUP - Py_XDECREF(object_reduce); - Py_XDECREF(object_reduce_ex); -@@ -8257,7 +6881,7 @@ static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UIN - - /* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK --static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { -+static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) { - PyObject *use_cline; - PyObject *ptype, *pvalue, *ptraceback; - #if CYTHON_COMPILING_IN_CPYTHON -@@ -8287,7 +6911,7 @@ static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { - } - if (!use_cline) { - c_line = 0; -- PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); -+ (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; -@@ -8361,7 +6985,7 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - if (__pyx_code_cache.count == __pyx_code_cache.max_count) { - int new_max = __pyx_code_cache.max_count + 64; - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( -- __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); -+ __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); - if (unlikely(!entries)) { - return; - } -@@ -8384,30 +7008,31 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { -- PyCodeObject *py_code = 0; -- PyObject *py_srcfile = 0; -- PyObject *py_funcname = 0; -+ PyCodeObject *py_code = NULL; -+ PyObject *py_funcname = NULL; - #if PY_MAJOR_VERSION < 3 -+ PyObject *py_srcfile = NULL; - py_srcfile = PyString_FromString(filename); -- #else -- py_srcfile = PyUnicode_FromString(filename); -- #endif - if (!py_srcfile) goto bad; -+ #endif - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; -+ funcname = PyUnicode_AsUTF8(py_funcname); -+ if (!funcname) goto bad; - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); -- #else -- py_funcname = PyUnicode_FromString(funcname); -+ if (!py_funcname) goto bad; - #endif - } -- if (!py_funcname) goto bad; -+ #if PY_MAJOR_VERSION < 3 - py_code = __Pyx_PyCode_New( - 0, - 0, -@@ -8426,11 +7051,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); -- Py_DECREF(py_funcname); -+ #else -+ py_code = PyCode_NewEmpty(filename, funcname, py_line); -+ #endif -+ Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline - return py_code; - bad: -- Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); -+ #if PY_MAJOR_VERSION < 3 -+ Py_XDECREF(py_srcfile); -+ #endif - return NULL; - } - static void __Pyx_AddTraceback(const char *funcname, int c_line, -@@ -8465,7 +7095,6 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - #if PY_MAJOR_VERSION < 3 - static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) { - if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags); -- if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) return __pyx_pw_5numpy_7ndarray_1__getbuffer__(obj, view, flags); - PyErr_Format(PyExc_TypeError, "'%.200s' does not have the buffer interface", Py_TYPE(obj)->tp_name); - return -1; - } -@@ -8477,7 +7106,6 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - return; - } - if ((0)) {} -- else if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) __pyx_pw_5numpy_7ndarray_3__releasebuffer__(obj, view); - view->obj = NULL; - Py_DECREF(obj); - } -@@ -8601,7 +7229,6 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_float(a, a); - return __Pyx_c_prod_float(a, a); - case 3: - z = __Pyx_c_prod_float(a, a); -@@ -8756,7 +7383,6 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_double(a, a); - return __Pyx_c_prod_double(a, a); - case 3: - z = __Pyx_c_prod_double(a, a); -@@ -8795,24 +7421,31 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - #endif - - /* CIntToPy */ -- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { -- if (sizeof(int) < sizeof(long)) { -+ if (sizeof(long) < sizeof(long)) { - return PyInt_FromLong((long) value); -- } else if (sizeof(int) <= sizeof(unsigned long)) { -+ } else if (sizeof(long) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); - #ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -+ } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); - #endif - } - } else { -- if (sizeof(int) <= sizeof(long)) { -+ if (sizeof(long) <= sizeof(long)) { - return PyInt_FromLong((long) value); - #ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -+ } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); - #endif - } -@@ -8820,7 +7453,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(int), -+ return _PyLong_FromByteArray(bytes, sizeof(long), - little, !is_unsigned); - } - } -@@ -8847,51 +7480,27 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - return (target_type) value;\ - } - --/* CIntToPy */ -- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { -- const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(enum NPY_TYPES) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+/* CIntFromPy */ -+ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" - #endif -- } -- } else { -- if (sizeof(enum NPY_TYPES) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop - #endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), -- little, !is_unsigned); -- } --} -- --/* CIntFromPy */ -- static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -- if (sizeof(int) < sizeof(long)) { -- __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) -+ if (sizeof(long) < sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } -- return (int) val; -+ return (long) val; - } - } else - #endif -@@ -8900,32 +7509,32 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { -- case 0: return (int) 0; -- case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) -+ case 0: return (long) 0; -+ case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) - case 2: -- if (8 * sizeof(int) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { -- return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { -+ return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - case 3: -- if (8 * sizeof(int) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { -- return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { -+ return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - case 4: -- if (8 * sizeof(int) > 3 * PyLong_SHIFT) { -- if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { -- return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -+ if (8 * sizeof(long) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { -+ return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; -@@ -8939,86 +7548,86 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) -- return (int) -1; -+ return (long) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } - #endif -- if (sizeof(int) <= sizeof(unsigned long)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) -+ if (sizeof(long) <= sizeof(unsigned long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) - #ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -+ } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) - #endif - } - } else { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { -- case 0: return (int) 0; -- case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) -- case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) -+ case 0: return (long) 0; -+ case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) -+ case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) - case -2: -- if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -- return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -+ return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 2: -- if (8 * sizeof(int) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -- return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -+ return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case -3: -- if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -- return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -+ return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 3: -- if (8 * sizeof(int) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -- return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -+ return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case -4: -- if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -- return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { -+ return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 4: -- if (8 * sizeof(int) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -- return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { -+ return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - } - #endif -- if (sizeof(int) <= sizeof(long)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) -+ if (sizeof(long) <= sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) - #ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) -+ } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) - #endif - } - } -@@ -9027,7 +7636,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - PyErr_SetString(PyExc_RuntimeError, - "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); - #else -- int val; -+ long val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); - #if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { -@@ -9047,71 +7656,47 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - return val; - } - #endif -- return (int) -1; -+ return (long) -1; - } - } else { -- int val; -+ long val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); -- if (!tmp) return (int) -1; -- val = __Pyx_PyInt_As_int(tmp); -+ if (!tmp) return (long) -1; -+ val = __Pyx_PyInt_As_long(tmp); - Py_DECREF(tmp); - return val; - } - raise_overflow: - PyErr_SetString(PyExc_OverflowError, -- "value too large to convert to int"); -- return (int) -1; -+ "value too large to convert to long"); -+ return (long) -1; - raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, -- "can't convert negative value to int"); -- return (int) -1; -+ "can't convert negative value to long"); -+ return (long) -1; - } - --/* CIntToPy */ -- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(long) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(long) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+/* CIntFromPy */ -+ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" - #endif -- } -- } else { -- if (sizeof(long) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop - #endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(long), -- little, !is_unsigned); -- } --} -- --/* CIntFromPy */ -- static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -- if (sizeof(long) < sizeof(long)) { -- __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) -+ if (sizeof(int) < sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } -- return (long) val; -+ return (int) val; - } - } else - #endif -@@ -9120,32 +7705,32 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { -- case 0: return (long) 0; -- case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) -+ case 0: return (int) 0; -+ case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) - case 2: -- if (8 * sizeof(long) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { -- return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { -+ return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - case 3: -- if (8 * sizeof(long) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { -- return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { -+ return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - case 4: -- if (8 * sizeof(long) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { -- return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { -+ return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; -@@ -9159,86 +7744,86 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) -- return (long) -1; -+ return (int) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } - #endif -- if (sizeof(long) <= sizeof(unsigned long)) { -- __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) -+ if (sizeof(int) <= sizeof(unsigned long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) - #ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -+ } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) - #endif - } - } else { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { -- case 0: return (long) 0; -- case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) -- case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) -+ case 0: return (int) 0; -+ case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) -+ case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) - case -2: -- if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -- return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -+ return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 2: -- if (8 * sizeof(long) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -- return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -+ return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case -3: -- if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -- return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -+ return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 3: -- if (8 * sizeof(long) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -- return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -+ return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case -4: -- if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { -- return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -+ return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 4: -- if (8 * sizeof(long) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { -- return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -+ return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - } - #endif -- if (sizeof(long) <= sizeof(long)) { -- __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) -+ if (sizeof(int) <= sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) - #ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) -+ } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) - #endif - } - } -@@ -9247,7 +7832,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - PyErr_SetString(PyExc_RuntimeError, - "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); - #else -- long val; -+ int val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); - #if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { -@@ -9267,24 +7852,24 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - return val; - } - #endif -- return (long) -1; -+ return (int) -1; - } - } else { -- long val; -+ int val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); -- if (!tmp) return (long) -1; -- val = __Pyx_PyInt_As_long(tmp); -+ if (!tmp) return (int) -1; -+ val = __Pyx_PyInt_As_int(tmp); - Py_DECREF(tmp); - return val; - } - raise_overflow: - PyErr_SetString(PyExc_OverflowError, -- "value too large to convert to long"); -- return (long) -1; -+ "value too large to convert to int"); -+ return (int) -1; - raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, -- "can't convert negative value to long"); -- return (long) -1; -+ "can't convert negative value to int"); -+ return (int) -1; - } - - /* FastTypeChecks */ -@@ -9705,6 +8290,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_DECREF(x); - return ival; - } -+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { -+ if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { -+ return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); -+#if PY_MAJOR_VERSION < 3 -+ } else if (likely(PyInt_CheckExact(o))) { -+ return PyInt_AS_LONG(o); -+#endif -+ } else { -+ Py_ssize_t ival; -+ PyObject *x; -+ x = PyNumber_Index(o); -+ if (!x) return -1; -+ ival = PyInt_AsLong(x); -+ Py_DECREF(x); -+ return ival; -+ } -+} - static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); - } -diff --git a/cylp/cy/CyOsiCuts.cpp b/cylp/cy/CyOsiCuts.cpp -index bbf629d..5b18903 100644 ---- a/cylp/cy/CyOsiCuts.cpp -+++ b/cylp/cy/CyOsiCuts.cpp -@@ -1,14 +1,16 @@ --/* Generated by Cython 0.29.12 */ -+/* 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_12" --#define CYTHON_HEX_VERSION 0x001D0CF0 -+#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) -@@ -449,7 +516,15 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) - #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) -+ #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 - #else - #define CYTHON_PEP393_ENABLED 0 - #define PyUnicode_1BYTE_KIND 1 -@@ -498,8 +573,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact -+#ifndef PyObject_Unicode - #define PyObject_Unicode PyObject_Str - #endif -+#endif - #if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) - #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) -@@ -510,6 +587,13 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #ifndef PySet_CheckExact - #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) - #endif -+#if PY_VERSION_HEX >= 0x030900A4 -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) -+#else -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) -+#endif - #if CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) - #else -@@ -543,13 +627,13 @@ 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) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) -+ #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) - #else - #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) - #endif -@@ -590,11 +674,10 @@ static CYTHON_INLINE float __PYX_NAN() { - #define __Pyx_truncl truncl - #endif - -- -+#define __PYX_MARK_ERR_POS(f_index, lineno) \ -+ { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } - #define __PYX_ERR(f_index, lineno, Ln_error) \ --{ \ -- __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ --} -+ { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } - - #ifndef __PYX_EXTERN_C - #ifdef __cplusplus -@@ -610,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 "IOsiCuts.hpp" - #ifdef _OPENMP - #include -@@ -708,6 +797,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 -@@ -842,7 +932,7 @@ static const char *__pyx_filename; - - - static const char *__pyx_f[] = { -- "cylp\\cy\\CyOsiCuts.pyx", -+ "cylp/cy/CyOsiCuts.pyx", - "stringsource", - "__init__.pxd", - "type.pxd", -@@ -884,7 +974,7 @@ typedef struct { - } __Pyx_BufFmt_Context; - - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":776 -+/* "../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 # <<<<<<<<<<<<<< -@@ -893,7 +983,7 @@ typedef struct { - */ - typedef npy_int8 __pyx_t_5numpy_int8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":777 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":691 - * - * ctypedef npy_int8 int8_t - * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< -@@ -902,7 +992,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; - */ - typedef npy_int16 __pyx_t_5numpy_int16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":778 -+/* "../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 # <<<<<<<<<<<<<< -@@ -911,7 +1001,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; - */ - typedef npy_int32 __pyx_t_5numpy_int32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":779 -+/* "../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 # <<<<<<<<<<<<<< -@@ -920,7 +1010,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; - */ - typedef npy_int64 __pyx_t_5numpy_int64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":783 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":697 - * #ctypedef npy_int128 int128_t - * - * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< -@@ -929,7 +1019,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; - */ - typedef npy_uint8 __pyx_t_5numpy_uint8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":784 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":698 - * - * ctypedef npy_uint8 uint8_t - * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< -@@ -938,7 +1028,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; - */ - typedef npy_uint16 __pyx_t_5numpy_uint16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":785 -+/* "../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 # <<<<<<<<<<<<<< -@@ -947,7 +1037,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; - */ - typedef npy_uint32 __pyx_t_5numpy_uint32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":786 -+/* "../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 # <<<<<<<<<<<<<< -@@ -956,7 +1046,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; - */ - typedef npy_uint64 __pyx_t_5numpy_uint64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":790 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":704 - * #ctypedef npy_uint128 uint128_t - * - * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< -@@ -965,7 +1055,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; - */ - typedef npy_float32 __pyx_t_5numpy_float32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":791 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":705 - * - * ctypedef npy_float32 float32_t - * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< -@@ -974,7 +1064,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; - */ - typedef npy_float64 __pyx_t_5numpy_float64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":800 -+/* "../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 # <<<<<<<<<<<<<< -@@ -983,7 +1073,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; - */ - typedef npy_long __pyx_t_5numpy_int_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":801 -+/* "../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 # <<<<<<<<<<<<<< -@@ -992,7 +1082,7 @@ typedef npy_long __pyx_t_5numpy_int_t; - */ - typedef npy_longlong __pyx_t_5numpy_long_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":802 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1001,7 +1091,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; - */ - typedef npy_longlong __pyx_t_5numpy_longlong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":804 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":718 - * ctypedef npy_longlong longlong_t - * - * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< -@@ -1010,7 +1100,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; - */ - typedef npy_ulong __pyx_t_5numpy_uint_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":805 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":719 - * - * ctypedef npy_ulong uint_t - * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< -@@ -1019,7 +1109,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":806 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1028,7 +1118,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":808 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":722 - * ctypedef npy_ulonglong ulonglong_t - * - * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< -@@ -1037,7 +1127,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - */ - typedef npy_intp __pyx_t_5numpy_intp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":809 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":723 - * - * ctypedef npy_intp intp_t - * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< -@@ -1046,7 +1136,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; - */ - typedef npy_uintp __pyx_t_5numpy_uintp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":811 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":725 - * ctypedef npy_uintp uintp_t - * - * ctypedef npy_double float_t # <<<<<<<<<<<<<< -@@ -1055,7 +1145,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; - */ - typedef npy_double __pyx_t_5numpy_float_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":812 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":726 - * - * ctypedef npy_double float_t - * ctypedef npy_double double_t # <<<<<<<<<<<<<< -@@ -1064,7 +1154,7 @@ typedef npy_double __pyx_t_5numpy_float_t; - */ - typedef npy_double __pyx_t_5numpy_double_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":813 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1100,7 +1190,7 @@ static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(do - /*--- Type declarations ---*/ - struct __pyx_obj_4cylp_2cy_9CyOsiCuts_CyOsiCuts; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":815 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":729 - * ctypedef npy_longdouble longdouble_t - * - * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< -@@ -1109,7 +1199,7 @@ struct __pyx_obj_4cylp_2cy_9CyOsiCuts_CyOsiCuts; - */ - typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":816 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":730 - * - * ctypedef npy_cfloat cfloat_t - * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< -@@ -1118,7 +1208,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - */ - typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":817 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1127,7 +1217,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - */ - typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":819 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":733 - * ctypedef npy_clongdouble clongdouble_t - * - * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< -@@ -1314,6 +1404,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()\ -@@ -1321,6 +1412,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 */ -@@ -1462,20 +1554,6 @@ static void __Pyx_RaiseBufferFallbackError(void); - /* RaiseException.proto */ - static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); - --/* 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 -- --/* RaiseNoneIterError.proto */ --static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void); -- - /* GetTopmostException.proto */ - #if CYTHON_USE_EXC_INFO_STACK - static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate); -@@ -1525,6 +1603,9 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam - /* SetVTable.proto */ - static int __Pyx_SetVtable(PyObject *dict, void *vtable); - -+/* PyObjectGetAttrStrNoError.proto */ -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); -+ - /* SetupReduce.proto */ - static int __Pyx_setup_reduce(PyObject* type_obj); - -@@ -1636,11 +1717,10 @@ static void __Pyx_CppExn2PyErr() { - } - #endif - --/* 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 -@@ -1741,14 +1821,17 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); - #endif - - /* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value); -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); - --/* CIntFromPy.proto */ --static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); -+/* CIntToPy.proto */ -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); - - /* CIntFromPy.proto */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); - -+/* CIntFromPy.proto */ -+static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); -+ - /* FastTypeChecks.proto */ - #if CYTHON_COMPILING_IN_CPYTHON - #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) -@@ -1796,8 +1879,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.CyOsiCuts' */ - static PyTypeObject *__pyx_ptype_4cylp_2cy_9CyOsiCuts_CyOsiCuts = 0; -@@ -1810,9 +1902,6 @@ int __pyx_module_is_main_cylp__cy__CyOsiCuts = 0; - /* Implementation of 'cylp.cy.CyOsiCuts' */ - static PyObject *__pyx_builtin_xrange; - static PyObject *__pyx_builtin_TypeError; --static PyObject *__pyx_builtin_ValueError; --static PyObject *__pyx_builtin_range; --static PyObject *__pyx_builtin_RuntimeError; - static PyObject *__pyx_builtin_ImportError; - static const char __pyx_k_x[] = "x"; - static const char __pyx_k_np[] = "np"; -@@ -1843,12 +1932,10 @@ static const char __pyx_k_TypeError[] = "TypeError"; - static const char __pyx_k_cyLpModel[] = "cyLpModel"; - static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; - static const char __pyx_k_variables[] = "variables"; --static const char __pyx_k_ValueError[] = "ValueError"; - static const char __pyx_k_csr_matrix[] = "csr_matrix"; - static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; - static const char __pyx_k_ImportError[] = "ImportError"; - static const char __pyx_k_addVariable[] = "addVariable"; --static const char __pyx_k_RuntimeError[] = "RuntimeError"; - static const char __pyx_k_getVarByName[] = "getVarByName"; - static const char __pyx_k_makeMatrices[] = "makeMatrices"; - static const char __pyx_k_scipy_sparse[] = "scipy.sparse"; -@@ -1856,24 +1943,13 @@ static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; - static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; - static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; - 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_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; - static PyObject *__pyx_n_s_CyLPModel; - static PyObject *__pyx_n_s_CyOsiCuts; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; - static PyObject *__pyx_n_s_ImportError; --static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; --static PyObject *__pyx_n_s_RuntimeError; - static PyObject *__pyx_n_s_TypeError; --static PyObject *__pyx_n_s_ValueError; - static PyObject *__pyx_n_s_addVariable; - static PyObject *__pyx_n_s_arange; - static PyObject *__pyx_n_s_cline_in_traceback; -@@ -1894,8 +1970,6 @@ static PyObject *__pyx_n_s_main; - static PyObject *__pyx_n_s_makeMatrices; - 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_kp_s_no_default___reduce___due_to_non; - static PyObject *__pyx_n_s_np; - static PyObject *__pyx_n_s_numpy; -@@ -1912,7 +1986,6 @@ static PyObject *__pyx_n_s_setstate; - static PyObject *__pyx_n_s_setstate_cython; - static PyObject *__pyx_n_s_shape; - static PyObject *__pyx_n_s_test; --static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; - static PyObject *__pyx_n_s_variables; - static PyObject *__pyx_n_s_x; - static PyObject *__pyx_n_s_xrange; -@@ -1925,19 +1998,12 @@ static PyObject *__pyx_pf_4cylp_2cy_9CyOsiCuts_9CyOsiCuts_4addColumnCut(struct _ - static PyObject *__pyx_pf_4cylp_2cy_9CyOsiCuts_9CyOsiCuts_6addRowCut(struct __pyx_obj_4cylp_2cy_9CyOsiCuts_CyOsiCuts *__pyx_v_self, PyObject *__pyx_v_cut, PyObject *__pyx_v_cyLpModel); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_9CyOsiCuts_9CyOsiCuts_8__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_9CyOsiCuts_CyOsiCuts *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_9CyOsiCuts_9CyOsiCuts_10__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_9CyOsiCuts_CyOsiCuts *__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_9CyOsiCuts_CyOsiCuts(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ - static PyObject *__pyx_slice_; - 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/CyOsiCuts.pyx":10 -@@ -1968,6 +2034,9 @@ static int __pyx_pf_4cylp_2cy_9CyOsiCuts_9CyOsiCuts___cinit__(struct __pyx_obj_4 - int __pyx_r; - __Pyx_RefNannyDeclarations - CppOsiCuts *__pyx_t_1; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__cinit__", 0); - - /* "cylp/cy/CyOsiCuts.pyx":11 -@@ -2125,6 +2194,9 @@ static PyObject *__pyx_pf_4cylp_2cy_9CyOsiCuts_9CyOsiCuts_15numberOfRowCuts___ge - 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("__get__", 0); - - /* "cylp/cy/CyOsiCuts.pyx":22 -@@ -2185,6 +2257,9 @@ static PyObject *__pyx_pf_4cylp_2cy_9CyOsiCuts_9CyOsiCuts_18numberOfColumnCuts__ - 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("__get__", 0); - - /* "cylp/cy/CyOsiCuts.pyx":26 -@@ -2245,6 +2320,9 @@ static PyObject *__pyx_pf_4cylp_2cy_9CyOsiCuts_9CyOsiCuts_12numberOfCuts___get__ - 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("__get__", 0); - - /* "cylp/cy/CyOsiCuts.pyx":30 -@@ -2294,6 +2372,9 @@ static char __pyx_doc_4cylp_2cy_9CyOsiCuts_9CyOsiCuts_4addColumnCut[] = "\n - static PyObject *__pyx_pw_4cylp_2cy_9CyOsiCuts_9CyOsiCuts_5addColumnCut(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_cut = 0; - PyObject *__pyx_v_cyLpModel = 0; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("addColumnCut (wrapper)", 0); -@@ -2386,6 +2467,9 @@ static PyObject *__pyx_pf_4cylp_2cy_9CyOsiCuts_9CyOsiCuts_4addColumnCut(struct _ - int __pyx_t_10; - PyObject *__pyx_t_11 = NULL; - PyObject *(*__pyx_t_12)(PyObject *); -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("addColumnCut", 0); - __pyx_pybuffer_vl_inds.pybuffer.buf = NULL; - __pyx_pybuffer_vl_inds.refcount = 0; -@@ -2909,6 +2993,9 @@ static char __pyx_doc_4cylp_2cy_9CyOsiCuts_9CyOsiCuts_6addRowCut[] = "\n - static PyObject *__pyx_pw_4cylp_2cy_9CyOsiCuts_9CyOsiCuts_7addRowCut(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_cut = 0; - PyObject *__pyx_v_cyLpModel = 0; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("addRowCut (wrapper)", 0); -@@ -3004,6 +3091,9 @@ static PyObject *__pyx_pf_4cylp_2cy_9CyOsiCuts_9CyOsiCuts_6addRowCut(struct __py - Py_ssize_t __pyx_t_19; - double __pyx_t_20; - double __pyx_t_21; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("addRowCut", 0); - __pyx_pybuffer_row_inds.pybuffer.buf = NULL; - __pyx_pybuffer_row_inds.refcount = 0; -@@ -3561,6 +3651,9 @@ static PyObject *__pyx_pf_4cylp_2cy_9CyOsiCuts_9CyOsiCuts_8__reduce_cython__(CYT - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -3615,6 +3708,9 @@ static PyObject *__pyx_pf_4cylp_2cy_9CyOsiCuts_9CyOsiCuts_10__setstate_cython__( - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -3645,863 +3741,7 @@ static PyObject *__pyx_pf_4cylp_2cy_9CyOsiCuts_9CyOsiCuts_10__setstate_cython__( - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":258 -- * # experimental exception made for __getbuffer__ and __releasebuffer__ -- * # -- the details of this may change. -- * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< -- * # This implementation of getbuffer is geared towards Cython -- * # requirements, and does not yet fulfill the PEP. -- */ -- --/* Python wrapper */ --static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ --static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { -- int __pyx_r; -- __Pyx_RefNannyDeclarations -- __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); -- __pyx_r = __pyx_pf_5numpy_7ndarray___getbuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); -- -- /* function exit code */ -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { -- int __pyx_v_i; -- int __pyx_v_ndim; -- int __pyx_v_endian_detector; -- int __pyx_v_little_endian; -- int __pyx_v_t; -- char *__pyx_v_f; -- PyArray_Descr *__pyx_v_descr = 0; -- int __pyx_v_offset; -- int __pyx_r; -- __Pyx_RefNannyDeclarations -- int __pyx_t_1; -- int __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- int __pyx_t_4; -- int __pyx_t_5; -- int __pyx_t_6; -- PyArray_Descr *__pyx_t_7; -- PyObject *__pyx_t_8 = NULL; -- char *__pyx_t_9; -- if (__pyx_v_info == NULL) { -- PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); -- return -1; -- } -- __Pyx_RefNannySetupContext("__getbuffer__", 0); -- __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); -- __Pyx_GIVEREF(__pyx_v_info->obj); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- * -- */ -- __pyx_v_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) # <<<<<<<<<<<<<< -- * -- * ndim = PyArray_NDIM(self) -- */ -- __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":268 -- * cdef bint little_endian = ((&endian_detector)[0] != 0) -- * -- * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- */ -- __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":271 -- * -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< -- * raise ValueError(u"ndarray is not C contiguous") -- * -- */ -- __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_C_CONTIGUOUS) != 0)) != 0); -- __pyx_t_1 = __pyx_t_2; -- __pyx_L4_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":272 -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":274 -- * raise ValueError(u"ndarray is not C contiguous") -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") -- */ -- __pyx_t_2 = (((__pyx_v_flags & PyBUF_F_CONTIGUOUS) == PyBUF_F_CONTIGUOUS) != 0); -- if (__pyx_t_2) { -- } else { -- __pyx_t_1 = __pyx_t_2; -- goto __pyx_L7_bool_binop_done; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":275 -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< -- * raise ValueError(u"ndarray is not Fortran contiguous") -- * -- */ -- __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_F_CONTIGUOUS) != 0)) != 0); -- __pyx_t_1 = __pyx_t_2; -- __pyx_L7_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":276 -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":278 -- * raise ValueError(u"ndarray is not Fortran contiguous") -- * -- * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< -- * info.ndim = ndim -- * if sizeof(npy_intp) != sizeof(Py_ssize_t): -- */ -- __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":279 -- * -- * info.buf = PyArray_DATA(self) -- * info.ndim = ndim # <<<<<<<<<<<<<< -- * if sizeof(npy_intp) != sizeof(Py_ssize_t): -- * # Allocate new buffer for strides and shape info. -- */ -- __pyx_v_info->ndim = __pyx_v_ndim; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)))); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- */ -- (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- /*else*/ { -- __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- */ -- __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(__pyx_v_self)); -- } -- __pyx_L9:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- * -- */ -- __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":293 -- * info.suboffsets = NULL -- * info.itemsize = PyArray_ITEMSIZE(self) -- * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< -- * -- * cdef int t -- */ -- __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":297 -- * cdef int t -- * cdef char* f = NULL -- * cdef dtype descr = PyArray_DESCR(self) # <<<<<<<<<<<<<< -- * cdef int offset -- * -- */ -- __pyx_t_7 = PyArray_DESCR(__pyx_v_self); -- __pyx_t_3 = ((PyObject *)__pyx_t_7); -- __Pyx_INCREF(__pyx_t_3); -- __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":300 -- * cdef int offset -- * -- * info.obj = self # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(descr): -- */ -- __Pyx_INCREF(((PyObject *)__pyx_v_self)); -- __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); -- __Pyx_GOTREF(__pyx_v_info->obj); -- __Pyx_DECREF(__pyx_v_info->obj); -- __pyx_v_info->obj = ((PyObject *)__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]) = '^'; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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'; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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): -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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(); --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735 - * ctypedef npy_cdouble complex_t - * - * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< -@@ -4513,9 +3753,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":822 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":736 - * - * cdef inline object PyArray_MultiIterNew1(a): - * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< -@@ -4523,13 +3766,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - * 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, 822, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735 - * ctypedef npy_cdouble complex_t - * - * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< -@@ -4548,7 +3791,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -+/* "../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): # <<<<<<<<<<<<<< -@@ -4560,9 +3803,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":825 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":739 - * - * cdef inline object PyArray_MultiIterNew2(a, b): - * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< -@@ -4570,13 +3816,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - * 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, 825, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -4595,7 +3841,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741 - * return PyArray_MultiIterNew(2, a, b) - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< -@@ -4607,9 +3853,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":828 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":742 - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): - * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< -@@ -4617,13 +3866,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - * 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, 828, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741 - * return PyArray_MultiIterNew(2, a, b) - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< -@@ -4642,7 +3891,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -+/* "../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): # <<<<<<<<<<<<<< -@@ -4654,9 +3903,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":831 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -4664,13 +3916,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - * 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, 831, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -4689,7 +3941,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 - * return PyArray_MultiIterNew(4, a, b, c, d) - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -@@ -4701,9 +3953,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":834 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -4711,13 +3966,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - * 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, 834, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 - * return PyArray_MultiIterNew(4, a, b, c, d) - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -@@ -4736,7 +3991,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -@@ -4750,7 +4005,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - int __pyx_t_1; - __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -@@ -4760,7 +4015,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); - if (__pyx_t_1) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":838 -+ /* "../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 # <<<<<<<<<<<<<< -@@ -4772,7 +4027,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -@@ -4781,12 +4036,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":840 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":754 - * 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); -@@ -4795,7 +4050,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - goto __pyx_L0; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -@@ -4810,754 +4065,8 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -- * -- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< -- * # Recursive utility function used in __getbuffer__ to get format -- * # string. The new location in the format string is returned. -- */ -- --static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) { -- PyArray_Descr *__pyx_v_child = 0; -- int __pyx_v_endian_detector; -- int __pyx_v_little_endian; -- PyObject *__pyx_v_fields = 0; -- PyObject *__pyx_v_childname = NULL; -- PyObject *__pyx_v_new_offset = NULL; -- PyObject *__pyx_v_t = NULL; -- char *__pyx_r; -- __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- Py_ssize_t __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- PyObject *__pyx_t_4 = NULL; -- int __pyx_t_5; -- int __pyx_t_6; -- int __pyx_t_7; -- long __pyx_t_8; -- char *__pyx_t_9; -- __Pyx_RefNannySetupContext("_util_dtypestring", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":848 -- * 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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- if (unlikely(__pyx_v_descr->names == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -- __PYX_ERR(2, 851, __pyx_L1_error) -- } -- __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; -- for (;;) { -- if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; -- #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, 851, __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, 851, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- #endif -- __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":852 -- * -- * for childname in descr.names: -- * fields = descr.fields[childname] # <<<<<<<<<<<<<< -- * child, new_offset = fields -- * -- */ -- if (unlikely(__pyx_v_descr->fields == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -- __PYX_ERR(2, 852, __pyx_L1_error) -- } -- __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":853 -- * 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, 853, __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, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- #endif -- } else { -- __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 853, __pyx_L1_error) -- } -- if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3)); -- __pyx_t_3 = 0; -- __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 856, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0); -- if (!__pyx_t_7) { -- goto __pyx_L8_next_or; -- } else { -- } -- __pyx_t_7 = (__pyx_v_little_endian != 0); -- if (!__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_L8_next_or:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":859 -- * -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< -- * raise ValueError(u"Non-native byte order not supported") -- * # One could encode it in the format string and have Cython -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0); -- if (__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0); -- __pyx_t_6 = __pyx_t_7; -- __pyx_L7_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":860 -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * # One could encode it in the format string and have Cython -- * # complain instead, BUT: < and > in format strings also imply -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 860, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 860, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":870 -- * -- * # Output padding bytes -- * while offset[0] < new_offset: # <<<<<<<<<<<<<< -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- */ -- while (1) { -- __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (!__pyx_t_6) break; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":871 -- * # Output padding bytes -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< -- * f += 1 -- * offset[0] += 1 -- */ -- (__pyx_v_f[0]) = 0x78; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":872 -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte -- * f += 1 # <<<<<<<<<<<<<< -- * offset[0] += 1 -- * -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":873 -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- * offset[0] += 1 # <<<<<<<<<<<<<< -- * -- * offset[0] += child.itemsize -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":875 -- * offset[0] += 1 -- * -- * offset[0] += child.itemsize # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(child): -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); -- if (__pyx_t_6) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":878 -- * -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num # <<<<<<<<<<<<<< -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") -- */ -- __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 878, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 880, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":883 -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 98; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":884 -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":885 -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x68; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":886 -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 72; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":887 -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x69; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":888 -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 73; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":889 -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x6C; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":890 -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 76; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":891 -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x71; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":892 -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 81; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":893 -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":894 -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x64; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":895 -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x67; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":896 -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x66; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":897 -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x64; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":898 -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x67; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":899 -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (likely(__pyx_t_6)) { -- (__pyx_v_f[0]) = 79; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":901 -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< -- * f += 1 -- * else: -- */ -- /*else*/ { -- __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 901, __pyx_L1_error) -- } -- __pyx_L15:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":902 -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- * f += 1 # <<<<<<<<<<<<<< -- * else: -- * # Cython ignores struct boundary information ("T{...}"), -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- goto __pyx_L13; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":906 -- * # Cython ignores struct boundary information ("T{...}"), -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< -- * return f -- * -- */ -- /*else*/ { -- __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(2, 906, __pyx_L1_error) -- __pyx_v_f = __pyx_t_9; -- } -- __pyx_L13:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- } -- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":907 -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) -- * return f # <<<<<<<<<<<<<< -- * -- * -- */ -- __pyx_r = __pyx_v_f; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -- * -- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< -- * # Recursive utility function used in __getbuffer__ to get format -- * # string. The new location in the format string is returned. -- */ -- -- /* function exit code */ -- __pyx_L1_error:; -- __Pyx_XDECREF(__pyx_t_1); -- __Pyx_XDECREF(__pyx_t_3); -- __Pyx_XDECREF(__pyx_t_4); -- __Pyx_AddTraceback("numpy._util_dtypestring", __pyx_clineno, __pyx_lineno, __pyx_filename); -- __pyx_r = NULL; -- __pyx_L0:; -- __Pyx_XDECREF((PyObject *)__pyx_v_child); -- __Pyx_XDECREF(__pyx_v_fields); -- __Pyx_XDECREF(__pyx_v_childname); -- __Pyx_XDECREF(__pyx_v_new_offset); -- __Pyx_XDECREF(__pyx_v_t); -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -- * int _import_umath() except -1 -+/* "../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): # <<<<<<<<<<<<<< - * Py_INCREF(base) # important to do this before stealing the reference below! -@@ -5568,7 +4077,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1023 -+ /* "../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! # <<<<<<<<<<<<<< -@@ -5577,7 +4086,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - Py_INCREF(__pyx_v_base); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1024 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -5586,7 +4095,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -5598,7 +4107,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyFinishContext(); - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+/* "../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): # <<<<<<<<<<<<<< -@@ -5613,7 +4122,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - int __pyx_t_1; - __Pyx_RefNannySetupContext("get_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1027 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -5622,7 +4131,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - __pyx_v_base = PyArray_BASE(__pyx_v_arr); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -5632,7 +4141,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) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1029 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":936 - * base = PyArray_BASE(arr) - * if base is NULL: - * return None # <<<<<<<<<<<<<< -@@ -5643,7 +4152,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -5652,7 +4161,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1030 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":937 - * if base is NULL: - * return None - * return base # <<<<<<<<<<<<<< -@@ -5664,7 +4173,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = ((PyObject *)__pyx_v_base); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -5679,12 +4188,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { -@@ -5698,13 +4207,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_array", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - { -@@ -5716,20 +4228,20 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1036 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":943 - * cdef inline int import_array() except -1: - * try: -- * _import_array() # <<<<<<<<<<<<<< -+ * __pyx_import_array() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") - */ -- __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1036, __pyx_L3_error) -+ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 943, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - } -@@ -5739,9 +4251,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1037 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":944 - * try: -- * _import_array() -+ * __pyx_import_array() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.multiarray failed to import") - * -@@ -5749,32 +4261,32 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1037, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 944, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 945, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __PYX_ERR(2, 945, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - __Pyx_XGIVEREF(__pyx_t_1); -@@ -5785,12 +4297,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - /* function exit code */ -@@ -5808,7 +4320,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -5827,9 +4339,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_umath", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5845,16 +4360,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1042 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":949 - * cdef inline int import_umath() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1042, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 949, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5868,7 +4383,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1043 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":950 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< -@@ -5878,28 +4393,28 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1043, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 950, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 951, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __PYX_ERR(2, 951, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5914,7 +4429,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -5937,7 +4452,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -5956,9 +4471,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_ufunc", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5974,16 +4492,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1048 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":955 - * cdef inline int import_ufunc() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1048, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 955, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5997,35 +4515,38 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1049 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":956 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.umath failed to import") -+ * - */ - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1049, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 956, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1050 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":957 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< -+ * -+ * cdef extern from *: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 957, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __PYX_ERR(2, 957, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -6040,7 +4561,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -6062,6 +4583,180 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_RefNannyFinishContext(); - return __pyx_r; - } -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_timedelta64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":979 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_datetime64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":994 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { -+ npy_datetime __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1004 -+ * also needed. That can be found using `get_datetime64_unit`. -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { -+ npy_timedelta __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1011 -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { -+ NPY_DATETIMEUNIT __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1018 -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ * """ -+ * return (obj).obmeta.base # <<<<<<<<<<<<<< -+ */ -+ __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} - static struct __pyx_vtabstruct_4cylp_2cy_9CyOsiCuts_CyOsiCuts __pyx_vtable_4cylp_2cy_9CyOsiCuts_CyOsiCuts; - - static PyObject *__pyx_tp_new_4cylp_2cy_9CyOsiCuts_CyOsiCuts(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { -@@ -6125,7 +4820,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_9CyOsiCuts_CyOsiCuts = { - sizeof(struct __pyx_obj_4cylp_2cy_9CyOsiCuts_CyOsiCuts), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_9CyOsiCuts_CyOsiCuts, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -6178,6 +4878,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_9CyOsiCuts_CyOsiCuts = { - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyMethodDef __pyx_methods[] = { -@@ -6228,13 +4934,8 @@ static struct PyModuleDef __pyx_moduledef = { - static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_CyLPModel, __pyx_k_CyLPModel, sizeof(__pyx_k_CyLPModel), 0, 0, 1, 1}, - {&__pyx_n_s_CyOsiCuts, __pyx_k_CyOsiCuts, sizeof(__pyx_k_CyOsiCuts), 0, 0, 1, 1}, -- {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, -- {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, - {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, -- {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, -- {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, -- {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_n_s_addVariable, __pyx_k_addVariable, sizeof(__pyx_k_addVariable), 0, 0, 1, 1}, - {&__pyx_n_s_arange, __pyx_k_arange, sizeof(__pyx_k_arange), 0, 0, 1, 1}, - {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, -@@ -6255,8 +4956,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_makeMatrices, __pyx_k_makeMatrices, sizeof(__pyx_k_makeMatrices), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, - {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1}, -- {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, -- {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, - {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0}, - {&__pyx_n_s_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 0, 1, 1}, - {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1}, -@@ -6273,7 +4972,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_shape, __pyx_k_shape, sizeof(__pyx_k_shape), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, -- {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, - {&__pyx_n_s_variables, __pyx_k_variables, sizeof(__pyx_k_variables), 0, 0, 1, 1}, - {&__pyx_n_s_x, __pyx_k_x, sizeof(__pyx_k_x), 0, 0, 1, 1}, - {&__pyx_n_s_xrange, __pyx_k_xrange, sizeof(__pyx_k_xrange), 0, 0, 1, 1}, -@@ -6286,10 +4984,7 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_xrange); if (!__pyx_builtin_xrange) __PYX_ERR(0, 70, __pyx_L1_error) - #endif - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(1, 2, __pyx_L1_error) -- __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(2, 272, __pyx_L1_error) -- __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(2, 285, __pyx_L1_error) -- __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(2, 856, __pyx_L1_error) -- __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 1038, __pyx_L1_error) -+ __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 945, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -@@ -6329,82 +5024,27 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_GOTREF(__pyx_tuple__3); - __Pyx_GIVEREF(__pyx_tuple__3); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":272 -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 272, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__4); -- __Pyx_GIVEREF(__pyx_tuple__4); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":276 -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(2, 276, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__5); -- __Pyx_GIVEREF(__pyx_tuple__5); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":306 -- * if ((descr.byteorder == c'>' and little_endian) or -- * (descr.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * if t == NPY_BYTE: f = "b" -- * elif t == NPY_UBYTE: f = "B" -- */ -- __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(2, 306, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__6); -- __Pyx_GIVEREF(__pyx_tuple__6); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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_tuple__7 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__7); -- __Pyx_GIVEREF(__pyx_tuple__7); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__8); -- __Pyx_GIVEREF(__pyx_tuple__8); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(2, 1038, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__9); -- __Pyx_GIVEREF(__pyx_tuple__9); -+ __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 945, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__4); -+ __Pyx_GIVEREF(__pyx_tuple__4); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(2, 1044, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__10); -- __Pyx_GIVEREF(__pyx_tuple__10); -+ __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(2, 951, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__5); -+ __Pyx_GIVEREF(__pyx_tuple__5); - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; -@@ -6453,6 +5093,9 @@ static int __Pyx_modinit_function_export_code(void) { - - static int __Pyx_modinit_type_init_code(void) { - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ - __pyx_vtabptr_4cylp_2cy_9CyOsiCuts_CyOsiCuts = &__pyx_vtable_4cylp_2cy_9CyOsiCuts_CyOsiCuts; -@@ -6478,6 +5121,9 @@ static int __Pyx_modinit_type_init_code(void) { - static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error) -@@ -6491,18 +5137,38 @@ static int __Pyx_modinit_type_import_code(void) { - __Pyx_ImportType_CheckSize_Warn); - if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(3, 9, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 206, __pyx_L1_error) -+ __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 206, __pyx_L1_error) -- __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 229, __pyx_L1_error) -- __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 233, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 200, __pyx_L1_error) -+ __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 223, __pyx_L1_error) -+ __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 227, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 242, __pyx_L1_error) -- __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 918, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 239, __pyx_L1_error) -+ __pyx_ptype_5numpy_generic = __Pyx_ImportType(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 771, __pyx_L1_error) -+ __pyx_ptype_5numpy_number = __Pyx_ImportType(__pyx_t_1, "numpy", "number", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 773, __pyx_L1_error) -+ __pyx_ptype_5numpy_integer = __Pyx_ImportType(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 775, __pyx_L1_error) -+ __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 777, __pyx_L1_error) -+ __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 779, __pyx_L1_error) -+ __pyx_ptype_5numpy_inexact = __Pyx_ImportType(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 781, __pyx_L1_error) -+ __pyx_ptype_5numpy_floating = __Pyx_ImportType(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 783, __pyx_L1_error) -+ __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 785, __pyx_L1_error) -+ __pyx_ptype_5numpy_flexible = __Pyx_ImportType(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 787, __pyx_L1_error) -+ __pyx_ptype_5numpy_character = __Pyx_ImportType(__pyx_t_1, "numpy", "character", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 789, __pyx_L1_error) -+ __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 827, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_RefNannyFinishContext(); - return 0; -@@ -6529,17 +5195,19 @@ static int __Pyx_modinit_function_import_code(void) { - } - - --#if PY_MAJOR_VERSION < 3 --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC void --#else -+#ifndef CYTHON_NO_PYINIT_EXPORT - #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#elif PY_MAJOR_VERSION < 3 -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" void -+#else -+#define __Pyx_PyMODINIT_FUNC void - #endif - #else --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC PyObject * -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * - #else --#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#define __Pyx_PyMODINIT_FUNC PyObject * - #endif - #endif - -@@ -6622,6 +5290,9 @@ static CYTHON_SMALL_CODE int __pyx_pymod_exec_CyOsiCuts(PyObject *__pyx_pyinit_m - { - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { -@@ -6669,11 +5340,9 @@ if (!__Pyx_RefNanny) { - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ -- #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS -- #ifdef WITH_THREAD /* Python build with threading support? */ -+ #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - PyEval_InitThreads(); - #endif -- #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; -@@ -6710,15 +5379,15 @@ if (!__Pyx_RefNanny) { - } - #endif - /*--- Builtin init code ---*/ -- if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Constants init code ---*/ -- if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(); - (void)__Pyx_modinit_variable_export_code(); - (void)__Pyx_modinit_function_export_code(); -- if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; -- if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; -+ if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(0, 1, __pyx_L1_error) -+ if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(0, 1, __pyx_L1_error) - (void)__Pyx_modinit_variable_import_code(); - (void)__Pyx_modinit_function_import_code(); - /*--- Execution code ---*/ -@@ -6799,12 +5468,12 @@ if (!__Pyx_RefNanny) { - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -- * raise ImportError("numpy.core.umath failed to import") -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -- * try: -- * _import_umath() -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ - - /*--- Wrapped vars code ---*/ -@@ -6980,7 +5649,7 @@ static int __Pyx_ParseOptionalKeywords( - } - name = first_kw_arg; - #if PY_MAJOR_VERSION < 3 -- if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { -+ if (likely(PyString_Check(key))) { - while (*name) { - if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) - && _PyString_Eq(**name, key)) { -@@ -7007,7 +5676,7 @@ static int __Pyx_ParseOptionalKeywords( - while (*name) { - int cmp = (**name == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 -- (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : -+ (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**name, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; -@@ -7023,7 +5692,7 @@ static int __Pyx_ParseOptionalKeywords( - while (argname != first_kw_arg) { - int cmp = (**argname == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 -- (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : -+ (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**argname, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; -@@ -7244,7 +5913,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, - #if CYTHON_COMPILING_IN_CPYTHON - static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; -- ternaryfunc call = func->ob_type->tp_call; -+ ternaryfunc call = Py_TYPE(func)->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -@@ -7347,7 +6016,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec - if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { - return __Pyx_PyObject_CallMethO(func, arg); - #if CYTHON_FAST_PYCCALL -- } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { -+ } else if (__Pyx_PyFastCFunction_Check(func)) { - return __Pyx_PyCFunction_FastCall(func, &arg, 1); - #endif - } -@@ -7534,6 +6203,7 @@ static void __Pyx_BufFmt_RaiseUnexpectedChar(char ch) { - } - static const char* __Pyx_BufFmt_DescribeTypeChar(char ch, int is_complex) { - switch (ch) { -+ case '?': return "'bool'"; - case 'c': return "'char'"; - case 'b': return "'signed char'"; - case 'B': return "'unsigned char'"; -@@ -7576,7 +6246,7 @@ static size_t __Pyx_BufFmt_TypeCharToStandardSize(char ch, int is_complex) { - } - static size_t __Pyx_BufFmt_TypeCharToNativeSize(char ch, int is_complex) { - switch (ch) { -- case 'c': case 'b': case 'B': case 's': case 'p': return 1; -+ case '?': case 'c': case 'b': case 'B': case 's': case 'p': return 1; - case 'h': case 'H': return sizeof(short); - case 'i': case 'I': return sizeof(int); - case 'l': case 'L': return sizeof(long); -@@ -7660,7 +6330,7 @@ static char __Pyx_BufFmt_TypeCharToGroup(char ch, int is_complex) { - case 'b': case 'h': case 'i': - case 'l': case 'q': case 's': case 'p': - return 'I'; -- case 'B': case 'H': case 'I': case 'L': case 'Q': -+ case '?': case 'B': case 'H': case 'I': case 'L': case 'Q': - return 'U'; - case 'f': case 'd': case 'g': - return (is_complex ? 'C' : 'R'); -@@ -7804,9 +6474,7 @@ static PyObject * - __pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp) - { - const char *ts = *tsp; -- int i = 0, number; -- int ndim = ctx->head->field->type->ndim; --; -+ int i = 0, number, ndim; - ++ts; - if (ctx->new_count != 1) { - PyErr_SetString(PyExc_ValueError, -@@ -7814,6 +6482,7 @@ __pyx_buffmt_parse_array(__Pyx_BufFmt_Context* ctx, const char** tsp) - return NULL; - } - if (__Pyx_BufFmt_ProcessTypeChunk(ctx) == -1) return NULL; -+ ndim = ctx->head->field->type->ndim; - while (*ts && *ts != ')') { - switch (*ts) { - case ' ': case '\f': case '\r': case '\n': case '\t': case '\v': continue; -@@ -7939,12 +6608,12 @@ static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const cha - return NULL; - } - CYTHON_FALLTHROUGH; -- case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I': -+ case '?': case 'c': case 'b': case 'B': case 'h': case 'H': case 'i': case 'I': - case 'l': case 'L': case 'q': case 'Q': - case 'f': case 'd': case 'g': - case 'O': case 'p': -- if (ctx->enc_type == *ts && got_Z == ctx->is_complex && -- ctx->enc_packmode == ctx->new_packmode) { -+ if ((ctx->enc_type == *ts) && (got_Z == ctx->is_complex) && -+ (ctx->enc_packmode == ctx->new_packmode) && (!ctx->is_valid_array)) { - ctx->enc_count += ctx->new_count; - ctx->new_count = 1; - got_Z = 0; -@@ -8332,35 +7001,6 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject - } - #endif - --/* DictGetItem */ -- #if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY --static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { -- PyObject *value; -- value = PyDict_GetItemWithError(d, key); -- if (unlikely(!value)) { -- if (!PyErr_Occurred()) { -- if (unlikely(PyTuple_Check(key))) { -- PyObject* args = PyTuple_Pack(1, key); -- if (likely(args)) { -- PyErr_SetObject(PyExc_KeyError, args); -- Py_DECREF(args); -- } -- } else { -- PyErr_SetObject(PyExc_KeyError, key); -- } -- } -- return NULL; -- } -- Py_INCREF(value); -- return value; --} --#endif -- --/* RaiseNoneIterError */ -- static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); --} -- - /* GetTopmostException */ - #if CYTHON_USE_EXC_INFO_STACK - static _PyErr_StackItem * -@@ -8584,6 +7224,28 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam - return -1; - } - -+/* PyObjectGetAttrStrNoError */ -+ static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { -+ __Pyx_PyThreadState_declare -+ __Pyx_PyThreadState_assign -+ if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) -+ __Pyx_PyErr_Clear(); -+} -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { -+ PyObject *result; -+#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 -+ PyTypeObject* tp = Py_TYPE(obj); -+ if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { -+ return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); -+ } -+#endif -+ result = __Pyx_PyObject_GetAttrStr(obj, attr_name); -+ if (unlikely(!result)) { -+ __Pyx_PyObject_GetAttrStr_ClearAttributeError(); -+ } -+ return result; -+} -+ - /* SetupReduce */ - static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { - int ret; -@@ -8611,43 +7273,51 @@ static int __Pyx_setup_reduce(PyObject* type_obj) { - PyObject *setstate = NULL; - PyObject *setstate_cython = NULL; - #if CYTHON_USE_PYTYPE_LOOKUP -- if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #else -- if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #endif - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #else -- object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #endif -- reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; -+ reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; - if (reduce_ex == object_reduce_ex) { - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #else -- object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #endif -- reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; -+ reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; - if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { -- reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; -+ reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); -+ if (likely(reduce_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (reduce == object_reduce || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); - if (!setstate) PyErr_Clear(); - if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { -- setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; -+ setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); -+ if (likely(setstate_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (!setstate || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - } - PyType_Modified((PyTypeObject*)type_obj); - } - } -- goto GOOD; --BAD: -+ goto __PYX_GOOD; -+__PYX_BAD: - if (!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); - ret = -1; --GOOD: -+__PYX_GOOD: - #if !CYTHON_USE_PYTYPE_LOOKUP - Py_XDECREF(object_reduce); - Py_XDECREF(object_reduce_ex); -@@ -8751,7 +7421,7 @@ static PyTypeObject *__Pyx_ImportType(PyObject *module, const char *module_name, - { - #if PY_MAJOR_VERSION >= 3 - if (level == -1) { -- if (strchr(__Pyx_MODULE_NAME, '.')) { -+ if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) { - module = PyImport_ImportModuleLevelObject( - name, global_dict, empty_dict, list, 1); - if (!module) { -@@ -8802,7 +7472,7 @@ static PyTypeObject *__Pyx_ImportType(PyObject *module, const char *module_name, - - /* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK --static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { -+static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) { - PyObject *use_cline; - PyObject *ptype, *pvalue, *ptraceback; - #if CYTHON_COMPILING_IN_CPYTHON -@@ -8832,7 +7502,7 @@ static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { - } - if (!use_cline) { - c_line = 0; -- PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); -+ (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; -@@ -8906,7 +7576,7 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - if (__pyx_code_cache.count == __pyx_code_cache.max_count) { - int new_max = __pyx_code_cache.max_count + 64; - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( -- __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); -+ __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); - if (unlikely(!entries)) { - return; - } -@@ -8929,30 +7599,31 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { -- PyCodeObject *py_code = 0; -- PyObject *py_srcfile = 0; -- PyObject *py_funcname = 0; -+ PyCodeObject *py_code = NULL; -+ PyObject *py_funcname = NULL; - #if PY_MAJOR_VERSION < 3 -+ PyObject *py_srcfile = NULL; - py_srcfile = PyString_FromString(filename); -- #else -- py_srcfile = PyUnicode_FromString(filename); -- #endif - if (!py_srcfile) goto bad; -+ #endif - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; -+ funcname = PyUnicode_AsUTF8(py_funcname); -+ if (!funcname) goto bad; - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); -- #else -- py_funcname = PyUnicode_FromString(funcname); -+ if (!py_funcname) goto bad; - #endif - } -- if (!py_funcname) goto bad; -+ #if PY_MAJOR_VERSION < 3 - py_code = __Pyx_PyCode_New( - 0, - 0, -@@ -8971,11 +7642,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); -- Py_DECREF(py_funcname); -+ #else -+ py_code = PyCode_NewEmpty(filename, funcname, py_line); -+ #endif -+ Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline - return py_code; - bad: -- Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); -+ #if PY_MAJOR_VERSION < 3 -+ Py_XDECREF(py_srcfile); -+ #endif - return NULL; - } - static void __Pyx_AddTraceback(const char *funcname, int c_line, -@@ -9010,7 +7686,6 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - #if PY_MAJOR_VERSION < 3 - static int __Pyx_GetBuffer(PyObject *obj, Py_buffer *view, int flags) { - if (PyObject_CheckBuffer(obj)) return PyObject_GetBuffer(obj, view, flags); -- if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) return __pyx_pw_5numpy_7ndarray_1__getbuffer__(obj, view, flags); - PyErr_Format(PyExc_TypeError, "'%.200s' does not have the buffer interface", Py_TYPE(obj)->tp_name); - return -1; - } -@@ -9022,76 +7697,13 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - return; - } - if ((0)) {} -- else if (__Pyx_TypeCheck(obj, __pyx_ptype_5numpy_ndarray)) __pyx_pw_5numpy_7ndarray_3__releasebuffer__(obj, view); - view->obj = NULL; - Py_DECREF(obj); - } - #endif - - -- /* CIntToPy */ -- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(int) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(int) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(int) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(int), -- little, !is_unsigned); -- } --} -- --/* CIntToPy */ -- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(long) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(long) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(long) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(long), -- little, !is_unsigned); -- } --} -- --/* Declarations */ -+ /* Declarations */ - #if CYTHON_CCOMPLEX - #ifdef __cplusplus - static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(float x, float y) { -@@ -9208,7 +7820,6 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_float(a, a); - return __Pyx_c_prod_float(a, a); - case 3: - z = __Pyx_c_prod_float(a, a); -@@ -9363,7 +7974,6 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_double(a, a); - return __Pyx_c_prod_double(a, a); - case 3: - z = __Pyx_c_prod_double(a, a); -@@ -9401,47 +8011,70 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - #endif - #endif - --/* CIntFromPyVerify */ -- #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ -- __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) --#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ -- __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) --#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ -- {\ -- func_type value = func_value;\ -- if (sizeof(target_type) < sizeof(func_type)) {\ -- if (unlikely(value != (func_type) (target_type) value)) {\ -- func_type zero = 0;\ -- if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ -- return (target_type) -1;\ -- if (is_unsigned && unlikely(value < zero))\ -- goto raise_neg_overflow;\ -- else\ -- goto raise_overflow;\ -- }\ -- }\ -- return (target_type) value;\ -+/* CIntToPy */ -+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif -+ const int is_unsigned = neg_one > const_zero; -+ if (is_unsigned) { -+ if (sizeof(int) < sizeof(long)) { -+ return PyInt_FromLong((long) value); -+ } else if (sizeof(int) <= sizeof(unsigned long)) { -+ return PyLong_FromUnsignedLong((unsigned long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -+ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+#endif -+ } -+ } else { -+ if (sizeof(int) <= sizeof(long)) { -+ return PyInt_FromLong((long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -+ return PyLong_FromLongLong((PY_LONG_LONG) value); -+#endif -+ } -+ } -+ { -+ int one = 1; int little = (int)*(unsigned char *)&one; -+ unsigned char *bytes = (unsigned char *)&value; -+ return _PyLong_FromByteArray(bytes, sizeof(int), -+ little, !is_unsigned); - } -+} - - /* CIntToPy */ -- static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { -- const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0; -+ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { -- if (sizeof(enum NPY_TYPES) < sizeof(long)) { -+ if (sizeof(long) < sizeof(long)) { - return PyInt_FromLong((long) value); -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { -+ } else if (sizeof(long) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); - #ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { -+ } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); - #endif - } - } else { -- if (sizeof(enum NPY_TYPES) <= sizeof(long)) { -+ if (sizeof(long) <= sizeof(long)) { - return PyInt_FromLong((long) value); - #ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { -+ } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); - #endif - } -@@ -9449,25 +8082,54 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), -+ return _PyLong_FromByteArray(bytes, sizeof(long), - little, !is_unsigned); - } - } - -+/* CIntFromPyVerify */ -+ #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ -+ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) -+#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ -+ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) -+#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ -+ {\ -+ func_type value = func_value;\ -+ if (sizeof(target_type) < sizeof(func_type)) {\ -+ if (unlikely(value != (func_type) (target_type) value)) {\ -+ func_type zero = 0;\ -+ if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ -+ return (target_type) -1;\ -+ if (is_unsigned && unlikely(value < zero))\ -+ goto raise_neg_overflow;\ -+ else\ -+ goto raise_overflow;\ -+ }\ -+ }\ -+ return (target_type) value;\ -+ } -+ - /* CIntFromPy */ -- static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -+ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -- if (sizeof(int) < sizeof(long)) { -- __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) -+ if (sizeof(long) < sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } -- return (int) val; -+ return (long) val; - } - } else - #endif -@@ -9476,32 +8138,32 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { -- case 0: return (int) 0; -- case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) -+ case 0: return (long) 0; -+ case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) - case 2: -- if (8 * sizeof(int) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { -- return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { -+ return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - case 3: -- if (8 * sizeof(int) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { -- return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { -+ return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - case 4: -- if (8 * sizeof(int) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { -- return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { -+ return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; -@@ -9515,86 +8177,86 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) -- return (int) -1; -+ return (long) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } - #endif -- if (sizeof(int) <= sizeof(unsigned long)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) -+ if (sizeof(long) <= sizeof(unsigned long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) - #ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -+ } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) - #endif - } - } else { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { -- case 0: return (int) 0; -- case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) -- case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) -+ case 0: return (long) 0; -+ case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) -+ case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) - case -2: -- if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -- return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -+ return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 2: -- if (8 * sizeof(int) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -- return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -+ return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case -3: -- if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -- return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -+ return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 3: -- if (8 * sizeof(int) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -- return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -+ return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case -4: -- if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -- return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { -+ return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 4: -- if (8 * sizeof(int) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -- return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { -+ return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - } - #endif -- if (sizeof(int) <= sizeof(long)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) -+ if (sizeof(long) <= sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) - #ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) -+ } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) - #endif - } - } -@@ -9603,7 +8265,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - PyErr_SetString(PyExc_RuntimeError, - "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); - #else -- int val; -+ long val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); - #if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { -@@ -9623,40 +8285,47 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - return val; - } - #endif -- return (int) -1; -+ return (long) -1; - } - } else { -- int val; -+ long val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); -- if (!tmp) return (int) -1; -- val = __Pyx_PyInt_As_int(tmp); -+ if (!tmp) return (long) -1; -+ val = __Pyx_PyInt_As_long(tmp); - Py_DECREF(tmp); - return val; - } - raise_overflow: - PyErr_SetString(PyExc_OverflowError, -- "value too large to convert to int"); -- return (int) -1; -+ "value too large to convert to long"); -+ return (long) -1; - raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, -- "can't convert negative value to int"); -- return (int) -1; -+ "can't convert negative value to long"); -+ return (long) -1; - } - - /* CIntFromPy */ -- static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -- if (sizeof(long) < sizeof(long)) { -- __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) -+ if (sizeof(int) < sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } -- return (long) val; -+ return (int) val; - } - } else - #endif -@@ -9665,32 +8334,32 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { -- case 0: return (long) 0; -- case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) -+ case 0: return (int) 0; -+ case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) - case 2: -- if (8 * sizeof(long) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { -- return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { -+ return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - case 3: -- if (8 * sizeof(long) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { -- return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { -+ return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - case 4: -- if (8 * sizeof(long) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { -- return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { -+ return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; -@@ -9704,86 +8373,86 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) -- return (long) -1; -+ return (int) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } - #endif -- if (sizeof(long) <= sizeof(unsigned long)) { -- __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) -+ if (sizeof(int) <= sizeof(unsigned long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) - #ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -+ } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) - #endif - } - } else { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { -- case 0: return (long) 0; -- case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) -- case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) -+ case 0: return (int) 0; -+ case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) -+ case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) - case -2: -- if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -- return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -+ return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 2: -- if (8 * sizeof(long) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -- return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -+ return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case -3: -- if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -- return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -+ return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 3: -- if (8 * sizeof(long) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -- return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -+ return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case -4: -- if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { -- return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -+ return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 4: -- if (8 * sizeof(long) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { -- return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -+ return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - } - #endif -- if (sizeof(long) <= sizeof(long)) { -- __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) -+ if (sizeof(int) <= sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) - #ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) -+ } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) - #endif - } - } -@@ -9792,7 +8461,7 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - PyErr_SetString(PyExc_RuntimeError, - "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); - #else -- long val; -+ int val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); - #if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { -@@ -9812,24 +8481,24 @@ static void __Pyx_ReleaseBuffer(Py_buffer *view) { - return val; - } - #endif -- return (long) -1; -+ return (int) -1; - } - } else { -- long val; -+ int val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); -- if (!tmp) return (long) -1; -- val = __Pyx_PyInt_As_long(tmp); -+ if (!tmp) return (int) -1; -+ val = __Pyx_PyInt_As_int(tmp); - Py_DECREF(tmp); - return val; - } - raise_overflow: - PyErr_SetString(PyExc_OverflowError, -- "value too large to convert to long"); -- return (long) -1; -+ "value too large to convert to int"); -+ return (int) -1; - raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, -- "can't convert negative value to long"); -- return (long) -1; -+ "can't convert negative value to int"); -+ return (int) -1; - } - - /* FastTypeChecks */ -@@ -10196,6 +8865,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_DECREF(x); - return ival; - } -+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { -+ if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { -+ return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); -+#if PY_MAJOR_VERSION < 3 -+ } else if (likely(PyInt_CheckExact(o))) { -+ return PyInt_AS_LONG(o); -+#endif -+ } else { -+ Py_ssize_t ival; -+ PyObject *x; -+ x = PyNumber_Index(o); -+ if (!x) return -1; -+ ival = PyInt_AsLong(x); -+ Py_DECREF(x); -+ return ival; -+ } -+} - static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); - } -diff --git a/cylp/cy/CyOsiSolverInterface.cpp b/cylp/cy/CyOsiSolverInterface.cpp -index e0d5a87..8381cf8 100644 ---- a/cylp/cy/CyOsiSolverInterface.cpp -+++ b/cylp/cy/CyOsiSolverInterface.cpp -@@ -1,14 +1,16 @@ --/* Generated by Cython 0.29.12 */ -+/* 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_12" --#define CYTHON_HEX_VERSION 0x001D0CF0 -+#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) -@@ -449,7 +516,15 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) - #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) -+ #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 - #else - #define CYTHON_PEP393_ENABLED 0 - #define PyUnicode_1BYTE_KIND 1 -@@ -498,8 +573,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact -+#ifndef PyObject_Unicode - #define PyObject_Unicode PyObject_Str - #endif -+#endif - #if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) - #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) -@@ -510,6 +587,13 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #ifndef PySet_CheckExact - #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) - #endif -+#if PY_VERSION_HEX >= 0x030900A4 -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) -+#else -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) -+#endif - #if CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) - #else -@@ -543,13 +627,13 @@ 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) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) -+ #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) - #else - #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) - #endif -@@ -590,11 +674,10 @@ static CYTHON_INLINE float __PYX_NAN() { - #define __Pyx_truncl truncl - #endif - -- -+#define __PYX_MARK_ERR_POS(f_index, lineno) \ -+ { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } - #define __PYX_ERR(f_index, lineno, Ln_error) \ --{ \ -- __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ --} -+ { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } - - #ifndef __PYX_EXTERN_C - #ifdef __cplusplus -@@ -615,7 +698,13 @@ static CYTHON_INLINE float __PYX_NAN() { - #include "ClpFactorization.hpp" - #include "IClpPrimalColumnPivotBase.h" - #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 "ClpDualRowPivot.hpp" - #include "IClpDualRowPivotBase.h" - #include "CoinModel.hpp" -@@ -640,11 +729,11 @@ static CYTHON_INLINE float __PYX_NAN() { - #include "ICbcNode.hpp" - #include "CbcCompareUser.hpp" - #include "ICbcModel.hpp" -+#include - #include "ios" - #include "new" - #include "stdexcept" - #include "typeinfo" --#include - #include - #include "IClpSimplex.hpp" - #include "ClpSimplex.hpp" -@@ -746,6 +835,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 -@@ -881,23 +971,23 @@ static const char *__pyx_filename; - - static const char *__pyx_f[] = { - "stringsource", -- "cylp\\cy\\CyOsiSolverInterface.pyx", -+ "cylp/cy/CyOsiSolverInterface.pyx", - "__init__.pxd", - "type.pxd", - "bool.pxd", - "complex.pxd", -- "cylp\\cy\\CyCoinIndexedVector.pxd", -- "cylp\\cy\\CyClpPrimalColumnPivotBase.pxd", -- "cylp\\cy\\CyClpDualRowPivotBase.pxd", -- "cylp\\cy\\CyCoinModel.pxd", -- "cylp\\cy\\CyCoinPackedMatrix.pxd", -- "cylp\\cy\\CyCgl.pxd", -- "cylp\\cy\\CyCbcNode.pxd", -- "cylp\\cy\\CyCbcModel.pxd", -- "cylp\\cy\\CyClpSimplex.pxd", -+ "cylp/cy/CyCoinIndexedVector.pxd", -+ "cylp/cy/CyClpPrimalColumnPivotBase.pxd", -+ "cylp/cy/CyClpDualRowPivotBase.pxd", -+ "cylp/cy/CyCoinModel.pxd", -+ "cylp/cy/CyCoinPackedMatrix.pxd", -+ "cylp/cy/CyCgl.pxd", -+ "cylp/cy/CyCbcNode.pxd", -+ "cylp/cy/CyCbcModel.pxd", -+ "cylp/cy/CyClpSimplex.pxd", - }; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":776 -+/* "../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 # <<<<<<<<<<<<<< -@@ -906,7 +996,7 @@ static const char *__pyx_f[] = { - */ - typedef npy_int8 __pyx_t_5numpy_int8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":777 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":691 - * - * ctypedef npy_int8 int8_t - * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< -@@ -915,7 +1005,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; - */ - typedef npy_int16 __pyx_t_5numpy_int16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":778 -+/* "../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 # <<<<<<<<<<<<<< -@@ -924,7 +1014,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; - */ - typedef npy_int32 __pyx_t_5numpy_int32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":779 -+/* "../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 # <<<<<<<<<<<<<< -@@ -933,7 +1023,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; - */ - typedef npy_int64 __pyx_t_5numpy_int64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":783 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":697 - * #ctypedef npy_int128 int128_t - * - * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< -@@ -942,7 +1032,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; - */ - typedef npy_uint8 __pyx_t_5numpy_uint8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":784 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":698 - * - * ctypedef npy_uint8 uint8_t - * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< -@@ -951,7 +1041,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; - */ - typedef npy_uint16 __pyx_t_5numpy_uint16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":785 -+/* "../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 # <<<<<<<<<<<<<< -@@ -960,7 +1050,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; - */ - typedef npy_uint32 __pyx_t_5numpy_uint32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":786 -+/* "../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 # <<<<<<<<<<<<<< -@@ -969,7 +1059,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; - */ - typedef npy_uint64 __pyx_t_5numpy_uint64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":790 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":704 - * #ctypedef npy_uint128 uint128_t - * - * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< -@@ -978,7 +1068,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; - */ - typedef npy_float32 __pyx_t_5numpy_float32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":791 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":705 - * - * ctypedef npy_float32 float32_t - * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< -@@ -987,7 +1077,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; - */ - typedef npy_float64 __pyx_t_5numpy_float64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":800 -+/* "../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 # <<<<<<<<<<<<<< -@@ -996,7 +1086,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; - */ - typedef npy_long __pyx_t_5numpy_int_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":801 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1005,7 +1095,7 @@ typedef npy_long __pyx_t_5numpy_int_t; - */ - typedef npy_longlong __pyx_t_5numpy_long_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":802 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1014,7 +1104,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; - */ - typedef npy_longlong __pyx_t_5numpy_longlong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":804 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":718 - * ctypedef npy_longlong longlong_t - * - * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< -@@ -1023,7 +1113,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; - */ - typedef npy_ulong __pyx_t_5numpy_uint_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":805 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":719 - * - * ctypedef npy_ulong uint_t - * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< -@@ -1032,7 +1122,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":806 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1041,7 +1131,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":808 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":722 - * ctypedef npy_ulonglong ulonglong_t - * - * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< -@@ -1050,7 +1140,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - */ - typedef npy_intp __pyx_t_5numpy_intp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":809 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":723 - * - * ctypedef npy_intp intp_t - * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< -@@ -1059,7 +1149,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; - */ - typedef npy_uintp __pyx_t_5numpy_uintp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":811 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":725 - * ctypedef npy_uintp uintp_t - * - * ctypedef npy_double float_t # <<<<<<<<<<<<<< -@@ -1068,7 +1158,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; - */ - typedef npy_double __pyx_t_5numpy_float_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":812 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":726 - * - * ctypedef npy_double float_t - * ctypedef npy_double double_t # <<<<<<<<<<<<<< -@@ -1077,7 +1167,7 @@ typedef npy_double __pyx_t_5numpy_float_t; - */ - typedef npy_double __pyx_t_5numpy_double_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":813 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1139,7 +1229,7 @@ struct __pyx_obj_4cylp_2cy_12CyClpSimplex_CyClpSimplex; - struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus; - struct __pyx_obj_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":815 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":729 - * ctypedef npy_longdouble longdouble_t - * - * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< -@@ -1148,7 +1238,7 @@ struct __pyx_obj_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface; - */ - typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":816 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":730 - * - * ctypedef npy_cfloat cfloat_t - * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< -@@ -1157,7 +1247,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - */ - typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":817 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1166,7 +1256,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - */ - typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":819 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":733 - * ctypedef npy_clongdouble clongdouble_t - * - * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< -@@ -1840,6 +1930,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()\ -@@ -1847,6 +1938,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 */ -@@ -1907,39 +1999,6 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - /* RaiseException.proto */ - static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); - --/* PyCFunctionFastCall.proto */ --#if CYTHON_FAST_PYCCALL --static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); --#else --#define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) --#endif -- --/* PyObjectCallOneArg.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); -- --/* 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); -@@ -1989,6 +2048,9 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam - /* SetVTable.proto */ - static int __Pyx_SetVtable(PyObject *dict, void *vtable); - -+/* PyObjectGetAttrStrNoError.proto */ -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); -+ - /* SetupReduce.proto */ - static int __Pyx_setup_reduce(PyObject* type_obj); - -@@ -2156,14 +2218,10 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - #endif - #endif - --/* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); -- --/* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value); -- --/* CIntFromPy.proto */ --static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); -+/* GCCDiagnostics.proto */ -+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -+#define __Pyx_HAS_GCC_DIAGNOSTIC -+#endif - - /* CIntToPy.proto */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); -@@ -2171,6 +2229,9 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); - /* CIntFromPy.proto */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); - -+/* CIntFromPy.proto */ -+static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); -+ - /* FastTypeChecks.proto */ - #if CYTHON_COMPILING_IN_CPYTHON - #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) -@@ -2290,8 +2351,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.CyClpDualRowPivotBase' */ - static PyTypeObject *__pyx_ptype_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase = 0; -@@ -2343,78 +2413,50 @@ int __pyx_module_is_main_cylp__cy__CyOsiSolverInterface = 0; - - /* Implementation of 'cylp.cy.CyOsiSolverInterface' */ - static PyObject *__pyx_builtin_TypeError; --static PyObject *__pyx_builtin_ValueError; --static PyObject *__pyx_builtin_range; --static PyObject *__pyx_builtin_RuntimeError; - static PyObject *__pyx_builtin_ImportError; - static const char __pyx_k_main[] = "__main__"; - static const char __pyx_k_name[] = "__name__"; - static const char __pyx_k_test[] = "__test__"; --static const char __pyx_k_range[] = "range"; - static const char __pyx_k_reduce[] = "__reduce__"; - static const char __pyx_k_getstate[] = "__getstate__"; - static const char __pyx_k_setstate[] = "__setstate__"; - static const char __pyx_k_TypeError[] = "TypeError"; - static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; --static const char __pyx_k_ValueError[] = "ValueError"; - static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; - static const char __pyx_k_ImportError[] = "ImportError"; --static const char __pyx_k_RuntimeError[] = "RuntimeError"; - static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; - static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; - static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; - static const char __pyx_k_CyOsiSolverInterface[] = "CyOsiSolverInterface"; --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_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; - static PyObject *__pyx_n_s_CyOsiSolverInterface; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; - static PyObject *__pyx_n_s_ImportError; --static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; --static PyObject *__pyx_n_s_RuntimeError; - static PyObject *__pyx_n_s_TypeError; --static PyObject *__pyx_n_s_ValueError; - static PyObject *__pyx_n_s_cline_in_traceback; - static PyObject *__pyx_n_s_getstate; - static PyObject *__pyx_n_s_main; - static PyObject *__pyx_n_s_name; --static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous; --static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou; - static PyObject *__pyx_kp_s_no_default___reduce___due_to_non; - static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; - static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; - static PyObject *__pyx_n_s_pyx_vtable; --static PyObject *__pyx_n_s_range; - static PyObject *__pyx_n_s_reduce; - static PyObject *__pyx_n_s_reduce_cython; - static PyObject *__pyx_n_s_reduce_ex; - static PyObject *__pyx_n_s_setstate; - static PyObject *__pyx_n_s_setstate_cython; - static PyObject *__pyx_n_s_test; --static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; - static int __pyx_pf_4cylp_2cy_20CyOsiSolverInterface_20CyOsiSolverInterface___cinit__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_20CyOsiSolverInterface_20CyOsiSolverInterface_8clpModel___get__(struct __pyx_obj_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_20CyOsiSolverInterface_20CyOsiSolverInterface_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_20CyOsiSolverInterface_20CyOsiSolverInterface_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface *__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_20CyOsiSolverInterface_CyOsiSolverInterface(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ - static PyObject *__pyx_tuple_; - static PyObject *__pyx_tuple__2; - static PyObject *__pyx_tuple__3; - static PyObject *__pyx_tuple__4; --static PyObject *__pyx_tuple__5; --static PyObject *__pyx_tuple__6; --static PyObject *__pyx_tuple__7; --static PyObject *__pyx_tuple__8; --static PyObject *__pyx_tuple__9; - /* Late includes */ - - /* "cylp/cy/CyOsiSolverInterface.pyx":11 -@@ -2526,6 +2568,9 @@ static PyObject *__pyx_pf_4cylp_2cy_20CyOsiSolverInterface_20CyOsiSolverInterfac - 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("__get__", 0); - - /* "cylp/cy/CyOsiSolverInterface.pyx":20 -@@ -2621,6 +2666,9 @@ static PyObject *__pyx_pf_4cylp_2cy_20CyOsiSolverInterface_20CyOsiSolverInterfac - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -2675,6 +2723,9 @@ static PyObject *__pyx_pf_4cylp_2cy_20CyOsiSolverInterface_20CyOsiSolverInterfac - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -2705,863 +2756,7 @@ static PyObject *__pyx_pf_4cylp_2cy_20CyOsiSolverInterface_20CyOsiSolverInterfac - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":258 -- * # experimental exception made for __getbuffer__ and __releasebuffer__ -- * # -- the details of this may change. -- * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< -- * # This implementation of getbuffer is geared towards Cython -- * # requirements, and does not yet fulfill the PEP. -- */ -- --/* Python wrapper */ --static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ --static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { -- int __pyx_r; -- __Pyx_RefNannyDeclarations -- __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); -- __pyx_r = __pyx_pf_5numpy_7ndarray___getbuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); -- -- /* function exit code */ -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { -- int __pyx_v_i; -- int __pyx_v_ndim; -- int __pyx_v_endian_detector; -- int __pyx_v_little_endian; -- int __pyx_v_t; -- char *__pyx_v_f; -- PyArray_Descr *__pyx_v_descr = 0; -- int __pyx_v_offset; -- int __pyx_r; -- __Pyx_RefNannyDeclarations -- int __pyx_t_1; -- int __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- int __pyx_t_4; -- int __pyx_t_5; -- int __pyx_t_6; -- PyArray_Descr *__pyx_t_7; -- PyObject *__pyx_t_8 = NULL; -- char *__pyx_t_9; -- if (__pyx_v_info == NULL) { -- PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); -- return -1; -- } -- __Pyx_RefNannySetupContext("__getbuffer__", 0); -- __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); -- __Pyx_GIVEREF(__pyx_v_info->obj); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- * -- */ -- __pyx_v_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) # <<<<<<<<<<<<<< -- * -- * ndim = PyArray_NDIM(self) -- */ -- __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":268 -- * cdef bint little_endian = ((&endian_detector)[0] != 0) -- * -- * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- */ -- __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":271 -- * -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< -- * raise ValueError(u"ndarray is not C contiguous") -- * -- */ -- __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_C_CONTIGUOUS) != 0)) != 0); -- __pyx_t_1 = __pyx_t_2; -- __pyx_L4_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":272 -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__3, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":274 -- * raise ValueError(u"ndarray is not C contiguous") -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") -- */ -- __pyx_t_2 = (((__pyx_v_flags & PyBUF_F_CONTIGUOUS) == PyBUF_F_CONTIGUOUS) != 0); -- if (__pyx_t_2) { -- } else { -- __pyx_t_1 = __pyx_t_2; -- goto __pyx_L7_bool_binop_done; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":275 -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< -- * raise ValueError(u"ndarray is not Fortran contiguous") -- * -- */ -- __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_F_CONTIGUOUS) != 0)) != 0); -- __pyx_t_1 = __pyx_t_2; -- __pyx_L7_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":276 -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__4, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":278 -- * raise ValueError(u"ndarray is not Fortran contiguous") -- * -- * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< -- * info.ndim = ndim -- * if sizeof(npy_intp) != sizeof(Py_ssize_t): -- */ -- __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":279 -- * -- * info.buf = PyArray_DATA(self) -- * info.ndim = ndim # <<<<<<<<<<<<<< -- * if sizeof(npy_intp) != sizeof(Py_ssize_t): -- * # Allocate new buffer for strides and shape info. -- */ -- __pyx_v_info->ndim = __pyx_v_ndim; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)))); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- */ -- (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- /*else*/ { -- __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- */ -- __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(__pyx_v_self)); -- } -- __pyx_L9:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- * -- */ -- __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":293 -- * info.suboffsets = NULL -- * info.itemsize = PyArray_ITEMSIZE(self) -- * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< -- * -- * cdef int t -- */ -- __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":297 -- * cdef int t -- * cdef char* f = NULL -- * cdef dtype descr = PyArray_DESCR(self) # <<<<<<<<<<<<<< -- * cdef int offset -- * -- */ -- __pyx_t_7 = PyArray_DESCR(__pyx_v_self); -- __pyx_t_3 = ((PyObject *)__pyx_t_7); -- __Pyx_INCREF(__pyx_t_3); -- __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":300 -- * cdef int offset -- * -- * info.obj = self # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(descr): -- */ -- __Pyx_INCREF(((PyObject *)__pyx_v_self)); -- __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); -- __Pyx_GOTREF(__pyx_v_info->obj); -- __Pyx_DECREF(__pyx_v_info->obj); -- __pyx_v_info->obj = ((PyObject *)__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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__5, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]) = '^'; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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'; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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): -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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(); --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735 - * ctypedef npy_cdouble complex_t - * - * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< -@@ -3573,9 +2768,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":822 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":736 - * - * cdef inline object PyArray_MultiIterNew1(a): - * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< -@@ -3583,13 +2781,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - * 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, 822, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735 - * ctypedef npy_cdouble complex_t - * - * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< -@@ -3608,7 +2806,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -+/* "../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): # <<<<<<<<<<<<<< -@@ -3620,9 +2818,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":825 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":739 - * - * cdef inline object PyArray_MultiIterNew2(a, b): - * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< -@@ -3630,13 +2831,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - * 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, 825, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -3655,7 +2856,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741 - * return PyArray_MultiIterNew(2, a, b) - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< -@@ -3667,9 +2868,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":828 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":742 - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): - * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< -@@ -3677,13 +2881,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - * 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, 828, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741 - * return PyArray_MultiIterNew(2, a, b) - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< -@@ -3702,7 +2906,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -+/* "../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): # <<<<<<<<<<<<<< -@@ -3714,9 +2918,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":831 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -3724,13 +2931,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - * 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, 831, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -3749,7 +2956,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 - * return PyArray_MultiIterNew(4, a, b, c, d) - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -@@ -3761,9 +2968,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":834 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -3771,13 +2981,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - * 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, 834, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 - * return PyArray_MultiIterNew(4, a, b, c, d) - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -@@ -3796,7 +3006,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -@@ -3810,7 +3020,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - int __pyx_t_1; - __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -@@ -3820,7 +3030,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); - if (__pyx_t_1) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":838 -+ /* "../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 # <<<<<<<<<<<<<< -@@ -3832,7 +3042,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -@@ -3841,12 +3051,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":840 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":754 - * 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); -@@ -3855,7 +3065,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - goto __pyx_L0; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -@@ -3870,754 +3080,8 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -- * -- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< -- * # Recursive utility function used in __getbuffer__ to get format -- * # string. The new location in the format string is returned. -- */ -- --static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) { -- PyArray_Descr *__pyx_v_child = 0; -- int __pyx_v_endian_detector; -- int __pyx_v_little_endian; -- PyObject *__pyx_v_fields = 0; -- PyObject *__pyx_v_childname = NULL; -- PyObject *__pyx_v_new_offset = NULL; -- PyObject *__pyx_v_t = NULL; -- char *__pyx_r; -- __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- Py_ssize_t __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- PyObject *__pyx_t_4 = NULL; -- int __pyx_t_5; -- int __pyx_t_6; -- int __pyx_t_7; -- long __pyx_t_8; -- char *__pyx_t_9; -- __Pyx_RefNannySetupContext("_util_dtypestring", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":848 -- * 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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- if (unlikely(__pyx_v_descr->names == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -- __PYX_ERR(2, 851, __pyx_L1_error) -- } -- __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; -- for (;;) { -- if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; -- #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, 851, __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, 851, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- #endif -- __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":852 -- * -- * for childname in descr.names: -- * fields = descr.fields[childname] # <<<<<<<<<<<<<< -- * child, new_offset = fields -- * -- */ -- if (unlikely(__pyx_v_descr->fields == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -- __PYX_ERR(2, 852, __pyx_L1_error) -- } -- __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":853 -- * 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, 853, __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, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- #endif -- } else { -- __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 853, __pyx_L1_error) -- } -- if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3)); -- __pyx_t_3 = 0; -- __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 856, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0); -- if (!__pyx_t_7) { -- goto __pyx_L8_next_or; -- } else { -- } -- __pyx_t_7 = (__pyx_v_little_endian != 0); -- if (!__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_L8_next_or:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":859 -- * -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< -- * raise ValueError(u"Non-native byte order not supported") -- * # One could encode it in the format string and have Cython -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0); -- if (__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0); -- __pyx_t_6 = __pyx_t_7; -- __pyx_L7_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":860 -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * # One could encode it in the format string and have Cython -- * # complain instead, BUT: < and > in format strings also imply -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 860, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 860, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":870 -- * -- * # Output padding bytes -- * while offset[0] < new_offset: # <<<<<<<<<<<<<< -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- */ -- while (1) { -- __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (!__pyx_t_6) break; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":871 -- * # Output padding bytes -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< -- * f += 1 -- * offset[0] += 1 -- */ -- (__pyx_v_f[0]) = 0x78; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":872 -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte -- * f += 1 # <<<<<<<<<<<<<< -- * offset[0] += 1 -- * -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":873 -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- * offset[0] += 1 # <<<<<<<<<<<<<< -- * -- * offset[0] += child.itemsize -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":875 -- * offset[0] += 1 -- * -- * offset[0] += child.itemsize # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(child): -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); -- if (__pyx_t_6) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":878 -- * -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num # <<<<<<<<<<<<<< -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") -- */ -- __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 878, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 880, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":883 -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 98; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":884 -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":885 -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x68; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":886 -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 72; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":887 -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x69; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":888 -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 73; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":889 -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x6C; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":890 -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 76; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":891 -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x71; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":892 -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 81; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":893 -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":894 -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x64; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":895 -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x67; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":896 -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x66; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":897 -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x64; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":898 -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x67; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":899 -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (likely(__pyx_t_6)) { -- (__pyx_v_f[0]) = 79; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":901 -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< -- * f += 1 -- * else: -- */ -- /*else*/ { -- __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 901, __pyx_L1_error) -- } -- __pyx_L15:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":902 -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- * f += 1 # <<<<<<<<<<<<<< -- * else: -- * # Cython ignores struct boundary information ("T{...}"), -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- goto __pyx_L13; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":906 -- * # Cython ignores struct boundary information ("T{...}"), -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< -- * return f -- * -- */ -- /*else*/ { -- __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(2, 906, __pyx_L1_error) -- __pyx_v_f = __pyx_t_9; -- } -- __pyx_L13:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- } -- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":907 -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) -- * return f # <<<<<<<<<<<<<< -- * -- * -- */ -- __pyx_r = __pyx_v_f; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -- * -- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< -- * # Recursive utility function used in __getbuffer__ to get format -- * # string. The new location in the format string is returned. -- */ -- -- /* function exit code */ -- __pyx_L1_error:; -- __Pyx_XDECREF(__pyx_t_1); -- __Pyx_XDECREF(__pyx_t_3); -- __Pyx_XDECREF(__pyx_t_4); -- __Pyx_AddTraceback("numpy._util_dtypestring", __pyx_clineno, __pyx_lineno, __pyx_filename); -- __pyx_r = NULL; -- __pyx_L0:; -- __Pyx_XDECREF((PyObject *)__pyx_v_child); -- __Pyx_XDECREF(__pyx_v_fields); -- __Pyx_XDECREF(__pyx_v_childname); -- __Pyx_XDECREF(__pyx_v_new_offset); -- __Pyx_XDECREF(__pyx_v_t); -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -- * int _import_umath() except -1 -+/* "../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): # <<<<<<<<<<<<<< - * Py_INCREF(base) # important to do this before stealing the reference below! -@@ -4628,7 +3092,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1023 -+ /* "../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! # <<<<<<<<<<<<<< -@@ -4637,7 +3101,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - Py_INCREF(__pyx_v_base); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1024 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -4646,7 +3110,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -4658,7 +3122,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyFinishContext(); - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+/* "../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): # <<<<<<<<<<<<<< -@@ -4673,7 +3137,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - int __pyx_t_1; - __Pyx_RefNannySetupContext("get_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1027 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -4682,7 +3146,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - __pyx_v_base = PyArray_BASE(__pyx_v_arr); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -4692,7 +3156,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) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1029 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":936 - * base = PyArray_BASE(arr) - * if base is NULL: - * return None # <<<<<<<<<<<<<< -@@ -4703,7 +3167,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -4712,7 +3176,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1030 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":937 - * if base is NULL: - * return None - * return base # <<<<<<<<<<<<<< -@@ -4724,7 +3188,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = ((PyObject *)__pyx_v_base); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -4739,12 +3203,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { -@@ -4758,13 +3222,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_array", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - { -@@ -4776,20 +3243,20 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1036 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":943 - * cdef inline int import_array() except -1: - * try: -- * _import_array() # <<<<<<<<<<<<<< -+ * __pyx_import_array() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") - */ -- __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1036, __pyx_L3_error) -+ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 943, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - } -@@ -4799,9 +3266,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1037 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":944 - * try: -- * _import_array() -+ * __pyx_import_array() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.multiarray failed to import") - * -@@ -4809,32 +3276,32 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1037, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 944, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 945, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __PYX_ERR(2, 945, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - __Pyx_XGIVEREF(__pyx_t_1); -@@ -4845,12 +3312,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - /* function exit code */ -@@ -4868,7 +3335,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -4887,9 +3354,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_umath", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -4905,16 +3375,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1042 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":949 - * cdef inline int import_umath() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1042, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 949, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -4928,7 +3398,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1043 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":950 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< -@@ -4938,28 +3408,28 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1043, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 950, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 951, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __PYX_ERR(2, 951, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -4974,7 +3444,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -4997,7 +3467,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -5016,9 +3486,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_ufunc", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5034,16 +3507,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1048 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":955 - * cdef inline int import_ufunc() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1048, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 955, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5057,35 +3530,38 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1049 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":956 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.umath failed to import") -+ * - */ - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1049, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 956, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1050 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":957 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< -+ * -+ * cdef extern from *: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 957, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __PYX_ERR(2, 957, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5100,7 +3576,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -5122,6 +3598,180 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_RefNannyFinishContext(); - return __pyx_r; - } -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_timedelta64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":979 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_datetime64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":994 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { -+ npy_datetime __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1004 -+ * also needed. That can be found using `get_datetime64_unit`. -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { -+ npy_timedelta __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1011 -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { -+ NPY_DATETIMEUNIT __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1018 -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ * """ -+ * return (obj).obmeta.base # <<<<<<<<<<<<<< -+ */ -+ __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} - static struct __pyx_vtabstruct_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface __pyx_vtable_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface; - - static PyObject *__pyx_tp_new_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { -@@ -5172,7 +3822,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInter - sizeof(struct __pyx_obj_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -5225,6 +3880,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInter - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyMethodDef __pyx_methods[] = { -@@ -5274,39 +3935,27 @@ static struct PyModuleDef __pyx_moduledef = { - - static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_CyOsiSolverInterface, __pyx_k_CyOsiSolverInterface, sizeof(__pyx_k_CyOsiSolverInterface), 0, 0, 1, 1}, -- {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, -- {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, - {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, -- {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, -- {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, -- {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, - {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, -- {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, -- {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, - {&__pyx_kp_s_no_default___reduce___due_to_non, __pyx_k_no_default___reduce___due_to_non, sizeof(__pyx_k_no_default___reduce___due_to_non), 0, 0, 1, 0}, - {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0}, - {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0}, - {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, -- {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, - {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, - {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, -- {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, - {0, 0, 0, 0, 0, 0, 0} - }; - static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 2, __pyx_L1_error) -- __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(2, 272, __pyx_L1_error) -- __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(2, 285, __pyx_L1_error) -- __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(2, 856, __pyx_L1_error) -- __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 1038, __pyx_L1_error) -+ __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 945, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -@@ -5335,82 +3984,27 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_GOTREF(__pyx_tuple__2); - __Pyx_GIVEREF(__pyx_tuple__2); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":272 -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(2, 272, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__3); -- __Pyx_GIVEREF(__pyx_tuple__3); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":276 -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 276, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__4); -- __Pyx_GIVEREF(__pyx_tuple__4); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":306 -- * if ((descr.byteorder == c'>' and little_endian) or -- * (descr.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * if t == NPY_BYTE: f = "b" -- * elif t == NPY_UBYTE: f = "B" -- */ -- __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(2, 306, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__5); -- __Pyx_GIVEREF(__pyx_tuple__5); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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_tuple__6 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__6); -- __Pyx_GIVEREF(__pyx_tuple__6); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__7); -- __Pyx_GIVEREF(__pyx_tuple__7); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(2, 1038, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__8); -- __Pyx_GIVEREF(__pyx_tuple__8); -+ __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(2, 945, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__3); -+ __Pyx_GIVEREF(__pyx_tuple__3); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(2, 1044, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__9); -- __Pyx_GIVEREF(__pyx_tuple__9); -+ __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 951, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__4); -+ __Pyx_GIVEREF(__pyx_tuple__4); - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; -@@ -5459,6 +4053,9 @@ static int __Pyx_modinit_function_export_code(void) { - - static int __Pyx_modinit_type_init_code(void) { - __Pyx_RefNannyDeclarations -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ - __pyx_vtabptr_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface = &__pyx_vtable_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface; -@@ -5484,6 +4081,9 @@ static int __Pyx_modinit_type_init_code(void) { - static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error) -@@ -5519,18 +4119,38 @@ static int __Pyx_modinit_type_import_code(void) { - if (!__pyx_ptype_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase) __PYX_ERR(7, 67, __pyx_L1_error) - __pyx_vtabptr_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase = (struct __pyx_vtabstruct_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase*)__Pyx_GetVtable(__pyx_ptype_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase->tp_dict); if (unlikely(!__pyx_vtabptr_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase)) __PYX_ERR(7, 67, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 206, __pyx_L1_error) -+ __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 206, __pyx_L1_error) -- __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 229, __pyx_L1_error) -- __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 233, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 200, __pyx_L1_error) -+ __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 223, __pyx_L1_error) -+ __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 227, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 242, __pyx_L1_error) -- __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 918, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 239, __pyx_L1_error) -+ __pyx_ptype_5numpy_generic = __Pyx_ImportType(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 771, __pyx_L1_error) -+ __pyx_ptype_5numpy_number = __Pyx_ImportType(__pyx_t_1, "numpy", "number", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 773, __pyx_L1_error) -+ __pyx_ptype_5numpy_integer = __Pyx_ImportType(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 775, __pyx_L1_error) -+ __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 777, __pyx_L1_error) -+ __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 779, __pyx_L1_error) -+ __pyx_ptype_5numpy_inexact = __Pyx_ImportType(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 781, __pyx_L1_error) -+ __pyx_ptype_5numpy_floating = __Pyx_ImportType(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 783, __pyx_L1_error) -+ __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 785, __pyx_L1_error) -+ __pyx_ptype_5numpy_flexible = __Pyx_ImportType(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 787, __pyx_L1_error) -+ __pyx_ptype_5numpy_character = __Pyx_ImportType(__pyx_t_1, "numpy", "character", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 789, __pyx_L1_error) -+ __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 827, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyClpDualRowPivotBase"); if (unlikely(!__pyx_t_1)) __PYX_ERR(8, 72, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); -@@ -5633,17 +4253,19 @@ static int __Pyx_modinit_function_import_code(void) { - } - - --#if PY_MAJOR_VERSION < 3 --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC void --#else -+#ifndef CYTHON_NO_PYINIT_EXPORT - #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#elif PY_MAJOR_VERSION < 3 -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" void -+#else -+#define __Pyx_PyMODINIT_FUNC void - #endif - #else --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC PyObject * -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * - #else --#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#define __Pyx_PyMODINIT_FUNC PyObject * - #endif - #endif - -@@ -5725,6 +4347,9 @@ static CYTHON_SMALL_CODE int __pyx_pymod_exec_CyOsiSolverInterface(PyObject *__p - #endif - { - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { -@@ -5772,11 +4397,9 @@ if (!__Pyx_RefNanny) { - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ -- #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS -- #ifdef WITH_THREAD /* Python build with threading support? */ -+ #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - PyEval_InitThreads(); - #endif -- #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; -@@ -5813,15 +4436,15 @@ if (!__Pyx_RefNanny) { - } - #endif - /*--- Builtin init code ---*/ -- if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(1, 2, __pyx_L1_error) - /*--- Constants init code ---*/ -- if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(1, 2, __pyx_L1_error) - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(); - (void)__Pyx_modinit_variable_export_code(); - (void)__Pyx_modinit_function_export_code(); -- if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; -- if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; -+ if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(1, 2, __pyx_L1_error) -+ if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(1, 2, __pyx_L1_error) - (void)__Pyx_modinit_variable_import_code(); - (void)__Pyx_modinit_function_import_code(); - /*--- Execution code ---*/ -@@ -5840,12 +4463,12 @@ if (!__Pyx_RefNanny) { - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(1, 2, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -- * raise ImportError("numpy.core.umath failed to import") -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -- * try: -- * _import_umath() -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ - - /*--- Wrapped vars code ---*/ -@@ -6107,7 +4730,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, - #if CYTHON_COMPILING_IN_CPYTHON - static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; -- ternaryfunc call = func->ob_type->tp_call; -+ ternaryfunc call = Py_TYPE(func)->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -@@ -6348,124 +4971,6 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject - } - #endif - --/* PyCFunctionFastCall */ --#if CYTHON_FAST_PYCCALL --static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { -- PyCFunctionObject *func = (PyCFunctionObject*)func_obj; -- PyCFunction meth = PyCFunction_GET_FUNCTION(func); -- PyObject *self = PyCFunction_GET_SELF(func); -- int flags = PyCFunction_GET_FLAGS(func); -- assert(PyCFunction_Check(func)); -- assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); -- assert(nargs >= 0); -- assert(nargs == 0 || args != NULL); -- /* _PyCFunction_FastCallDict() must not be called with an exception set, -- because it may clear it (directly or indirectly) and so the -- caller loses its exception */ -- assert(!PyErr_Occurred()); -- if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { -- return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); -- } else { -- return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); -- } --} --#endif -- --/* PyObjectCallOneArg */ --#if CYTHON_COMPILING_IN_CPYTHON --static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { -- PyObject *result; -- PyObject *args = PyTuple_New(1); -- if (unlikely(!args)) return NULL; -- Py_INCREF(arg); -- PyTuple_SET_ITEM(args, 0, arg); -- result = __Pyx_PyObject_Call(func, args, NULL); -- Py_DECREF(args); -- return result; --} --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { --#if CYTHON_FAST_PYCALL -- if (PyFunction_Check(func)) { -- return __Pyx_PyFunction_FastCall(func, &arg, 1); -- } --#endif -- if (likely(PyCFunction_Check(func))) { -- if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { -- return __Pyx_PyObject_CallMethO(func, arg); --#if CYTHON_FAST_PYCCALL -- } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { -- return __Pyx_PyCFunction_FastCall(func, &arg, 1); --#endif -- } -- } -- return __Pyx__PyObject_CallOneArg(func, arg); --} --#else --static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { -- PyObject *result; -- PyObject *args = PyTuple_Pack(1, arg); -- if (unlikely(!args)) return NULL; -- result = __Pyx_PyObject_Call(func, args, NULL); -- Py_DECREF(args); -- return result; --} --#endif -- --/* DictGetItem */ --#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY --static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { -- PyObject *value; -- value = PyDict_GetItemWithError(d, key); -- if (unlikely(!value)) { -- if (!PyErr_Occurred()) { -- if (unlikely(PyTuple_Check(key))) { -- PyObject* args = PyTuple_Pack(1, key); -- if (likely(args)) { -- PyErr_SetObject(PyExc_KeyError, args); -- Py_DECREF(args); -- } -- } else { -- PyErr_SetObject(PyExc_KeyError, key); -- } -- } -- return NULL; -- } -- Py_INCREF(value); -- return value; --} --#endif -- --/* RaiseTooManyValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { -- PyErr_Format(PyExc_ValueError, -- "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); --} -- --/* RaiseNeedMoreValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { -- PyErr_Format(PyExc_ValueError, -- "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", -- index, (index == 1) ? "" : "s"); --} -- --/* RaiseNoneIterError */ --static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); --} -- --/* ExtTypeTest */ --static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { -- if (unlikely(!type)) { -- PyErr_SetString(PyExc_SystemError, "Missing type object"); -- return 0; -- } -- if (likely(__Pyx_TypeCheck(obj, type))) -- return 1; -- PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", -- Py_TYPE(obj)->tp_name, type->tp_name); -- return 0; --} -- - /* GetTopmostException */ - #if CYTHON_USE_EXC_INFO_STACK - static _PyErr_StackItem * -@@ -6689,6 +5194,28 @@ static int __Pyx_SetVtable(PyObject *dict, void *vtable) { - return -1; - } - -+/* PyObjectGetAttrStrNoError */ -+static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { -+ __Pyx_PyThreadState_declare -+ __Pyx_PyThreadState_assign -+ if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) -+ __Pyx_PyErr_Clear(); -+} -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { -+ PyObject *result; -+#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 -+ PyTypeObject* tp = Py_TYPE(obj); -+ if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { -+ return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); -+ } -+#endif -+ result = __Pyx_PyObject_GetAttrStr(obj, attr_name); -+ if (unlikely(!result)) { -+ __Pyx_PyObject_GetAttrStr_ClearAttributeError(); -+ } -+ return result; -+} -+ - /* SetupReduce */ - static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { - int ret; -@@ -6716,43 +5243,51 @@ static int __Pyx_setup_reduce(PyObject* type_obj) { - PyObject *setstate = NULL; - PyObject *setstate_cython = NULL; - #if CYTHON_USE_PYTYPE_LOOKUP -- if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #else -- if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #endif - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #else -- object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #endif -- reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; -+ reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; - if (reduce_ex == object_reduce_ex) { - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #else -- object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #endif -- reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; -+ reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; - if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { -- reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; -+ reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); -+ if (likely(reduce_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (reduce == object_reduce || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); - if (!setstate) PyErr_Clear(); - if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { -- setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; -+ setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); -+ if (likely(setstate_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (!setstate || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - } - PyType_Modified((PyTypeObject*)type_obj); - } - } -- goto GOOD; --BAD: -+ goto __PYX_GOOD; -+__PYX_BAD: - if (!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); - ret = -1; --GOOD: -+__PYX_GOOD: - #if !CYTHON_USE_PYTYPE_LOOKUP - Py_XDECREF(object_reduce); - Py_XDECREF(object_reduce_ex); -@@ -6874,7 +5409,7 @@ static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UIN - - /* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK --static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { -+static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) { - PyObject *use_cline; - PyObject *ptype, *pvalue, *ptraceback; - #if CYTHON_COMPILING_IN_CPYTHON -@@ -6904,7 +5439,7 @@ static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { - } - if (!use_cline) { - c_line = 0; -- PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); -+ (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; -@@ -6978,7 +5513,7 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - if (__pyx_code_cache.count == __pyx_code_cache.max_count) { - int new_max = __pyx_code_cache.max_count + 64; - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( -- __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); -+ __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); - if (unlikely(!entries)) { - return; - } -@@ -7001,30 +5536,31 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { -- PyCodeObject *py_code = 0; -- PyObject *py_srcfile = 0; -- PyObject *py_funcname = 0; -+ PyCodeObject *py_code = NULL; -+ PyObject *py_funcname = NULL; - #if PY_MAJOR_VERSION < 3 -+ PyObject *py_srcfile = NULL; - py_srcfile = PyString_FromString(filename); -- #else -- py_srcfile = PyUnicode_FromString(filename); -- #endif - if (!py_srcfile) goto bad; -+ #endif - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; -+ funcname = PyUnicode_AsUTF8(py_funcname); -+ if (!funcname) goto bad; - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); -- #else -- py_funcname = PyUnicode_FromString(funcname); -+ if (!py_funcname) goto bad; - #endif - } -- if (!py_funcname) goto bad; -+ #if PY_MAJOR_VERSION < 3 - py_code = __Pyx_PyCode_New( - 0, - 0, -@@ -7043,11 +5579,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); -- Py_DECREF(py_funcname); -+ #else -+ py_code = PyCode_NewEmpty(filename, funcname, py_line); -+ #endif -+ Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline - return py_code; - bad: -- Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); -+ #if PY_MAJOR_VERSION < 3 -+ Py_XDECREF(py_srcfile); -+ #endif - return NULL; - } - static void __Pyx_AddTraceback(const char *funcname, int c_line, -@@ -7196,7 +5737,6 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - case 1: - return a; - case 2: -- z = __Pyx_c_prod_float(a, a); - return __Pyx_c_prod_float(a, a); - case 3: - z = __Pyx_c_prod_float(a, a); -@@ -7351,7 +5891,6 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - case 1: - return a; - case 2: -- z = __Pyx_c_prod_double(a, a); - return __Pyx_c_prod_double(a, a); - case 3: - z = __Pyx_c_prod_double(a, a); -@@ -7390,24 +5929,31 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - #endif - - /* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { -- if (sizeof(int) < sizeof(long)) { -+ if (sizeof(long) < sizeof(long)) { - return PyInt_FromLong((long) value); -- } else if (sizeof(int) <= sizeof(unsigned long)) { -+ } else if (sizeof(long) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); - #ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -+ } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); - #endif - } - } else { -- if (sizeof(int) <= sizeof(long)) { -+ if (sizeof(long) <= sizeof(long)) { - return PyInt_FromLong((long) value); - #ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -+ } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); - #endif - } -@@ -7415,7 +5961,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(int), -+ return _PyLong_FromByteArray(bytes, sizeof(long), - little, !is_unsigned); - } - } -@@ -7442,51 +5988,27 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - return (target_type) value;\ - } - --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { -- const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(enum NPY_TYPES) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+/* CIntFromPy */ -+static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" - #endif -- } -- } else { -- if (sizeof(enum NPY_TYPES) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop - #endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), -- little, !is_unsigned); -- } --} -- --/* CIntFromPy */ --static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -- if (sizeof(int) < sizeof(long)) { -- __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) -+ if (sizeof(long) < sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } -- return (int) val; -+ return (long) val; - } - } else - #endif -@@ -7495,32 +6017,32 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { -- case 0: return (int) 0; -- case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) -+ case 0: return (long) 0; -+ case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) - case 2: -- if (8 * sizeof(int) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { -- return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { -+ return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - case 3: -- if (8 * sizeof(int) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { -- return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { -+ return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - case 4: -- if (8 * sizeof(int) > 3 * PyLong_SHIFT) { -- if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { -- return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -+ if (8 * sizeof(long) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { -+ return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; -@@ -7534,86 +6056,86 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) -- return (int) -1; -+ return (long) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } - #endif -- if (sizeof(int) <= sizeof(unsigned long)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) -+ if (sizeof(long) <= sizeof(unsigned long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) - #ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -+ } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) - #endif - } - } else { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { -- case 0: return (int) 0; -- case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) -- case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) -+ case 0: return (long) 0; -+ case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) -+ case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) - case -2: -- if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -- return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -+ return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 2: -- if (8 * sizeof(int) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -- return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -+ return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case -3: -- if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -- return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -+ return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 3: -- if (8 * sizeof(int) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -- return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -+ return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case -4: -- if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -- return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { -+ return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 4: -- if (8 * sizeof(int) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -- return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { -+ return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - } - #endif -- if (sizeof(int) <= sizeof(long)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) -+ if (sizeof(long) <= sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) - #ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) -+ } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) - #endif - } - } -@@ -7622,7 +6144,7 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - PyErr_SetString(PyExc_RuntimeError, - "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); - #else -- int val; -+ long val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); - #if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { -@@ -7642,71 +6164,47 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - return val; - } - #endif -- return (int) -1; -+ return (long) -1; - } - } else { -- int val; -+ long val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); -- if (!tmp) return (int) -1; -- val = __Pyx_PyInt_As_int(tmp); -+ if (!tmp) return (long) -1; -+ val = __Pyx_PyInt_As_long(tmp); - Py_DECREF(tmp); - return val; - } - raise_overflow: - PyErr_SetString(PyExc_OverflowError, -- "value too large to convert to int"); -- return (int) -1; -+ "value too large to convert to long"); -+ return (long) -1; - raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, -- "can't convert negative value to int"); -- return (int) -1; -+ "can't convert negative value to long"); -+ return (long) -1; - } - --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(long) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(long) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+/* CIntFromPy */ -+static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" - #endif -- } -- } else { -- if (sizeof(long) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop - #endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(long), -- little, !is_unsigned); -- } --} -- --/* CIntFromPy */ --static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -- if (sizeof(long) < sizeof(long)) { -- __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) -+ if (sizeof(int) < sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } -- return (long) val; -+ return (int) val; - } - } else - #endif -@@ -7715,32 +6213,32 @@ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { -- case 0: return (long) 0; -- case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) -+ case 0: return (int) 0; -+ case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) - case 2: -- if (8 * sizeof(long) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { -- return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { -+ return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - case 3: -- if (8 * sizeof(long) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { -- return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { -+ return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - case 4: -- if (8 * sizeof(long) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { -- return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { -+ return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; -@@ -7754,86 +6252,86 @@ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) -- return (long) -1; -+ return (int) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } - #endif -- if (sizeof(long) <= sizeof(unsigned long)) { -- __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) -+ if (sizeof(int) <= sizeof(unsigned long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) - #ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -+ } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) - #endif - } - } else { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { -- case 0: return (long) 0; -- case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) -- case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) -+ case 0: return (int) 0; -+ case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) -+ case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) - case -2: -- if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -- return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -+ return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 2: -- if (8 * sizeof(long) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -- return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -+ return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case -3: -- if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -- return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -+ return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 3: -- if (8 * sizeof(long) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -- return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -+ return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case -4: -- if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { -- return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -+ return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 4: -- if (8 * sizeof(long) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { -- return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -+ return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - } - #endif -- if (sizeof(long) <= sizeof(long)) { -- __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) -+ if (sizeof(int) <= sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) - #ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) -+ } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) - #endif - } - } -@@ -7842,7 +6340,7 @@ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - PyErr_SetString(PyExc_RuntimeError, - "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); - #else -- long val; -+ int val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); - #if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { -@@ -7862,24 +6360,24 @@ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - return val; - } - #endif -- return (long) -1; -+ return (int) -1; - } - } else { -- long val; -+ int val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); -- if (!tmp) return (long) -1; -- val = __Pyx_PyInt_As_long(tmp); -+ if (!tmp) return (int) -1; -+ val = __Pyx_PyInt_As_int(tmp); - Py_DECREF(tmp); - return val; - } - raise_overflow: - PyErr_SetString(PyExc_OverflowError, -- "value too large to convert to long"); -- return (long) -1; -+ "value too large to convert to int"); -+ return (int) -1; - raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, -- "can't convert negative value to long"); -- return (long) -1; -+ "can't convert negative value to int"); -+ return (int) -1; - } - - /* FastTypeChecks */ -@@ -8246,6 +6744,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_DECREF(x); - return ival; - } -+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { -+ if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { -+ return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); -+#if PY_MAJOR_VERSION < 3 -+ } else if (likely(PyInt_CheckExact(o))) { -+ return PyInt_AS_LONG(o); -+#endif -+ } else { -+ Py_ssize_t ival; -+ PyObject *x; -+ x = PyNumber_Index(o); -+ if (!x) return -1; -+ ival = PyInt_AsLong(x); -+ Py_DECREF(x); -+ return ival; -+ } -+} - static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); - } -diff --git a/cylp/cy/CyPEPivot.cpp b/cylp/cy/CyPEPivot.cpp -index e28622e..f4e3db9 100644 ---- a/cylp/cy/CyPEPivot.cpp -+++ b/cylp/cy/CyPEPivot.cpp -@@ -1,14 +1,16 @@ --/* Generated by Cython 0.29.12 */ -+/* 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_12" --#define CYTHON_HEX_VERSION 0x001D0CF0 -+#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) -@@ -449,7 +516,15 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) - #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) -+ #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 - #else - #define CYTHON_PEP393_ENABLED 0 - #define PyUnicode_1BYTE_KIND 1 -@@ -498,8 +573,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact -+#ifndef PyObject_Unicode - #define PyObject_Unicode PyObject_Str - #endif -+#endif - #if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) - #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) -@@ -510,6 +587,13 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #ifndef PySet_CheckExact - #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) - #endif -+#if PY_VERSION_HEX >= 0x030900A4 -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) -+#else -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) -+#endif - #if CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) - #else -@@ -543,13 +627,13 @@ 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) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) -+ #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) - #else - #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) - #endif -@@ -590,11 +674,10 @@ static CYTHON_INLINE float __PYX_NAN() { - #define __Pyx_truncl truncl - #endif - -- -+#define __PYX_MARK_ERR_POS(f_index, lineno) \ -+ { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } - #define __PYX_ERR(f_index, lineno, Ln_error) \ --{ \ -- __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ --} -+ { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } - - #ifndef __PYX_EXTERN_C - #ifdef __cplusplus -@@ -612,7 +695,13 @@ static CYTHON_INLINE float __PYX_NAN() { - #include "pythread.h" - #include "ICoinIndexedVector.hpp" - #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 "ClpDualRowPivot.hpp" - #include "ClpFactorization.hpp" - #include "IClpDualRowPivotBase.h" -@@ -641,11 +730,11 @@ static CYTHON_INLINE float __PYX_NAN() { - #include "OsiSolverInterface.hpp" - #include "CbcCompareUser.hpp" - #include "ICbcModel.hpp" -+#include - #include "ios" - #include "new" - #include "stdexcept" - #include "typeinfo" --#include - #include - #include "IClpPrimalColumnPivotBase.h" - #include "ClpPrimalColumnPivot.hpp" -@@ -746,6 +835,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 -@@ -880,24 +970,24 @@ static const char *__pyx_filename; - - - static const char *__pyx_f[] = { -- "cylp\\cy\\CyPEPivot.pyx", -+ "cylp/cy/CyPEPivot.pyx", - "stringsource", - "__init__.pxd", - "type.pxd", - "bool.pxd", - "complex.pxd", -- "cylp\\cy\\CyCoinIndexedVector.pxd", -- "cylp\\cy\\CyClpDualRowPivotBase.pxd", -- "cylp\\cy\\CyCoinModel.pxd", -- "cylp\\cy\\CyCoinPackedMatrix.pxd", -- "cylp\\cy\\CyCgl.pxd", -- "cylp\\cy\\CyCbcNode.pxd", -- "cylp\\cy\\CyOsiSolverInterface.pxd", -- "cylp\\cy\\CyCbcModel.pxd", -- "cylp\\cy\\CyClpSimplex.pxd", -+ "cylp/cy/CyCoinIndexedVector.pxd", -+ "cylp/cy/CyClpDualRowPivotBase.pxd", -+ "cylp/cy/CyCoinModel.pxd", -+ "cylp/cy/CyCoinPackedMatrix.pxd", -+ "cylp/cy/CyCgl.pxd", -+ "cylp/cy/CyCbcNode.pxd", -+ "cylp/cy/CyOsiSolverInterface.pxd", -+ "cylp/cy/CyCbcModel.pxd", -+ "cylp/cy/CyClpSimplex.pxd", - }; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":776 -+/* "../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 # <<<<<<<<<<<<<< -@@ -906,7 +996,7 @@ static const char *__pyx_f[] = { - */ - typedef npy_int8 __pyx_t_5numpy_int8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":777 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":691 - * - * ctypedef npy_int8 int8_t - * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< -@@ -915,7 +1005,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; - */ - typedef npy_int16 __pyx_t_5numpy_int16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":778 -+/* "../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 # <<<<<<<<<<<<<< -@@ -924,7 +1014,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; - */ - typedef npy_int32 __pyx_t_5numpy_int32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":779 -+/* "../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 # <<<<<<<<<<<<<< -@@ -933,7 +1023,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; - */ - typedef npy_int64 __pyx_t_5numpy_int64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":783 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":697 - * #ctypedef npy_int128 int128_t - * - * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< -@@ -942,7 +1032,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; - */ - typedef npy_uint8 __pyx_t_5numpy_uint8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":784 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":698 - * - * ctypedef npy_uint8 uint8_t - * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< -@@ -951,7 +1041,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; - */ - typedef npy_uint16 __pyx_t_5numpy_uint16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":785 -+/* "../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 # <<<<<<<<<<<<<< -@@ -960,7 +1050,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; - */ - typedef npy_uint32 __pyx_t_5numpy_uint32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":786 -+/* "../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 # <<<<<<<<<<<<<< -@@ -969,7 +1059,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; - */ - typedef npy_uint64 __pyx_t_5numpy_uint64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":790 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":704 - * #ctypedef npy_uint128 uint128_t - * - * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< -@@ -978,7 +1068,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; - */ - typedef npy_float32 __pyx_t_5numpy_float32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":791 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":705 - * - * ctypedef npy_float32 float32_t - * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< -@@ -987,7 +1077,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; - */ - typedef npy_float64 __pyx_t_5numpy_float64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":800 -+/* "../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 # <<<<<<<<<<<<<< -@@ -996,7 +1086,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; - */ - typedef npy_long __pyx_t_5numpy_int_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":801 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1005,7 +1095,7 @@ typedef npy_long __pyx_t_5numpy_int_t; - */ - typedef npy_longlong __pyx_t_5numpy_long_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":802 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1014,7 +1104,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; - */ - typedef npy_longlong __pyx_t_5numpy_longlong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":804 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":718 - * ctypedef npy_longlong longlong_t - * - * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< -@@ -1023,7 +1113,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; - */ - typedef npy_ulong __pyx_t_5numpy_uint_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":805 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":719 - * - * ctypedef npy_ulong uint_t - * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< -@@ -1032,7 +1122,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":806 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1041,7 +1131,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":808 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":722 - * ctypedef npy_ulonglong ulonglong_t - * - * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< -@@ -1050,7 +1140,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - */ - typedef npy_intp __pyx_t_5numpy_intp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":809 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":723 - * - * ctypedef npy_intp intp_t - * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< -@@ -1059,7 +1149,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; - */ - typedef npy_uintp __pyx_t_5numpy_uintp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":811 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":725 - * ctypedef npy_uintp uintp_t - * - * ctypedef npy_double float_t # <<<<<<<<<<<<<< -@@ -1068,7 +1158,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; - */ - typedef npy_double __pyx_t_5numpy_float_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":812 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":726 - * - * ctypedef npy_double float_t - * ctypedef npy_double double_t # <<<<<<<<<<<<<< -@@ -1077,7 +1167,7 @@ typedef npy_double __pyx_t_5numpy_float_t; - */ - typedef npy_double __pyx_t_5numpy_double_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":813 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1140,7 +1230,7 @@ struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus; - struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase; - struct __pyx_obj_4cylp_2cy_9CyPEPivot_CyPEPivot; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":815 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":729 - * ctypedef npy_longdouble longdouble_t - * - * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< -@@ -1149,7 +1239,7 @@ struct __pyx_obj_4cylp_2cy_9CyPEPivot_CyPEPivot; - */ - typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":816 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":730 - * - * ctypedef npy_cfloat cfloat_t - * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< -@@ -1158,7 +1248,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - */ - typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":817 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1167,7 +1257,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - */ - typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":819 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":733 - * ctypedef npy_clongdouble clongdouble_t - * - * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< -@@ -1882,6 +1972,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()\ -@@ -1889,6 +1980,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 */ -@@ -2048,26 +2140,6 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - /* RaiseException.proto */ - static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); - --/* 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); -- - /* GetTopmostException.proto */ - #if CYTHON_USE_EXC_INFO_STACK - static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate); -@@ -2140,6 +2212,9 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam - /* SetVTable.proto */ - static int __Pyx_SetVtable(PyObject *dict, void *vtable); - -+/* PyObjectGetAttrStrNoError.proto */ -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); -+ - /* SetupReduce.proto */ - static int __Pyx_setup_reduce(PyObject* type_obj); - -@@ -2172,11 +2247,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_long(long value); -- --/* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); -+/* GCCDiagnostics.proto */ -+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -+#define __Pyx_HAS_GCC_DIAGNOSTIC -+#endif - - /* RealImag.proto */ - #if CYTHON_CCOMPLEX -@@ -2277,11 +2351,14 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); - #endif - - /* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value); -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); - - /* CIntFromPy.proto */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); - -+/* CIntToPy.proto */ -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); -+ - /* CIntFromPy.proto */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); - -@@ -2406,8 +2483,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.CyClpDualRowPivotBase' */ - static PyTypeObject *__pyx_ptype_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase = 0; -@@ -2470,9 +2556,6 @@ int __pyx_module_is_main_cylp__cy__CyPEPivot = 0; - static PyObject *__pyx_builtin_xrange; - static PyObject *__pyx_builtin_print; - static PyObject *__pyx_builtin_TypeError; --static PyObject *__pyx_builtin_ValueError; --static PyObject *__pyx_builtin_range; --static PyObject *__pyx_builtin_RuntimeError; - static PyObject *__pyx_builtin_ImportError; - static const char __pyx_k_np[] = "np"; - static const char __pyx_k_init[] = "__init__"; -@@ -2500,13 +2583,11 @@ static const char __pyx_k_iteration[] = "iteration"; - static const char __pyx_k_nElements[] = "nElements"; - static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; - static const char __pyx_k_varIsFree[] = "varIsFree"; --static const char __pyx_k_ValueError[] = "ValueError"; - static const char __pyx_k_nVariables[] = "nVariables"; - static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; - static const char __pyx_k_ImportError[] = "ImportError"; - static const char __pyx_k_varNotBasic[] = "varNotBasic"; - static const char __pyx_k_varNotFixed[] = "varNotFixed"; --static const char __pyx_k_RuntimeError[] = "RuntimeError"; - static const char __pyx_k_isCompatible[] = "isCompatible"; - static const char __pyx_k_reducedCosts[] = "reducedCosts"; - static const char __pyx_k_comp_selected[] = " : comp selected"; -@@ -2520,23 +2601,12 @@ static const char __pyx_k_varIsAtLowerBound[] = "varIsAtLowerBound"; - static const char __pyx_k_varIsAtUpperBound[] = "varIsAtUpperBound"; - static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; - static const char __pyx_k_updateColumnTranspose[] = "updateColumnTranspose"; --static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; - static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import"; --static const char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%d)"; --static const char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; --static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; --static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; - static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import"; - static const char __pyx_k_self_CppSelf_cannot_be_converted[] = "self.CppSelf cannot be converted to a Python object for pickling"; --static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; - static PyObject *__pyx_n_s_CyPEPivot; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; - static PyObject *__pyx_n_s_ImportError; --static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; --static PyObject *__pyx_n_s_RuntimeError; - static PyObject *__pyx_n_s_TypeError; --static PyObject *__pyx_n_s_ValueError; - static PyObject *__pyx_n_s_clear; - static PyObject *__pyx_n_s_cline_in_traceback; - static PyObject *__pyx_kp_s_comp_selected; -@@ -2554,8 +2624,6 @@ static PyObject *__pyx_n_s_main; - static PyObject *__pyx_n_s_nElements; - static PyObject *__pyx_n_s_nVariables; - static PyObject *__pyx_n_s_name; --static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous; --static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou; - static PyObject *__pyx_n_s_np; - static PyObject *__pyx_n_s_numpy; - static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; -@@ -2572,7 +2640,6 @@ static PyObject *__pyx_n_s_setstate; - static PyObject *__pyx_n_s_setstate_cython; - static PyObject *__pyx_n_s_test; - static PyObject *__pyx_n_s_transposeTimes; --static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; - static PyObject *__pyx_n_s_updateColumnTranspose; - static PyObject *__pyx_n_s_updateP; - static PyObject *__pyx_n_s_updateW; -@@ -2587,19 +2654,12 @@ static PyObject *__pyx_n_s_xrange; - static int __pyx_pf_4cylp_2cy_9CyPEPivot_9CyPEPivot___init__(struct __pyx_obj_4cylp_2cy_9CyPEPivot_CyPEPivot *__pyx_v_self, PyObject *__pyx_v_cyModel); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_9CyPEPivot_9CyPEPivot_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_9CyPEPivot_CyPEPivot *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_9CyPEPivot_9CyPEPivot_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_9CyPEPivot_CyPEPivot *__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_9CyPEPivot_CyPEPivot(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ - static PyObject *__pyx_int_neg_1; - static PyObject *__pyx_tuple_; - static PyObject *__pyx_tuple__2; - static PyObject *__pyx_tuple__3; - static PyObject *__pyx_tuple__4; --static PyObject *__pyx_tuple__5; --static PyObject *__pyx_tuple__6; --static PyObject *__pyx_tuple__7; --static PyObject *__pyx_tuple__8; --static PyObject *__pyx_tuple__9; - /* Late includes */ - - /* "cylp/cy/CyPEPivot.pyx":12 -@@ -2614,6 +2674,9 @@ static PyObject *__pyx_tuple__9; - static int __pyx_pw_4cylp_2cy_9CyPEPivot_9CyPEPivot_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ - static int __pyx_pw_4cylp_2cy_9CyPEPivot_9CyPEPivot_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_cyModel = 0; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); -@@ -2666,6 +2729,9 @@ static int __pyx_pf_4cylp_2cy_9CyPEPivot_9CyPEPivot___init__(struct __pyx_obj_4c - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__init__", 0); - - /* "cylp/cy/CyPEPivot.pyx":13 -@@ -2773,6 +2839,9 @@ static PyObject *__pyx_f_4cylp_2cy_9CyPEPivot_9CyPEPivot_pivotColumn(struct __py - Py_ssize_t __pyx_t_12; - Py_ssize_t __pyx_t_13; - int __pyx_t_14; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("pivotColumn", 0); - - /* "cylp/cy/CyPEPivot.pyx":19 -@@ -3867,6 +3936,9 @@ static PyObject *__pyx_pf_4cylp_2cy_9CyPEPivot_9CyPEPivot_2__reduce_cython__(CYT - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -3922,6 +3994,9 @@ static PyObject *__pyx_pf_4cylp_2cy_9CyPEPivot_9CyPEPivot_4__setstate_cython__(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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -3952,1918 +4027,331 @@ static PyObject *__pyx_pf_4cylp_2cy_9CyPEPivot_9CyPEPivot_4__setstate_cython__(C - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/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; -- 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); -+ PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; -+ __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":265 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":736 - * -- * 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) # <<<<<<<<<<<<<< - * -+ * cdef inline object PyArray_MultiIterNew2(a, b): - */ -- __pyx_v_endian_detector = 1; -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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) # <<<<<<<<<<<<<< -+ /* "../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) - * -- * ndim = PyArray_NDIM(self) - */ -- __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":268 -- * cdef bint little_endian = ((&endian_detector)[0] != 0) -+ /* 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; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":738 -+ * return PyArray_MultiIterNew(1, a) - * -- * 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) - */ -- __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); - -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -+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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":271 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":739 - * -- * 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) # <<<<<<<<<<<<<< - * -+ * cdef inline object PyArray_MultiIterNew3(a, b, c): - */ -- __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:; -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":270 -- * ndim = PyArray_NDIM(self) -+ /* "../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") -- */ -- if (unlikely(__pyx_t_1)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") # <<<<<<<<<<<<<< -+ * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< -+ * return PyArray_MultiIterNew(2, a, b) - * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) - */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__3, 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) - -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -+ /* 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; -+} - -- /* "../../../../Users/tkral/Anaconda3/lib/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":741 -+ * return PyArray_MultiIterNew(2, a, b) -+ * -+ * 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") - */ -- __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; -- } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":275 -+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); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":742 - * -- * 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) # <<<<<<<<<<<<<< - * -+ * cdef inline object PyArray_MultiIterNew4(a, b, c, d): - */ -- __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:; -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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":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") -- */ -- if (unlikely(__pyx_t_1)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") # <<<<<<<<<<<<<< -+ * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< -+ * return PyArray_MultiIterNew(3, a, b, c) - * -- * info.buf = PyArray_DATA(self) - */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__4, 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) - -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -+ /* 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; -+} - -- /* "../../../../Users/tkral/Anaconda3/lib/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":744 -+ * return PyArray_MultiIterNew(3, a, b, c) - * -- * 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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":279 -+ * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< -+ * return PyArray_MultiIterNew(4, a, b, c, d) - * -- * 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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { - -- /* "../../../../Users/tkral/Anaconda3/lib/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)))); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- */ -- (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); - -- /* "../../../../Users/tkral/Anaconda3/lib/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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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:; - -- /* "../../../../Users/tkral/Anaconda3/lib/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; -+} - -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)); - -- /* "../../../../Users/tkral/Anaconda3/lib/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); - -- /* "../../../../Users/tkral/Anaconda3/lib/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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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 # <<<<<<<<<<<<<< -+ * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -+ * return PyArray_MultiIterNew(5, a, b, c, d, e) - * -- * 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -+ /* 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; -+} - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":303 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 -+ * return PyArray_MultiIterNew(5, a, b, c, d, e) - * -- * if not PyDataType_HASFIELDS(descr): -- * t = descr.type_num # <<<<<<<<<<<<<< -- * if ((descr.byteorder == c'>' and little_endian) or -- * (descr.byteorder == c'<' and not little_endian)): -+ * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -+ * if PyDataType_HASSUBARRAY(d): -+ * return d.subarray.shape - */ -- __pyx_t_4 = __pyx_v_descr->type_num; -- __pyx_v_t = __pyx_t_4; - -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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__5, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]) = '^'; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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'; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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): -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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(); --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -- * 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; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":822 -- * -- * 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, 822, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -- * 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -- * 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; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":825 -- * -- * 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, 825, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -- * 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -- * 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; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":828 -- * -- * 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, 828, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -- * 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -- * 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; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":831 -- * -- * 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, 831, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -- * 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -- * 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; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":834 -- * -- * 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, 834, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -- * 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) -- * -- */ -- -- /* 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -- * 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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -- * -- * 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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":838 -- * 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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -- * -- * cdef inline tuple PyDataType_SHAPE(dtype d): -- * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -- * return d.subarray.shape -- * else: -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":840 -- * 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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -- * 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -- * -- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< -- * # Recursive utility function used in __getbuffer__ to get format -- * # string. The new location in the format string is returned. -- */ -- --static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) { -- PyArray_Descr *__pyx_v_child = 0; -- int __pyx_v_endian_detector; -- int __pyx_v_little_endian; -- PyObject *__pyx_v_fields = 0; -- PyObject *__pyx_v_childname = NULL; -- PyObject *__pyx_v_new_offset = NULL; -- PyObject *__pyx_v_t = NULL; -- char *__pyx_r; -- __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- Py_ssize_t __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- PyObject *__pyx_t_4 = NULL; -- int __pyx_t_5; -- int __pyx_t_6; -- int __pyx_t_7; -- long __pyx_t_8; -- char *__pyx_t_9; -- __Pyx_RefNannySetupContext("_util_dtypestring", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":848 -- * 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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- if (unlikely(__pyx_v_descr->names == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -- __PYX_ERR(2, 851, __pyx_L1_error) -- } -- __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; -- for (;;) { -- if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; -- #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, 851, __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, 851, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- #endif -- __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":852 -- * -- * for childname in descr.names: -- * fields = descr.fields[childname] # <<<<<<<<<<<<<< -- * child, new_offset = fields -- * -- */ -- if (unlikely(__pyx_v_descr->fields == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -- __PYX_ERR(2, 852, __pyx_L1_error) -- } -- __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":853 -- * 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, 853, __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, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- #endif -- } else { -- __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 853, __pyx_L1_error) -- } -- if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3)); -- __pyx_t_3 = 0; -- __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 856, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0); -- if (!__pyx_t_7) { -- goto __pyx_L8_next_or; -- } else { -- } -- __pyx_t_7 = (__pyx_v_little_endian != 0); -- if (!__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_L8_next_or:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":859 -- * -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< -- * raise ValueError(u"Non-native byte order not supported") -- * # One could encode it in the format string and have Cython -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0); -- if (__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0); -- __pyx_t_6 = __pyx_t_7; -- __pyx_L7_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":860 -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * # One could encode it in the format string and have Cython -- * # complain instead, BUT: < and > in format strings also imply -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 860, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 860, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":870 -- * -- * # Output padding bytes -- * while offset[0] < new_offset: # <<<<<<<<<<<<<< -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- */ -- while (1) { -- __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (!__pyx_t_6) break; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":871 -- * # Output padding bytes -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< -- * f += 1 -- * offset[0] += 1 -- */ -- (__pyx_v_f[0]) = 0x78; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":872 -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte -- * f += 1 # <<<<<<<<<<<<<< -- * offset[0] += 1 -- * -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":873 -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- * offset[0] += 1 # <<<<<<<<<<<<<< -- * -- * offset[0] += child.itemsize -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":875 -- * offset[0] += 1 -- * -- * offset[0] += child.itemsize # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(child): -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); -- if (__pyx_t_6) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":878 -- * -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num # <<<<<<<<<<<<<< -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") -- */ -- __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 878, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 880, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":883 -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 98; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":884 -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":885 -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x68; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":886 -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 72; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":887 -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x69; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":888 -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 73; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":889 -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x6C; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":890 -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 76; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":891 -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x71; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":892 -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 81; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":893 -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":894 -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x64; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":895 -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x67; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":896 -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x66; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":897 -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x64; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":898 -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x67; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":899 -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (likely(__pyx_t_6)) { -- (__pyx_v_f[0]) = 79; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":901 -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< -- * f += 1 -- * else: -- */ -- /*else*/ { -- __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 901, __pyx_L1_error) -- } -- __pyx_L15:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":902 -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- * f += 1 # <<<<<<<<<<<<<< -- * else: -- * # Cython ignores struct boundary information ("T{...}"), -- */ -- __pyx_v_f = (__pyx_v_f + 1); -+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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * 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) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":906 -- * # Cython ignores struct boundary information ("T{...}"), -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< -- * return f -- * -+ /* "../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, 906, __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * 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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":907 -- * # 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; -+ } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * 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; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -+/* "../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): # <<<<<<<<<<<<<< -@@ -5875,7 +4363,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1023 -+ /* "../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! # <<<<<<<<<<<<<< -@@ -5884,7 +4372,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - Py_INCREF(__pyx_v_base); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1024 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -5893,7 +4381,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -5905,7 +4393,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyFinishContext(); - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+/* "../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): # <<<<<<<<<<<<<< -@@ -5920,7 +4408,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - int __pyx_t_1; - __Pyx_RefNannySetupContext("get_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1027 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -5929,7 +4417,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - __pyx_v_base = PyArray_BASE(__pyx_v_arr); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -5939,7 +4427,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) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1029 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":936 - * base = PyArray_BASE(arr) - * if base is NULL: - * return None # <<<<<<<<<<<<<< -@@ -5950,7 +4438,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -5959,7 +4447,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1030 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":937 - * if base is NULL: - * return None - * return base # <<<<<<<<<<<<<< -@@ -5971,7 +4459,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = ((PyObject *)__pyx_v_base); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -5986,12 +4474,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { -@@ -6005,13 +4493,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_array", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - { -@@ -6023,20 +4514,20 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1036 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":943 - * cdef inline int import_array() except -1: - * try: -- * _import_array() # <<<<<<<<<<<<<< -+ * __pyx_import_array() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") - */ -- __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1036, __pyx_L3_error) -+ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 943, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - } -@@ -6046,9 +4537,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1037 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":944 - * try: -- * _import_array() -+ * __pyx_import_array() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.multiarray failed to import") - * -@@ -6056,32 +4547,32 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1037, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 944, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 945, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __PYX_ERR(2, 945, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - __Pyx_XGIVEREF(__pyx_t_1); -@@ -6092,12 +4583,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - /* function exit code */ -@@ -6115,7 +4606,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -6134,9 +4625,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_umath", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -6152,16 +4646,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1042 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":949 - * cdef inline int import_umath() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1042, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 949, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -6175,7 +4669,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1043 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":950 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< -@@ -6185,28 +4679,28 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1043, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 950, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 951, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __PYX_ERR(2, 951, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -6221,7 +4715,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -6244,7 +4738,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -6263,9 +4757,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_ufunc", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -6281,16 +4778,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1048 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":955 - * cdef inline int import_ufunc() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1048, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 955, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -6304,69 +4801,246 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1049 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":956 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.umath failed to import") -+ * - */ - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1049, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 956, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1050 -- * _import_umath() -- * except Exception: -- * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":957 -+ * _import_umath() -+ * except Exception: -+ * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< -+ * -+ * cdef extern from *: -+ */ -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 957, __pyx_L5_except_error) -+ __Pyx_GOTREF(__pyx_t_8); -+ __Pyx_Raise(__pyx_t_8, 0, 0, 0); -+ __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -+ __PYX_ERR(2, 957, __pyx_L5_except_error) -+ } -+ goto __pyx_L5_except_error; -+ __pyx_L5_except_error:; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 -+ * -+ * cdef inline int import_ufunc() except -1: -+ * try: # <<<<<<<<<<<<<< -+ * _import_umath() -+ * except Exception: -+ */ -+ __Pyx_XGIVEREF(__pyx_t_1); -+ __Pyx_XGIVEREF(__pyx_t_2); -+ __Pyx_XGIVEREF(__pyx_t_3); -+ __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); -+ goto __pyx_L1_error; -+ __pyx_L8_try_end:; -+ } -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 -+ * raise ImportError("numpy.core.umath failed to import") -+ * -+ * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -+ * try: -+ * _import_umath() -+ */ -+ -+ /* function exit code */ -+ __pyx_r = 0; -+ goto __pyx_L0; -+ __pyx_L1_error:; -+ __Pyx_XDECREF(__pyx_t_5); -+ __Pyx_XDECREF(__pyx_t_6); -+ __Pyx_XDECREF(__pyx_t_7); -+ __Pyx_XDECREF(__pyx_t_8); -+ __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -+ __pyx_r = -1; -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_timedelta64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":979 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_datetime64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":994 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { -+ npy_datetime __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1004 -+ * also needed. That can be found using `get_datetime64_unit`. -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1050, __pyx_L5_except_error) -- __Pyx_GOTREF(__pyx_t_8); -- __Pyx_Raise(__pyx_t_8, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1050, __pyx_L5_except_error) -- } -- goto __pyx_L5_except_error; -- __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { -+ npy_timedelta __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1011 -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * - * -- * cdef inline int import_ufunc() except -1: -- * try: # <<<<<<<<<<<<<< -- * _import_umath() -- * except Exception: - */ -- __Pyx_XGIVEREF(__pyx_t_1); -- __Pyx_XGIVEREF(__pyx_t_2); -- __Pyx_XGIVEREF(__pyx_t_3); -- __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); -- goto __pyx_L1_error; -- __pyx_L8_try_end:; -- } -+ __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -- * raise ImportError("numpy.core.umath failed to import") -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 - * -- * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -- * try: -- * _import_umath() -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object - */ - - /* function exit code */ -- __pyx_r = 0; -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { -+ NPY_DATETIMEUNIT __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1018 -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ * """ -+ * return (obj).obmeta.base # <<<<<<<<<<<<<< -+ */ -+ __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); - goto __pyx_L0; -- __pyx_L1_error:; -- __Pyx_XDECREF(__pyx_t_5); -- __Pyx_XDECREF(__pyx_t_6); -- __Pyx_XDECREF(__pyx_t_7); -- __Pyx_XDECREF(__pyx_t_8); -- __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -- __pyx_r = -1; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+ /* function exit code */ - __pyx_L0:; -- __Pyx_RefNannyFinishContext(); - return __pyx_r; - } - static struct __pyx_vtabstruct_4cylp_2cy_9CyPEPivot_CyPEPivot __pyx_vtable_4cylp_2cy_9CyPEPivot_CyPEPivot; -@@ -6414,7 +5088,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_9CyPEPivot_CyPEPivot = { - sizeof(struct __pyx_obj_4cylp_2cy_9CyPEPivot_CyPEPivot), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_9CyPEPivot_CyPEPivot, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -6467,6 +5146,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_9CyPEPivot_CyPEPivot = { - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyMethodDef __pyx_methods[] = { -@@ -6516,13 +5201,8 @@ static struct PyModuleDef __pyx_moduledef = { - - static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_CyPEPivot, __pyx_k_CyPEPivot, sizeof(__pyx_k_CyPEPivot), 0, 0, 1, 1}, -- {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, -- {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, - {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, -- {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, -- {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, -- {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_n_s_clear, __pyx_k_clear, sizeof(__pyx_k_clear), 0, 0, 1, 1}, - {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, - {&__pyx_kp_s_comp_selected, __pyx_k_comp_selected, sizeof(__pyx_k_comp_selected), 0, 0, 1, 0}, -@@ -6540,8 +5220,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_nElements, __pyx_k_nElements, sizeof(__pyx_k_nElements), 0, 0, 1, 1}, - {&__pyx_n_s_nVariables, __pyx_k_nVariables, sizeof(__pyx_k_nVariables), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, -- {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, -- {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, - {&__pyx_n_s_np, __pyx_k_np, sizeof(__pyx_k_np), 0, 0, 1, 1}, - {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1}, - {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0}, -@@ -6558,7 +5236,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, - {&__pyx_n_s_transposeTimes, __pyx_k_transposeTimes, sizeof(__pyx_k_transposeTimes), 0, 0, 1, 1}, -- {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, - {&__pyx_n_s_updateColumnTranspose, __pyx_k_updateColumnTranspose, sizeof(__pyx_k_updateColumnTranspose), 0, 0, 1, 1}, - {&__pyx_n_s_updateP, __pyx_k_updateP, sizeof(__pyx_k_updateP), 0, 0, 1, 1}, - {&__pyx_n_s_updateW, __pyx_k_updateW, sizeof(__pyx_k_updateW), 0, 0, 1, 1}, -@@ -6580,10 +5257,7 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - #endif - __pyx_builtin_print = __Pyx_GetBuiltinName(__pyx_n_s_print); if (!__pyx_builtin_print) __PYX_ERR(0, 71, __pyx_L1_error) - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(1, 2, __pyx_L1_error) -- __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(2, 272, __pyx_L1_error) -- __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(2, 285, __pyx_L1_error) -- __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(2, 856, __pyx_L1_error) -- __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 1038, __pyx_L1_error) -+ __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 945, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -@@ -6612,82 +5286,27 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_GOTREF(__pyx_tuple__2); - __Pyx_GIVEREF(__pyx_tuple__2); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":272 -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(2, 272, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__3); -- __Pyx_GIVEREF(__pyx_tuple__3); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":276 -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 276, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__4); -- __Pyx_GIVEREF(__pyx_tuple__4); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":306 -- * if ((descr.byteorder == c'>' and little_endian) or -- * (descr.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * if t == NPY_BYTE: f = "b" -- * elif t == NPY_UBYTE: f = "B" -- */ -- __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(2, 306, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__5); -- __Pyx_GIVEREF(__pyx_tuple__5); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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_tuple__6 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__6); -- __Pyx_GIVEREF(__pyx_tuple__6); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__7); -- __Pyx_GIVEREF(__pyx_tuple__7); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(2, 1038, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__8); -- __Pyx_GIVEREF(__pyx_tuple__8); -+ __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(2, 945, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__3); -+ __Pyx_GIVEREF(__pyx_tuple__3); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(2, 1044, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__9); -- __Pyx_GIVEREF(__pyx_tuple__9); -+ __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 951, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__4); -+ __Pyx_GIVEREF(__pyx_tuple__4); - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; -@@ -6738,6 +5357,9 @@ static int __Pyx_modinit_function_export_code(void) { - static int __Pyx_modinit_type_init_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyClpPrimalColumnPivotBase"); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) -@@ -6774,6 +5396,9 @@ static int __Pyx_modinit_type_init_code(void) { - static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error) -@@ -6803,18 +5428,38 @@ static int __Pyx_modinit_type_import_code(void) { - if (!__pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector) __PYX_ERR(6, 22, __pyx_L1_error) - __pyx_vtabptr_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector = (struct __pyx_vtabstruct_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector*)__Pyx_GetVtable(__pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector->tp_dict); if (unlikely(!__pyx_vtabptr_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector)) __PYX_ERR(6, 22, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 206, __pyx_L1_error) -+ __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 206, __pyx_L1_error) -- __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 229, __pyx_L1_error) -- __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 233, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 200, __pyx_L1_error) -+ __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 223, __pyx_L1_error) -+ __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 227, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 242, __pyx_L1_error) -- __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 918, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 239, __pyx_L1_error) -+ __pyx_ptype_5numpy_generic = __Pyx_ImportType(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 771, __pyx_L1_error) -+ __pyx_ptype_5numpy_number = __Pyx_ImportType(__pyx_t_1, "numpy", "number", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 773, __pyx_L1_error) -+ __pyx_ptype_5numpy_integer = __Pyx_ImportType(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 775, __pyx_L1_error) -+ __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 777, __pyx_L1_error) -+ __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 779, __pyx_L1_error) -+ __pyx_ptype_5numpy_inexact = __Pyx_ImportType(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 781, __pyx_L1_error) -+ __pyx_ptype_5numpy_floating = __Pyx_ImportType(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 783, __pyx_L1_error) -+ __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 785, __pyx_L1_error) -+ __pyx_ptype_5numpy_flexible = __Pyx_ImportType(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 787, __pyx_L1_error) -+ __pyx_ptype_5numpy_character = __Pyx_ImportType(__pyx_t_1, "numpy", "character", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 789, __pyx_L1_error) -+ __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 827, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyClpDualRowPivotBase"); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 72, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); -@@ -6917,13 +5562,17 @@ static int __Pyx_modinit_variable_import_code(void) { - static int __Pyx_modinit_function_import_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); - /*--- Function import code ---*/ - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyClpPrimalColumnPivotBase"); if (!__pyx_t_1) __PYX_ERR(0, 1, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_ImportFunction(__pyx_t_1, "RunPivotColumn", (void (**)(void))&__pyx_f_4cylp_2cy_26CyClpPrimalColumnPivotBase_RunPivotColumn, "int (void *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *)") < 0) __PYX_ERR(0, 1, __pyx_L1_error) - if (__Pyx_ImportFunction(__pyx_t_1, "RunClone", (void (**)(void))&__pyx_f_4cylp_2cy_26CyClpPrimalColumnPivotBase_RunClone, "ClpPrimalColumnPivot *(void *, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error) - if (__Pyx_ImportFunction(__pyx_t_1, "RunSaveWeights", (void (**)(void))&__pyx_f_4cylp_2cy_26CyClpPrimalColumnPivotBase_RunSaveWeights, "void (void *, IClpSimplex *, int)") < 0) __PYX_ERR(0, 1, __pyx_L1_error) -- Py_DECREF(__pyx_t_1); __pyx_t_1 = 0; -+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; -@@ -6933,17 +5582,19 @@ static int __Pyx_modinit_function_import_code(void) { - } - - --#if PY_MAJOR_VERSION < 3 --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC void --#else -+#ifndef CYTHON_NO_PYINIT_EXPORT - #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#elif PY_MAJOR_VERSION < 3 -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" void -+#else -+#define __Pyx_PyMODINIT_FUNC void - #endif - #else --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC PyObject * -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * - #else --#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#define __Pyx_PyMODINIT_FUNC PyObject * - #endif - #endif - -@@ -7025,6 +5676,9 @@ static CYTHON_SMALL_CODE int __pyx_pymod_exec_CyPEPivot(PyObject *__pyx_pyinit_m - #endif - { - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { -@@ -7072,11 +5726,9 @@ if (!__Pyx_RefNanny) { - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ -- #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS -- #ifdef WITH_THREAD /* Python build with threading support? */ -+ #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - PyEval_InitThreads(); - #endif -- #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; -@@ -7113,17 +5765,17 @@ if (!__Pyx_RefNanny) { - } - #endif - /*--- Builtin init code ---*/ -- if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Constants init code ---*/ -- if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(); - (void)__Pyx_modinit_variable_export_code(); - (void)__Pyx_modinit_function_export_code(); -- if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; -- if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; -+ if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(0, 1, __pyx_L1_error) -+ if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(0, 1, __pyx_L1_error) - (void)__Pyx_modinit_variable_import_code(); -- if (unlikely(__Pyx_modinit_function_import_code() != 0)) goto __pyx_L1_error; -+ if (unlikely(__Pyx_modinit_function_import_code() < 0)) __PYX_ERR(0, 1, __pyx_L1_error) - /*--- Execution code ---*/ - #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) - if (__Pyx_patch_abc() < 0) __PYX_ERR(0, 1, __pyx_L1_error) -@@ -7151,12 +5803,12 @@ if (!__Pyx_RefNanny) { - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -- * raise ImportError("numpy.core.umath failed to import") -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -- * try: -- * _import_umath() -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ - - /*--- Wrapped vars code ---*/ -@@ -7265,7 +5917,7 @@ static int __Pyx_ParseOptionalKeywords( - } - name = first_kw_arg; - #if PY_MAJOR_VERSION < 3 -- if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { -+ if (likely(PyString_Check(key))) { - while (*name) { - if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) - && _PyString_Eq(**name, key)) { -@@ -7292,7 +5944,7 @@ static int __Pyx_ParseOptionalKeywords( - while (*name) { - int cmp = (**name == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 -- (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : -+ (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**name, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; -@@ -7308,7 +5960,7 @@ static int __Pyx_ParseOptionalKeywords( - while (argname != first_kw_arg) { - int cmp = (**argname == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 -- (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : -+ (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**argname, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; -@@ -7530,7 +6182,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, - #if CYTHON_COMPILING_IN_CPYTHON - static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; -- ternaryfunc call = func->ob_type->tp_call; -+ ternaryfunc call = Py_TYPE(func)->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -@@ -7617,7 +6269,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec - if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { - return __Pyx_PyObject_CallMethO(func, arg); - #if CYTHON_FAST_PYCCALL -- } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { -+ } else if (__Pyx_PyFastCFunction_Check(func)) { - return __Pyx_PyCFunction_FastCall(func, &arg, 1); - #endif - } -@@ -7941,7 +6593,7 @@ static PyObject *__Pyx_PyLong_AbsNeg(PyObject *n) { - { - PyObject *copy = _PyLong_Copy((PyLongObject*)n); - if (likely(copy)) { -- Py_SIZE(copy) = -(Py_SIZE(copy)); -+ __Pyx_SET_SIZE(copy, -Py_SIZE(copy)); - } - return copy; - } -@@ -8134,48 +6786,6 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject - } - #endif - --/* DictGetItem */ --#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY --static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { -- PyObject *value; -- value = PyDict_GetItemWithError(d, key); -- if (unlikely(!value)) { -- if (!PyErr_Occurred()) { -- if (unlikely(PyTuple_Check(key))) { -- PyObject* args = PyTuple_Pack(1, key); -- if (likely(args)) { -- PyErr_SetObject(PyExc_KeyError, args); -- Py_DECREF(args); -- } -- } else { -- PyErr_SetObject(PyExc_KeyError, key); -- } -- } -- return NULL; -- } -- Py_INCREF(value); -- return value; --} --#endif -- --/* RaiseTooManyValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { -- PyErr_Format(PyExc_ValueError, -- "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); --} -- --/* RaiseNeedMoreValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { -- PyErr_Format(PyExc_ValueError, -- "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", -- index, (index == 1) ? "" : "s"); --} -- --/* RaiseNoneIterError */ --static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); --} -- - /* GetTopmostException */ - #if CYTHON_USE_EXC_INFO_STACK - static _PyErr_StackItem * -@@ -8514,6 +7124,28 @@ static int __Pyx_SetVtable(PyObject *dict, void *vtable) { - return -1; - } - -+/* PyObjectGetAttrStrNoError */ -+static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { -+ __Pyx_PyThreadState_declare -+ __Pyx_PyThreadState_assign -+ if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) -+ __Pyx_PyErr_Clear(); -+} -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { -+ PyObject *result; -+#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 -+ PyTypeObject* tp = Py_TYPE(obj); -+ if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { -+ return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); -+ } -+#endif -+ result = __Pyx_PyObject_GetAttrStr(obj, attr_name); -+ if (unlikely(!result)) { -+ __Pyx_PyObject_GetAttrStr_ClearAttributeError(); -+ } -+ return result; -+} -+ - /* SetupReduce */ - static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { - int ret; -@@ -8541,43 +7173,51 @@ static int __Pyx_setup_reduce(PyObject* type_obj) { - PyObject *setstate = NULL; - PyObject *setstate_cython = NULL; - #if CYTHON_USE_PYTYPE_LOOKUP -- if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #else -- if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #endif - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #else -- object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #endif -- reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; -+ reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; - if (reduce_ex == object_reduce_ex) { - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #else -- object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #endif -- reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; -+ reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; - if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { -- reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; -+ reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); -+ if (likely(reduce_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (reduce == object_reduce || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); - if (!setstate) PyErr_Clear(); - if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { -- setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; -+ setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); -+ if (likely(setstate_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (!setstate || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - } - PyType_Modified((PyTypeObject*)type_obj); - } - } -- goto GOOD; --BAD: -+ goto __PYX_GOOD; -+__PYX_BAD: - if (!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); - ret = -1; --GOOD: -+__PYX_GOOD: - #if !CYTHON_USE_PYTYPE_LOOKUP - Py_XDECREF(object_reduce); - Py_XDECREF(object_reduce_ex); -@@ -8620,7 +7260,7 @@ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { - { - #if PY_MAJOR_VERSION >= 3 - if (level == -1) { -- if (strchr(__Pyx_MODULE_NAME, '.')) { -+ if ((1) && (strchr(__Pyx_MODULE_NAME, '.'))) { - module = PyImport_ImportModuleLevelObject( - name, global_dict, empty_dict, list, 1); - if (!module) { -@@ -8657,7 +7297,7 @@ static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level) { - - /* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK --static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { -+static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) { - PyObject *use_cline; - PyObject *ptype, *pvalue, *ptraceback; - #if CYTHON_COMPILING_IN_CPYTHON -@@ -8687,7 +7327,7 @@ static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { - } - if (!use_cline) { - c_line = 0; -- PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); -+ (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; -@@ -8761,7 +7401,7 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - if (__pyx_code_cache.count == __pyx_code_cache.max_count) { - int new_max = __pyx_code_cache.max_count + 64; - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( -- __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); -+ __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); - if (unlikely(!entries)) { - return; - } -@@ -8784,30 +7424,31 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { -- PyCodeObject *py_code = 0; -- PyObject *py_srcfile = 0; -- PyObject *py_funcname = 0; -+ PyCodeObject *py_code = NULL; -+ PyObject *py_funcname = NULL; - #if PY_MAJOR_VERSION < 3 -+ PyObject *py_srcfile = NULL; - py_srcfile = PyString_FromString(filename); -- #else -- py_srcfile = PyUnicode_FromString(filename); -- #endif - if (!py_srcfile) goto bad; -+ #endif - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; -+ funcname = PyUnicode_AsUTF8(py_funcname); -+ if (!funcname) goto bad; - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); -- #else -- py_funcname = PyUnicode_FromString(funcname); -+ if (!py_funcname) goto bad; - #endif - } -- if (!py_funcname) goto bad; -+ #if PY_MAJOR_VERSION < 3 - py_code = __Pyx_PyCode_New( - 0, - 0, -@@ -8826,11 +7467,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); -- Py_DECREF(py_funcname); -+ #else -+ py_code = PyCode_NewEmpty(filename, funcname, py_line); -+ #endif -+ Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline - return py_code; - bad: -- Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); -+ #if PY_MAJOR_VERSION < 3 -+ Py_XDECREF(py_srcfile); -+ #endif - return NULL; - } - static void __Pyx_AddTraceback(const char *funcname, int c_line, -@@ -8862,37 +7508,6 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - Py_XDECREF(py_frame); - } - --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(long) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(long) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(long) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(long), -- little, !is_unsigned); -- } --} -- - /* CIntFromPyVerify */ - #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ - __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) -@@ -8915,37 +7530,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - return (target_type) value;\ - } - --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(int) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(int) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(int) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(int), -- little, !is_unsigned); -- } --} -- - /* Declarations */ - #if CYTHON_CCOMPLEX - #ifdef __cplusplus -@@ -9063,7 +7647,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_float(a, a); - return __Pyx_c_prod_float(a, a); - case 3: - z = __Pyx_c_prod_float(a, a); -@@ -9218,7 +7801,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_double(a, a); - return __Pyx_c_prod_double(a, a); - case 3: - z = __Pyx_c_prod_double(a, a); -@@ -9257,24 +7839,31 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - #endif - - /* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { -- const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0; -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { -- if (sizeof(enum NPY_TYPES) < sizeof(long)) { -+ if (sizeof(long) < sizeof(long)) { - return PyInt_FromLong((long) value); -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { -+ } else if (sizeof(long) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); - #ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { -+ } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); - #endif - } - } else { -- if (sizeof(enum NPY_TYPES) <= sizeof(long)) { -+ if (sizeof(long) <= sizeof(long)) { - return PyInt_FromLong((long) value); - #ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { -+ } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); - #endif - } -@@ -9282,14 +7871,21 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES v - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), -+ return _PyLong_FromByteArray(bytes, sizeof(long), - little, !is_unsigned); - } - } - - /* CIntFromPy */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -9476,9 +8072,54 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - return (int) -1; - } - -+/* CIntToPy */ -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif -+ const int is_unsigned = neg_one > const_zero; -+ if (is_unsigned) { -+ if (sizeof(int) < sizeof(long)) { -+ return PyInt_FromLong((long) value); -+ } else if (sizeof(int) <= sizeof(unsigned long)) { -+ return PyLong_FromUnsignedLong((unsigned long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -+ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+#endif -+ } -+ } else { -+ if (sizeof(int) <= sizeof(long)) { -+ return PyInt_FromLong((long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -+ return PyLong_FromLongLong((PY_LONG_LONG) value); -+#endif -+ } -+ } -+ { -+ int one = 1; int little = (int)*(unsigned char *)&one; -+ unsigned char *bytes = (unsigned char *)&value; -+ return _PyLong_FromByteArray(bytes, sizeof(int), -+ little, !is_unsigned); -+ } -+} -+ - /* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -10083,6 +8724,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_DECREF(x); - return ival; - } -+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { -+ if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { -+ return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); -+#if PY_MAJOR_VERSION < 3 -+ } else if (likely(PyInt_CheckExact(o))) { -+ return PyInt_AS_LONG(o); -+#endif -+ } else { -+ Py_ssize_t ival; -+ PyObject *x; -+ x = PyNumber_Index(o); -+ if (!x) return -1; -+ ival = PyInt_AsLong(x); -+ Py_DECREF(x); -+ return ival; -+ } -+} - static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); - } -diff --git a/cylp/cy/CyPivotPythonBase.cpp b/cylp/cy/CyPivotPythonBase.cpp -index dfb373e..ad6db3d 100644 ---- a/cylp/cy/CyPivotPythonBase.cpp -+++ b/cylp/cy/CyPivotPythonBase.cpp -@@ -1,14 +1,16 @@ --/* Generated by Cython 0.29.12 */ -+/* 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_12" --#define CYTHON_HEX_VERSION 0x001D0CF0 -+#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) -@@ -449,7 +516,15 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) - #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) -+ #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 - #else - #define CYTHON_PEP393_ENABLED 0 - #define PyUnicode_1BYTE_KIND 1 -@@ -498,8 +573,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact -+#ifndef PyObject_Unicode - #define PyObject_Unicode PyObject_Str - #endif -+#endif - #if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) - #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) -@@ -510,6 +587,13 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #ifndef PySet_CheckExact - #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) - #endif -+#if PY_VERSION_HEX >= 0x030900A4 -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) -+#else -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) -+#endif - #if CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) - #else -@@ -543,13 +627,13 @@ 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) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) -+ #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) - #else - #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) - #endif -@@ -590,11 +674,10 @@ static CYTHON_INLINE float __PYX_NAN() { - #define __Pyx_truncl truncl - #endif - -- -+#define __PYX_MARK_ERR_POS(f_index, lineno) \ -+ { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } - #define __PYX_ERR(f_index, lineno, Ln_error) \ --{ \ -- __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ --} -+ { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } - - #ifndef __PYX_EXTERN_C - #ifdef __cplusplus -@@ -612,7 +695,13 @@ static CYTHON_INLINE float __PYX_NAN() { - #include "pythread.h" - #include "ICoinIndexedVector.hpp" - #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 "ClpDualRowPivot.hpp" - #include "ClpFactorization.hpp" - #include "IClpDualRowPivotBase.h" -@@ -641,11 +730,11 @@ static CYTHON_INLINE float __PYX_NAN() { - #include "OsiSolverInterface.hpp" - #include "CbcCompareUser.hpp" - #include "ICbcModel.hpp" -+#include - #include "ios" - #include "new" - #include "stdexcept" - #include "typeinfo" --#include - #include - #include "IClpPrimalColumnPivotBase.h" - #include "ClpPrimalColumnPivot.hpp" -@@ -746,6 +835,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 -@@ -881,23 +971,23 @@ static const char *__pyx_filename; - - static const char *__pyx_f[] = { - "stringsource", -- "cylp\\cy\\CyPivotPythonBase.pyx", -+ "cylp/cy/CyPivotPythonBase.pyx", - "__init__.pxd", - "type.pxd", - "bool.pxd", - "complex.pxd", -- "cylp\\cy\\CyCoinIndexedVector.pxd", -- "cylp\\cy\\CyClpDualRowPivotBase.pxd", -- "cylp\\cy\\CyCoinModel.pxd", -- "cylp\\cy\\CyCoinPackedMatrix.pxd", -- "cylp\\cy\\CyCgl.pxd", -- "cylp\\cy\\CyCbcNode.pxd", -- "cylp\\cy\\CyOsiSolverInterface.pxd", -- "cylp\\cy\\CyCbcModel.pxd", -- "cylp\\cy\\CyClpSimplex.pxd", -+ "cylp/cy/CyCoinIndexedVector.pxd", -+ "cylp/cy/CyClpDualRowPivotBase.pxd", -+ "cylp/cy/CyCoinModel.pxd", -+ "cylp/cy/CyCoinPackedMatrix.pxd", -+ "cylp/cy/CyCgl.pxd", -+ "cylp/cy/CyCbcNode.pxd", -+ "cylp/cy/CyOsiSolverInterface.pxd", -+ "cylp/cy/CyCbcModel.pxd", -+ "cylp/cy/CyClpSimplex.pxd", - }; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":776 -+/* "../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 # <<<<<<<<<<<<<< -@@ -906,7 +996,7 @@ static const char *__pyx_f[] = { - */ - typedef npy_int8 __pyx_t_5numpy_int8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":777 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":691 - * - * ctypedef npy_int8 int8_t - * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< -@@ -915,7 +1005,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; - */ - typedef npy_int16 __pyx_t_5numpy_int16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":778 -+/* "../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 # <<<<<<<<<<<<<< -@@ -924,7 +1014,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; - */ - typedef npy_int32 __pyx_t_5numpy_int32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":779 -+/* "../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 # <<<<<<<<<<<<<< -@@ -933,7 +1023,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; - */ - typedef npy_int64 __pyx_t_5numpy_int64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":783 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":697 - * #ctypedef npy_int128 int128_t - * - * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< -@@ -942,7 +1032,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; - */ - typedef npy_uint8 __pyx_t_5numpy_uint8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":784 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":698 - * - * ctypedef npy_uint8 uint8_t - * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< -@@ -951,7 +1041,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; - */ - typedef npy_uint16 __pyx_t_5numpy_uint16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":785 -+/* "../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 # <<<<<<<<<<<<<< -@@ -960,7 +1050,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; - */ - typedef npy_uint32 __pyx_t_5numpy_uint32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":786 -+/* "../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 # <<<<<<<<<<<<<< -@@ -969,7 +1059,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; - */ - typedef npy_uint64 __pyx_t_5numpy_uint64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":790 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":704 - * #ctypedef npy_uint128 uint128_t - * - * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< -@@ -978,7 +1068,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; - */ - typedef npy_float32 __pyx_t_5numpy_float32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":791 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":705 - * - * ctypedef npy_float32 float32_t - * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< -@@ -987,7 +1077,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; - */ - typedef npy_float64 __pyx_t_5numpy_float64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":800 -+/* "../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 # <<<<<<<<<<<<<< -@@ -996,7 +1086,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; - */ - typedef npy_long __pyx_t_5numpy_int_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":801 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1005,7 +1095,7 @@ typedef npy_long __pyx_t_5numpy_int_t; - */ - typedef npy_longlong __pyx_t_5numpy_long_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":802 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1014,7 +1104,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; - */ - typedef npy_longlong __pyx_t_5numpy_longlong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":804 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":718 - * ctypedef npy_longlong longlong_t - * - * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< -@@ -1023,7 +1113,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; - */ - typedef npy_ulong __pyx_t_5numpy_uint_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":805 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":719 - * - * ctypedef npy_ulong uint_t - * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< -@@ -1032,7 +1122,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":806 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1041,7 +1131,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":808 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":722 - * ctypedef npy_ulonglong ulonglong_t - * - * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< -@@ -1050,7 +1140,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - */ - typedef npy_intp __pyx_t_5numpy_intp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":809 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":723 - * - * ctypedef npy_intp intp_t - * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< -@@ -1059,7 +1149,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; - */ - typedef npy_uintp __pyx_t_5numpy_uintp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":811 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":725 - * ctypedef npy_uintp uintp_t - * - * ctypedef npy_double float_t # <<<<<<<<<<<<<< -@@ -1068,7 +1158,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; - */ - typedef npy_double __pyx_t_5numpy_float_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":812 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":726 - * - * ctypedef npy_double float_t - * ctypedef npy_double double_t # <<<<<<<<<<<<<< -@@ -1077,7 +1167,7 @@ typedef npy_double __pyx_t_5numpy_float_t; - */ - typedef npy_double __pyx_t_5numpy_double_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":813 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1140,7 +1230,7 @@ struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus; - struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase; - struct __pyx_obj_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":815 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":729 - * ctypedef npy_longdouble longdouble_t - * - * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< -@@ -1149,7 +1239,7 @@ struct __pyx_obj_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase; - */ - typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":816 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":730 - * - * ctypedef npy_cfloat cfloat_t - * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< -@@ -1158,7 +1248,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - */ - typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":817 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1167,7 +1257,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - */ - typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":819 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":733 - * ctypedef npy_clongdouble clongdouble_t - * - * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< -@@ -1880,6 +1970,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()\ -@@ -1887,6 +1978,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 */ -@@ -1958,29 +2050,6 @@ static void __Pyx_WriteUnraisable(const char *name, int clineno, - /* RaiseException.proto */ - static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); - --/* 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); -@@ -2053,6 +2122,9 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam - /* SetVTable.proto */ - static int __Pyx_SetVtable(PyObject *dict, void *vtable); - -+/* PyObjectGetAttrStrNoError.proto */ -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); -+ - /* SetupReduce.proto */ - static int __Pyx_setup_reduce(PyObject* type_obj); - -@@ -2108,8 +2180,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); -+/* GCCDiagnostics.proto */ -+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -+#define __Pyx_HAS_GCC_DIAGNOSTIC -+#endif - - /* RealImag.proto */ - #if CYTHON_CCOMPLEX -@@ -2210,10 +2284,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); - #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 *); -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); - - /* CIntToPy.proto */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); -@@ -2221,6 +2292,9 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); - /* CIntFromPy.proto */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); - -+/* CIntFromPy.proto */ -+static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); -+ - /* FastTypeChecks.proto */ - #if CYTHON_COMPILING_IN_CPYTHON - #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) -@@ -2342,8 +2416,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.CyClpDualRowPivotBase' */ - static PyTypeObject *__pyx_ptype_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase = 0; -@@ -2404,61 +2487,41 @@ int __pyx_module_is_main_cylp__cy__CyPivotPythonBase = 0; - - /* Implementation of 'cylp.cy.CyPivotPythonBase' */ - static PyObject *__pyx_builtin_TypeError; --static PyObject *__pyx_builtin_ValueError; --static PyObject *__pyx_builtin_range; --static PyObject *__pyx_builtin_RuntimeError; - static PyObject *__pyx_builtin_ImportError; - static const char __pyx_k_init[] = "__init__"; - static const char __pyx_k_main[] = "__main__"; - static const char __pyx_k_name[] = "__name__"; - static const char __pyx_k_test[] = "__test__"; --static const char __pyx_k_range[] = "range"; - static const char __pyx_k_reduce[] = "__reduce__"; - static const char __pyx_k_getstate[] = "__getstate__"; - static const char __pyx_k_setstate[] = "__setstate__"; - static const char __pyx_k_TypeError[] = "TypeError"; - static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; --static const char __pyx_k_ValueError[] = "ValueError"; - static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; - static const char __pyx_k_ImportError[] = "ImportError"; - static const char __pyx_k_pivotColumn[] = "pivotColumn"; - static const char __pyx_k_saveWeights[] = "saveWeights"; --static const char __pyx_k_RuntimeError[] = "RuntimeError"; - static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; - static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; - static const char __pyx_k_CyPivotPythonBase[] = "CyPivotPythonBase"; - static const char __pyx_k_pivotMethodObject[] = "pivotMethodObject"; - static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; --static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; - static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import"; --static const char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%d)"; --static const char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; --static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; --static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; - static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import"; - static const char __pyx_k_self_CppSelf_cannot_be_converted[] = "self.CppSelf cannot be converted to a Python object for pickling"; --static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; - static PyObject *__pyx_n_s_CyPivotPythonBase; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; - static PyObject *__pyx_n_s_ImportError; --static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; --static PyObject *__pyx_n_s_RuntimeError; - static PyObject *__pyx_n_s_TypeError; --static PyObject *__pyx_n_s_ValueError; - static PyObject *__pyx_n_s_cline_in_traceback; - static PyObject *__pyx_n_s_getstate; - static PyObject *__pyx_n_s_init; - static PyObject *__pyx_n_s_main; - static PyObject *__pyx_n_s_name; --static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous; --static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou; - static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; - static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; - static PyObject *__pyx_n_s_pivotColumn; - static PyObject *__pyx_n_s_pivotMethodObject; - static PyObject *__pyx_n_s_pyx_vtable; --static PyObject *__pyx_n_s_range; - static PyObject *__pyx_n_s_reduce; - static PyObject *__pyx_n_s_reduce_cython; - static PyObject *__pyx_n_s_reduce_ex; -@@ -2467,23 +2530,15 @@ static PyObject *__pyx_kp_s_self_CppSelf_cannot_be_converted; - static PyObject *__pyx_n_s_setstate; - static PyObject *__pyx_n_s_setstate_cython; - static PyObject *__pyx_n_s_test; --static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; - static int __pyx_pf_4cylp_2cy_17CyPivotPythonBase_17CyPivotPythonBase___init__(struct __pyx_obj_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase *__pyx_v_self, PyObject *__pyx_v_pivotMethodObject); /* proto */ - static void __pyx_pf_4cylp_2cy_17CyPivotPythonBase_17CyPivotPythonBase_2__dealloc__(struct __pyx_obj_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_17CyPivotPythonBase_17CyPivotPythonBase_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_17CyPivotPythonBase_17CyPivotPythonBase_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase *__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_17CyPivotPythonBase_CyPivotPythonBase(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ - static PyObject *__pyx_tuple_; - static PyObject *__pyx_tuple__2; - static PyObject *__pyx_tuple__3; - static PyObject *__pyx_tuple__4; --static PyObject *__pyx_tuple__5; --static PyObject *__pyx_tuple__6; --static PyObject *__pyx_tuple__7; --static PyObject *__pyx_tuple__8; --static PyObject *__pyx_tuple__9; - /* Late includes */ - - /* "cylp/cy/CyPivotPythonBase.pyx":7 -@@ -2498,6 +2553,9 @@ static PyObject *__pyx_tuple__9; - static int __pyx_pw_4cylp_2cy_17CyPivotPythonBase_17CyPivotPythonBase_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ - static int __pyx_pw_4cylp_2cy_17CyPivotPythonBase_17CyPivotPythonBase_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_pivotMethodObject = 0; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - int __pyx_r; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); -@@ -2550,6 +2608,9 @@ static int __pyx_pf_4cylp_2cy_17CyPivotPythonBase_17CyPivotPythonBase___init__(s - PyObject *__pyx_t_1 = NULL; - PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__init__", 0); - - /* "cylp/cy/CyPivotPythonBase.pyx":8 -@@ -2691,6 +2752,9 @@ static PyObject *__pyx_f_4cylp_2cy_17CyPivotPythonBase_17CyPivotPythonBase_pivot - PyObject *__pyx_t_3 = NULL; - int __pyx_t_4; - PyObject *__pyx_t_5 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("pivotColumn", 0); - - /* "cylp/cy/CyPivotPythonBase.pyx":18 -@@ -2975,6 +3039,9 @@ static void __pyx_f_4cylp_2cy_17CyPivotPythonBase_17CyPivotPythonBase_saveWeight - PyObject *__pyx_t_4 = NULL; - int __pyx_t_5; - PyObject *__pyx_t_6 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("saveWeights", 0); - - /* "cylp/cy/CyPivotPythonBase.pyx":42 -@@ -3105,6 +3172,9 @@ static PyObject *__pyx_pf_4cylp_2cy_17CyPivotPythonBase_17CyPivotPythonBase_4__r - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -3160,6 +3230,9 @@ static PyObject *__pyx_pf_4cylp_2cy_17CyPivotPythonBase_17CyPivotPythonBase_6__s - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -3190,863 +3263,7 @@ static PyObject *__pyx_pf_4cylp_2cy_17CyPivotPythonBase_17CyPivotPythonBase_6__s - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":258 -- * # experimental exception made for __getbuffer__ and __releasebuffer__ -- * # -- the details of this may change. -- * def __getbuffer__(ndarray self, Py_buffer* info, int flags): # <<<<<<<<<<<<<< -- * # This implementation of getbuffer is geared towards Cython -- * # requirements, and does not yet fulfill the PEP. -- */ -- --/* Python wrapper */ --static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /*proto*/ --static CYTHON_UNUSED int __pyx_pw_5numpy_7ndarray_1__getbuffer__(PyObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { -- int __pyx_r; -- __Pyx_RefNannyDeclarations -- __Pyx_RefNannySetupContext("__getbuffer__ (wrapper)", 0); -- __pyx_r = __pyx_pf_5numpy_7ndarray___getbuffer__(((PyArrayObject *)__pyx_v_self), ((Py_buffer *)__pyx_v_info), ((int)__pyx_v_flags)); -- -- /* function exit code */ -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags) { -- int __pyx_v_i; -- int __pyx_v_ndim; -- int __pyx_v_endian_detector; -- int __pyx_v_little_endian; -- int __pyx_v_t; -- char *__pyx_v_f; -- PyArray_Descr *__pyx_v_descr = 0; -- int __pyx_v_offset; -- int __pyx_r; -- __Pyx_RefNannyDeclarations -- int __pyx_t_1; -- int __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- int __pyx_t_4; -- int __pyx_t_5; -- int __pyx_t_6; -- PyArray_Descr *__pyx_t_7; -- PyObject *__pyx_t_8 = NULL; -- char *__pyx_t_9; -- if (__pyx_v_info == NULL) { -- PyErr_SetString(PyExc_BufferError, "PyObject_GetBuffer: view==NULL argument is obsolete"); -- return -1; -- } -- __Pyx_RefNannySetupContext("__getbuffer__", 0); -- __pyx_v_info->obj = Py_None; __Pyx_INCREF(Py_None); -- __Pyx_GIVEREF(__pyx_v_info->obj); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- * -- */ -- __pyx_v_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) # <<<<<<<<<<<<<< -- * -- * ndim = PyArray_NDIM(self) -- */ -- __pyx_v_little_endian = ((((char *)(&__pyx_v_endian_detector))[0]) != 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":268 -- * cdef bint little_endian = ((&endian_detector)[0] != 0) -- * -- * ndim = PyArray_NDIM(self) # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- */ -- __pyx_v_ndim = PyArray_NDIM(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":271 -- * -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): # <<<<<<<<<<<<<< -- * raise ValueError(u"ndarray is not C contiguous") -- * -- */ -- __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_C_CONTIGUOUS) != 0)) != 0); -- __pyx_t_1 = __pyx_t_2; -- __pyx_L4_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":272 -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__3, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":274 -- * raise ValueError(u"ndarray is not C contiguous") -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) # <<<<<<<<<<<<<< -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") -- */ -- __pyx_t_2 = (((__pyx_v_flags & PyBUF_F_CONTIGUOUS) == PyBUF_F_CONTIGUOUS) != 0); -- if (__pyx_t_2) { -- } else { -- __pyx_t_1 = __pyx_t_2; -- goto __pyx_L7_bool_binop_done; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":275 -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): # <<<<<<<<<<<<<< -- * raise ValueError(u"ndarray is not Fortran contiguous") -- * -- */ -- __pyx_t_2 = ((!(PyArray_CHKFLAGS(__pyx_v_self, NPY_ARRAY_F_CONTIGUOUS) != 0)) != 0); -- __pyx_t_1 = __pyx_t_2; -- __pyx_L7_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":276 -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__4, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":278 -- * raise ValueError(u"ndarray is not Fortran contiguous") -- * -- * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< -- * info.ndim = ndim -- * if sizeof(npy_intp) != sizeof(Py_ssize_t): -- */ -- __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":279 -- * -- * info.buf = PyArray_DATA(self) -- * info.ndim = ndim # <<<<<<<<<<<<<< -- * if sizeof(npy_intp) != sizeof(Py_ssize_t): -- * # Allocate new buffer for strides and shape info. -- */ -- __pyx_v_info->ndim = __pyx_v_ndim; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)))); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- */ -- (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- /*else*/ { -- __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- */ -- __pyx_v_info->shape = ((Py_ssize_t *)PyArray_DIMS(__pyx_v_self)); -- } -- __pyx_L9:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- * -- */ -- __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":293 -- * info.suboffsets = NULL -- * info.itemsize = PyArray_ITEMSIZE(self) -- * info.readonly = not PyArray_ISWRITEABLE(self) # <<<<<<<<<<<<<< -- * -- * cdef int t -- */ -- __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":297 -- * cdef int t -- * cdef char* f = NULL -- * cdef dtype descr = PyArray_DESCR(self) # <<<<<<<<<<<<<< -- * cdef int offset -- * -- */ -- __pyx_t_7 = PyArray_DESCR(__pyx_v_self); -- __pyx_t_3 = ((PyObject *)__pyx_t_7); -- __Pyx_INCREF(__pyx_t_3); -- __pyx_v_descr = ((PyArray_Descr *)__pyx_t_3); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":300 -- * cdef int offset -- * -- * info.obj = self # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(descr): -- */ -- __Pyx_INCREF(((PyObject *)__pyx_v_self)); -- __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); -- __Pyx_GOTREF(__pyx_v_info->obj); -- __Pyx_DECREF(__pyx_v_info->obj); -- __pyx_v_info->obj = ((PyObject *)__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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__5, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]) = '^'; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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'; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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): -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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(); --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735 - * ctypedef npy_cdouble complex_t - * - * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< -@@ -4058,9 +3275,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":822 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":736 - * - * cdef inline object PyArray_MultiIterNew1(a): - * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< -@@ -4068,13 +3288,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - * 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, 822, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735 - * ctypedef npy_cdouble complex_t - * - * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< -@@ -4093,7 +3313,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -+/* "../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): # <<<<<<<<<<<<<< -@@ -4105,9 +3325,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":825 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":739 - * - * cdef inline object PyArray_MultiIterNew2(a, b): - * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< -@@ -4115,13 +3338,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - * 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, 825, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -4140,7 +3363,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741 - * return PyArray_MultiIterNew(2, a, b) - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< -@@ -4152,9 +3375,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":828 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":742 - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): - * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< -@@ -4162,13 +3388,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - * 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, 828, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741 - * return PyArray_MultiIterNew(2, a, b) - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< -@@ -4187,7 +3413,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -+/* "../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): # <<<<<<<<<<<<<< -@@ -4199,9 +3425,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":831 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -4209,13 +3438,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - * 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, 831, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -4234,7 +3463,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 - * return PyArray_MultiIterNew(4, a, b, c, d) - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -@@ -4246,9 +3475,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":834 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -4256,13 +3488,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - * 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, 834, __pyx_L1_error) -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 - * return PyArray_MultiIterNew(4, a, b, c, d) - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -@@ -4281,7 +3513,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -@@ -4295,7 +3527,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - int __pyx_t_1; - __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -@@ -4305,7 +3537,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); - if (__pyx_t_1) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":838 -+ /* "../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 # <<<<<<<<<<<<<< -@@ -4317,7 +3549,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -@@ -4326,12 +3558,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":840 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":754 - * 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); -@@ -4340,7 +3572,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - goto __pyx_L0; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -@@ -4355,765 +3587,19 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":929 -+ * int _import_umath() except -1 - * -- * 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 void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< -+ * Py_INCREF(base) # important to do this before stealing the reference below! -+ * PyArray_SetBaseObject(arr, base) - */ - --static CYTHON_INLINE 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; -+static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { - __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- Py_ssize_t __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- PyObject *__pyx_t_4 = NULL; -- int __pyx_t_5; -- int __pyx_t_6; -- int __pyx_t_7; -- long __pyx_t_8; -- char *__pyx_t_9; -- __Pyx_RefNannySetupContext("_util_dtypestring", 0); -+ __Pyx_RefNannySetupContext("set_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/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_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":848 -- * 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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- if (unlikely(__pyx_v_descr->names == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -- __PYX_ERR(2, 851, __pyx_L1_error) -- } -- __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; -- for (;;) { -- if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; -- #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, 851, __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, 851, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- #endif -- __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":852 -- * -- * for childname in descr.names: -- * fields = descr.fields[childname] # <<<<<<<<<<<<<< -- * child, new_offset = fields -- * -- */ -- if (unlikely(__pyx_v_descr->fields == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -- __PYX_ERR(2, 852, __pyx_L1_error) -- } -- __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":853 -- * 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, 853, __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, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- #endif -- } else { -- __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 853, __pyx_L1_error) -- } -- if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3)); -- __pyx_t_3 = 0; -- __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 856, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0); -- if (!__pyx_t_7) { -- goto __pyx_L8_next_or; -- } else { -- } -- __pyx_t_7 = (__pyx_v_little_endian != 0); -- if (!__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_L8_next_or:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":859 -- * -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< -- * raise ValueError(u"Non-native byte order not supported") -- * # One could encode it in the format string and have Cython -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0); -- if (__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0); -- __pyx_t_6 = __pyx_t_7; -- __pyx_L7_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":860 -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * # One could encode it in the format string and have Cython -- * # complain instead, BUT: < and > in format strings also imply -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 860, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 860, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":870 -- * -- * # Output padding bytes -- * while offset[0] < new_offset: # <<<<<<<<<<<<<< -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- */ -- while (1) { -- __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (!__pyx_t_6) break; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":871 -- * # Output padding bytes -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< -- * f += 1 -- * offset[0] += 1 -- */ -- (__pyx_v_f[0]) = 0x78; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":872 -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte -- * f += 1 # <<<<<<<<<<<<<< -- * offset[0] += 1 -- * -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":873 -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- * offset[0] += 1 # <<<<<<<<<<<<<< -- * -- * offset[0] += child.itemsize -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":875 -- * offset[0] += 1 -- * -- * offset[0] += child.itemsize # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(child): -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); -- if (__pyx_t_6) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":878 -- * -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num # <<<<<<<<<<<<<< -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") -- */ -- __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 878, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 880, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":883 -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 98; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":884 -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":885 -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x68; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":886 -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 72; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":887 -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x69; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":888 -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 73; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":889 -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x6C; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":890 -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 76; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":891 -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x71; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":892 -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 81; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":893 -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":894 -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x64; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":895 -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x67; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":896 -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x66; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":897 -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x64; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":898 -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x67; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":899 -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (likely(__pyx_t_6)) { -- (__pyx_v_f[0]) = 79; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":901 -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< -- * f += 1 -- * else: -- */ -- /*else*/ { -- __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 901, __pyx_L1_error) -- } -- __pyx_L15:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":902 -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- * f += 1 # <<<<<<<<<<<<<< -- * else: -- * # Cython ignores struct boundary information ("T{...}"), -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- goto __pyx_L13; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":906 -- * # Cython ignores struct boundary information ("T{...}"), -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< -- * return f -- * -- */ -- /*else*/ { -- __pyx_t_9 = __pyx_f_5numpy__util_dtypestring(__pyx_v_child, __pyx_v_f, __pyx_v_end, __pyx_v_offset); if (unlikely(__pyx_t_9 == ((char *)NULL))) __PYX_ERR(2, 906, __pyx_L1_error) -- __pyx_v_f = __pyx_t_9; -- } -- __pyx_L13:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- } -- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":907 -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) -- * return f # <<<<<<<<<<<<<< -- * -- * -- */ -- __pyx_r = __pyx_v_f; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -- * -- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< -- * # Recursive utility function used in __getbuffer__ to get format -- * # string. The new location in the format string is returned. -- */ -- -- /* function exit code */ -- __pyx_L1_error:; -- __Pyx_XDECREF(__pyx_t_1); -- __Pyx_XDECREF(__pyx_t_3); -- __Pyx_XDECREF(__pyx_t_4); -- __Pyx_AddTraceback("numpy._util_dtypestring", __pyx_clineno, __pyx_lineno, __pyx_filename); -- __pyx_r = NULL; -- __pyx_L0:; -- __Pyx_XDECREF((PyObject *)__pyx_v_child); -- __Pyx_XDECREF(__pyx_v_fields); -- __Pyx_XDECREF(__pyx_v_childname); -- __Pyx_XDECREF(__pyx_v_new_offset); -- __Pyx_XDECREF(__pyx_v_t); -- __Pyx_RefNannyFinishContext(); -- return __pyx_r; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -- * int _import_umath() except -1 -- * -- * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< -- * Py_INCREF(base) # important to do this before stealing the reference below! -- * PyArray_SetBaseObject(arr, base) -- */ -- --static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { -- __Pyx_RefNannyDeclarations -- __Pyx_RefNannySetupContext("set_array_base", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1023 -+ /* "../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! # <<<<<<<<<<<<<< -@@ -5122,7 +3608,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - Py_INCREF(__pyx_v_base); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1024 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -5131,7 +3617,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -5143,7 +3629,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyFinishContext(); - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+/* "../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): # <<<<<<<<<<<<<< -@@ -5158,7 +3644,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - int __pyx_t_1; - __Pyx_RefNannySetupContext("get_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1027 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -5167,7 +3653,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - __pyx_v_base = PyArray_BASE(__pyx_v_arr); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -5177,7 +3663,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) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1029 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":936 - * base = PyArray_BASE(arr) - * if base is NULL: - * return None # <<<<<<<<<<<<<< -@@ -5188,7 +3674,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -5197,7 +3683,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1030 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":937 - * if base is NULL: - * return None - * return base # <<<<<<<<<<<<<< -@@ -5209,7 +3695,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = ((PyObject *)__pyx_v_base); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -5224,12 +3710,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { -@@ -5243,13 +3729,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_array", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - { -@@ -5261,20 +3750,20 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1036 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":943 - * cdef inline int import_array() except -1: - * try: -- * _import_array() # <<<<<<<<<<<<<< -+ * __pyx_import_array() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") - */ -- __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1036, __pyx_L3_error) -+ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 943, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - } -@@ -5284,9 +3773,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1037 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":944 - * try: -- * _import_array() -+ * __pyx_import_array() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.multiarray failed to import") - * -@@ -5294,32 +3783,32 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1037, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 944, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 945, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __PYX_ERR(2, 945, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - __Pyx_XGIVEREF(__pyx_t_1); -@@ -5330,12 +3819,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - /* function exit code */ -@@ -5353,7 +3842,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -5372,9 +3861,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_umath", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5390,16 +3882,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1042 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":949 - * cdef inline int import_umath() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1042, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 949, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5413,7 +3905,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1043 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":950 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< -@@ -5423,28 +3915,28 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1043, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 950, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 951, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __PYX_ERR(2, 951, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5459,7 +3951,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -5482,7 +3974,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -5501,9 +3993,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_ufunc", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5519,16 +4014,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1048 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":955 - * cdef inline int import_ufunc() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1048, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 955, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5542,35 +4037,38 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1049 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":956 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.umath failed to import") -+ * - */ - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1049, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 956, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1050 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":957 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< -+ * -+ * cdef extern from *: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 957, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __PYX_ERR(2, 957, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5585,7 +4083,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -5607,6 +4105,180 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_RefNannyFinishContext(); - return __pyx_r; - } -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_timedelta64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":979 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_datetime64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":994 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { -+ npy_datetime __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1004 -+ * also needed. That can be found using `get_datetime64_unit`. -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { -+ npy_timedelta __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1011 -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { -+ NPY_DATETIMEUNIT __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1018 -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ * """ -+ * return (obj).obmeta.base # <<<<<<<<<<<<<< -+ */ -+ __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} - static struct __pyx_vtabstruct_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase __pyx_vtable_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase; - - static PyObject *__pyx_tp_new_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase(PyTypeObject *t, PyObject *a, PyObject *k) { -@@ -5630,9 +4302,9 @@ static void __pyx_tp_dealloc_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase(PyO - { - PyObject *etype, *eval, *etb; - PyErr_Fetch(&etype, &eval, &etb); -- ++Py_REFCNT(o); -+ __Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1); - __pyx_pw_4cylp_2cy_17CyPivotPythonBase_17CyPivotPythonBase_3__dealloc__(o); -- --Py_REFCNT(o); -+ __Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1); - PyErr_Restore(etype, eval, etb); - } - Py_CLEAR(p->pivotMethodObject); -@@ -5672,7 +4344,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase = - sizeof(struct __pyx_obj_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -5725,6 +4402,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_17CyPivotPythonBase_CyPivotPythonBase = - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyMethodDef __pyx_methods[] = { -@@ -5774,26 +4457,18 @@ static struct PyModuleDef __pyx_moduledef = { - - static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_CyPivotPythonBase, __pyx_k_CyPivotPythonBase, sizeof(__pyx_k_CyPivotPythonBase), 0, 0, 1, 1}, -- {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, -- {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, - {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, -- {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, -- {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, -- {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, - {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, - {&__pyx_n_s_init, __pyx_k_init, sizeof(__pyx_k_init), 0, 0, 1, 1}, - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, -- {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, -- {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, - {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0}, - {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0}, - {&__pyx_n_s_pivotColumn, __pyx_k_pivotColumn, sizeof(__pyx_k_pivotColumn), 0, 0, 1, 1}, - {&__pyx_n_s_pivotMethodObject, __pyx_k_pivotMethodObject, sizeof(__pyx_k_pivotMethodObject), 0, 0, 1, 1}, - {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, -- {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, -@@ -5802,15 +4477,11 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, - {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, -- {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, - {0, 0, 0, 0, 0, 0, 0} - }; - static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 2, __pyx_L1_error) -- __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(2, 272, __pyx_L1_error) -- __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(2, 285, __pyx_L1_error) -- __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(2, 856, __pyx_L1_error) -- __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 1038, __pyx_L1_error) -+ __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 945, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -@@ -5839,82 +4510,27 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_GOTREF(__pyx_tuple__2); - __Pyx_GIVEREF(__pyx_tuple__2); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":272 -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(2, 272, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__3); -- __Pyx_GIVEREF(__pyx_tuple__3); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":276 -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 276, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__4); -- __Pyx_GIVEREF(__pyx_tuple__4); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":306 -- * if ((descr.byteorder == c'>' and little_endian) or -- * (descr.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * if t == NPY_BYTE: f = "b" -- * elif t == NPY_UBYTE: f = "B" -- */ -- __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(2, 306, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__5); -- __Pyx_GIVEREF(__pyx_tuple__5); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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_tuple__6 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__6); -- __Pyx_GIVEREF(__pyx_tuple__6); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__7); -- __Pyx_GIVEREF(__pyx_tuple__7); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(2, 1038, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__8); -- __Pyx_GIVEREF(__pyx_tuple__8); -+ __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(2, 945, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__3); -+ __Pyx_GIVEREF(__pyx_tuple__3); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(2, 1044, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__9); -- __Pyx_GIVEREF(__pyx_tuple__9); -+ __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 951, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__4); -+ __Pyx_GIVEREF(__pyx_tuple__4); - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; -@@ -5964,6 +4580,9 @@ static int __Pyx_modinit_function_export_code(void) { - static int __Pyx_modinit_type_init_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyClpPrimalColumnPivotBase"); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error) -@@ -6000,6 +4619,9 @@ static int __Pyx_modinit_type_init_code(void) { - static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error) -@@ -6029,18 +4651,38 @@ static int __Pyx_modinit_type_import_code(void) { - if (!__pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector) __PYX_ERR(6, 22, __pyx_L1_error) - __pyx_vtabptr_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector = (struct __pyx_vtabstruct_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector*)__Pyx_GetVtable(__pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector->tp_dict); if (unlikely(!__pyx_vtabptr_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector)) __PYX_ERR(6, 22, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 206, __pyx_L1_error) -+ __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 206, __pyx_L1_error) -- __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 229, __pyx_L1_error) -- __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 233, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 200, __pyx_L1_error) -+ __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 223, __pyx_L1_error) -+ __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 227, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 242, __pyx_L1_error) -- __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 918, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 239, __pyx_L1_error) -+ __pyx_ptype_5numpy_generic = __Pyx_ImportType(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 771, __pyx_L1_error) -+ __pyx_ptype_5numpy_number = __Pyx_ImportType(__pyx_t_1, "numpy", "number", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 773, __pyx_L1_error) -+ __pyx_ptype_5numpy_integer = __Pyx_ImportType(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 775, __pyx_L1_error) -+ __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 777, __pyx_L1_error) -+ __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 779, __pyx_L1_error) -+ __pyx_ptype_5numpy_inexact = __Pyx_ImportType(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 781, __pyx_L1_error) -+ __pyx_ptype_5numpy_floating = __Pyx_ImportType(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 783, __pyx_L1_error) -+ __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 785, __pyx_L1_error) -+ __pyx_ptype_5numpy_flexible = __Pyx_ImportType(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 787, __pyx_L1_error) -+ __pyx_ptype_5numpy_character = __Pyx_ImportType(__pyx_t_1, "numpy", "character", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 789, __pyx_L1_error) -+ __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 827, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyClpDualRowPivotBase"); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 72, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); -@@ -6143,13 +4785,17 @@ static int __Pyx_modinit_variable_import_code(void) { - static int __Pyx_modinit_function_import_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); - /*--- Function import code ---*/ - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyClpPrimalColumnPivotBase"); if (!__pyx_t_1) __PYX_ERR(1, 1, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_ImportFunction(__pyx_t_1, "RunPivotColumn", (void (**)(void))&__pyx_f_4cylp_2cy_26CyClpPrimalColumnPivotBase_RunPivotColumn, "int (void *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error) - if (__Pyx_ImportFunction(__pyx_t_1, "RunClone", (void (**)(void))&__pyx_f_4cylp_2cy_26CyClpPrimalColumnPivotBase_RunClone, "ClpPrimalColumnPivot *(void *, int)") < 0) __PYX_ERR(1, 1, __pyx_L1_error) - if (__Pyx_ImportFunction(__pyx_t_1, "RunSaveWeights", (void (**)(void))&__pyx_f_4cylp_2cy_26CyClpPrimalColumnPivotBase_RunSaveWeights, "void (void *, IClpSimplex *, int)") < 0) __PYX_ERR(1, 1, __pyx_L1_error) -- Py_DECREF(__pyx_t_1); __pyx_t_1 = 0; -+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; -@@ -6159,17 +4805,19 @@ static int __Pyx_modinit_function_import_code(void) { - } - - --#if PY_MAJOR_VERSION < 3 --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC void --#else -+#ifndef CYTHON_NO_PYINIT_EXPORT - #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#elif PY_MAJOR_VERSION < 3 -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" void -+#else -+#define __Pyx_PyMODINIT_FUNC void - #endif - #else --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC PyObject * -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * - #else --#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#define __Pyx_PyMODINIT_FUNC PyObject * - #endif - #endif - -@@ -6251,6 +4899,9 @@ static CYTHON_SMALL_CODE int __pyx_pymod_exec_CyPivotPythonBase(PyObject *__pyx_ - #endif - { - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { -@@ -6298,11 +4949,9 @@ if (!__Pyx_RefNanny) { - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ -- #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS -- #ifdef WITH_THREAD /* Python build with threading support? */ -+ #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - PyEval_InitThreads(); - #endif -- #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; -@@ -6339,17 +4988,17 @@ if (!__Pyx_RefNanny) { - } - #endif - /*--- Builtin init code ---*/ -- if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Constants init code ---*/ -- if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(); - (void)__Pyx_modinit_variable_export_code(); - (void)__Pyx_modinit_function_export_code(); -- if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; -- if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; -+ if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) -+ if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) - (void)__Pyx_modinit_variable_import_code(); -- if (unlikely(__Pyx_modinit_function_import_code() != 0)) goto __pyx_L1_error; -+ if (unlikely(__Pyx_modinit_function_import_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Execution code ---*/ - #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) - if (__Pyx_patch_abc() < 0) __PYX_ERR(1, 1, __pyx_L1_error) -@@ -6365,12 +5014,12 @@ if (!__Pyx_RefNanny) { - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -- * raise ImportError("numpy.core.umath failed to import") -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -- * try: -- * _import_umath() -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ - - /*--- Wrapped vars code ---*/ -@@ -6479,7 +5128,7 @@ static int __Pyx_ParseOptionalKeywords( - } - name = first_kw_arg; - #if PY_MAJOR_VERSION < 3 -- if (likely(PyString_CheckExact(key)) || likely(PyString_Check(key))) { -+ if (likely(PyString_Check(key))) { - while (*name) { - if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) - && _PyString_Eq(**name, key)) { -@@ -6506,7 +5155,7 @@ static int __Pyx_ParseOptionalKeywords( - while (*name) { - int cmp = (**name == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 -- (PyUnicode_GET_SIZE(**name) != PyUnicode_GET_SIZE(key)) ? 1 : -+ (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**name, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; -@@ -6522,7 +5171,7 @@ static int __Pyx_ParseOptionalKeywords( - while (argname != first_kw_arg) { - int cmp = (**argname == key) ? 0 : - #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 -- (PyUnicode_GET_SIZE(**argname) != PyUnicode_GET_SIZE(key)) ? 1 : -+ (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : - #endif - PyUnicode_Compare(**argname, key); - if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; -@@ -6731,7 +5380,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, - #if CYTHON_COMPILING_IN_CPYTHON - static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; -- ternaryfunc call = func->ob_type->tp_call; -+ ternaryfunc call = Py_TYPE(func)->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -@@ -6818,7 +5467,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec - if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { - return __Pyx_PyObject_CallMethO(func, arg); - #if CYTHON_FAST_PYCCALL -- } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { -+ } else if (__Pyx_PyFastCFunction_Check(func)) { - return __Pyx_PyCFunction_FastCall(func, &arg, 1); - #endif - } -@@ -7083,61 +5732,6 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject - } - #endif - --/* DictGetItem */ --#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY --static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { -- PyObject *value; -- value = PyDict_GetItemWithError(d, key); -- if (unlikely(!value)) { -- if (!PyErr_Occurred()) { -- if (unlikely(PyTuple_Check(key))) { -- PyObject* args = PyTuple_Pack(1, key); -- if (likely(args)) { -- PyErr_SetObject(PyExc_KeyError, args); -- Py_DECREF(args); -- } -- } else { -- PyErr_SetObject(PyExc_KeyError, key); -- } -- } -- return NULL; -- } -- Py_INCREF(value); -- return value; --} --#endif -- --/* RaiseTooManyValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { -- PyErr_Format(PyExc_ValueError, -- "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); --} -- --/* RaiseNeedMoreValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { -- PyErr_Format(PyExc_ValueError, -- "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", -- index, (index == 1) ? "" : "s"); --} -- --/* RaiseNoneIterError */ --static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); --} -- --/* ExtTypeTest */ --static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { -- if (unlikely(!type)) { -- PyErr_SetString(PyExc_SystemError, "Missing type object"); -- return 0; -- } -- if (likely(__Pyx_TypeCheck(obj, type))) -- return 1; -- PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", -- Py_TYPE(obj)->tp_name, type->tp_name); -- return 0; --} -- - /* GetTopmostException */ - #if CYTHON_USE_EXC_INFO_STACK - static _PyErr_StackItem * -@@ -7476,6 +6070,28 @@ static int __Pyx_SetVtable(PyObject *dict, void *vtable) { - return -1; - } - -+/* PyObjectGetAttrStrNoError */ -+static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { -+ __Pyx_PyThreadState_declare -+ __Pyx_PyThreadState_assign -+ if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) -+ __Pyx_PyErr_Clear(); -+} -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { -+ PyObject *result; -+#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 -+ PyTypeObject* tp = Py_TYPE(obj); -+ if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { -+ return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); -+ } -+#endif -+ result = __Pyx_PyObject_GetAttrStr(obj, attr_name); -+ if (unlikely(!result)) { -+ __Pyx_PyObject_GetAttrStr_ClearAttributeError(); -+ } -+ return result; -+} -+ - /* SetupReduce */ - static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { - int ret; -@@ -7503,43 +6119,51 @@ static int __Pyx_setup_reduce(PyObject* type_obj) { - PyObject *setstate = NULL; - PyObject *setstate_cython = NULL; - #if CYTHON_USE_PYTYPE_LOOKUP -- if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #else -- if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #endif - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #else -- object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #endif -- reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; -+ reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; - if (reduce_ex == object_reduce_ex) { - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #else -- object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #endif -- reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; -+ reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; - if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { -- reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; -+ reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); -+ if (likely(reduce_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (reduce == object_reduce || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); - if (!setstate) PyErr_Clear(); - if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { -- setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; -+ setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); -+ if (likely(setstate_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (!setstate || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - } - PyType_Modified((PyTypeObject*)type_obj); - } - } -- goto GOOD; --BAD: -+ goto __PYX_GOOD; -+__PYX_BAD: - if (!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); - ret = -1; --GOOD: -+__PYX_GOOD: - #if !CYTHON_USE_PYTYPE_LOOKUP - Py_XDECREF(object_reduce); - Py_XDECREF(object_reduce_ex); -@@ -7580,7 +6204,7 @@ static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UIN - - /* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK --static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { -+static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) { - PyObject *use_cline; - PyObject *ptype, *pvalue, *ptraceback; - #if CYTHON_COMPILING_IN_CPYTHON -@@ -7610,7 +6234,7 @@ static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { - } - if (!use_cline) { - c_line = 0; -- PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); -+ (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; -@@ -7684,7 +6308,7 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - if (__pyx_code_cache.count == __pyx_code_cache.max_count) { - int new_max = __pyx_code_cache.max_count + 64; - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( -- __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); -+ __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); - if (unlikely(!entries)) { - return; - } -@@ -7707,30 +6331,31 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { -- PyCodeObject *py_code = 0; -- PyObject *py_srcfile = 0; -- PyObject *py_funcname = 0; -+ PyCodeObject *py_code = NULL; -+ PyObject *py_funcname = NULL; - #if PY_MAJOR_VERSION < 3 -+ PyObject *py_srcfile = NULL; - py_srcfile = PyString_FromString(filename); -- #else -- py_srcfile = PyUnicode_FromString(filename); -- #endif - if (!py_srcfile) goto bad; -+ #endif - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; -+ funcname = PyUnicode_AsUTF8(py_funcname); -+ if (!funcname) goto bad; - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); -- #else -- py_funcname = PyUnicode_FromString(funcname); -+ if (!py_funcname) goto bad; - #endif - } -- if (!py_funcname) goto bad; -+ #if PY_MAJOR_VERSION < 3 - py_code = __Pyx_PyCode_New( - 0, - 0, -@@ -7749,11 +6374,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); -- Py_DECREF(py_funcname); -+ #else -+ py_code = PyCode_NewEmpty(filename, funcname, py_line); -+ #endif -+ Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline - return py_code; - bad: -- Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); -+ #if PY_MAJOR_VERSION < 3 -+ Py_XDECREF(py_srcfile); -+ #endif - return NULL; - } - static void __Pyx_AddTraceback(const char *funcname, int c_line, -@@ -7785,37 +6415,6 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - Py_XDECREF(py_frame); - } - --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(int) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(int) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(int) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(int), -- little, !is_unsigned); -- } --} -- - /* Declarations */ - #if CYTHON_CCOMPLEX - #ifdef __cplusplus -@@ -7933,7 +6532,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_float(a, a); - return __Pyx_c_prod_float(a, a); - case 3: - z = __Pyx_c_prod_float(a, a); -@@ -8088,7 +6686,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_double(a, a); - return __Pyx_c_prod_double(a, a); - case 3: - z = __Pyx_c_prod_double(a, a); -@@ -8126,251 +6723,54 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - #endif - #endif - --/* CIntFromPyVerify */ --#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ -- __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) --#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ -- __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) --#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ -- {\ -- func_type value = func_value;\ -- if (sizeof(target_type) < sizeof(func_type)) {\ -- if (unlikely(value != (func_type) (target_type) value)) {\ -- func_type zero = 0;\ -- if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ -- return (target_type) -1;\ -- if (is_unsigned && unlikely(value < zero))\ -- goto raise_neg_overflow;\ -- else\ -- goto raise_overflow;\ -- }\ -- }\ -- return (target_type) value;\ -- } -- - /* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { -- const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(enum NPY_TYPES) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" - #endif -- } -- } else { -- if (sizeof(enum NPY_TYPES) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop - #endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), -- little, !is_unsigned); -- } --} -- --/* CIntFromPy */ --static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; - const int is_unsigned = neg_one > const_zero; --#if PY_MAJOR_VERSION < 3 -- if (likely(PyInt_Check(x))) { -+ if (is_unsigned) { - if (sizeof(int) < sizeof(long)) { -- __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) -- } else { -- long val = PyInt_AS_LONG(x); -- if (is_unsigned && unlikely(val < 0)) { -- goto raise_neg_overflow; -- } -- return (int) val; -- } -- } else --#endif -- if (likely(PyLong_Check(x))) { -- if (is_unsigned) { --#if CYTHON_USE_PYLONG_INTERNALS -- const digit* digits = ((PyLongObject*)x)->ob_digit; -- switch (Py_SIZE(x)) { -- case 0: return (int) 0; -- case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) -- case 2: -- if (8 * sizeof(int) > 1 * PyLong_SHIFT) { -- if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { -- return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -- } -- } -- break; -- case 3: -- if (8 * sizeof(int) > 2 * PyLong_SHIFT) { -- if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { -- return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -- } -- } -- break; -- case 4: -- if (8 * sizeof(int) > 3 * PyLong_SHIFT) { -- if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { -- return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -- } -- } -- break; -- } --#endif --#if CYTHON_COMPILING_IN_CPYTHON -- if (unlikely(Py_SIZE(x) < 0)) { -- goto raise_neg_overflow; -- } --#else -- { -- int result = PyObject_RichCompareBool(x, Py_False, Py_LT); -- if (unlikely(result < 0)) -- return (int) -1; -- if (unlikely(result == 1)) -- goto raise_neg_overflow; -- } --#endif -- if (sizeof(int) <= sizeof(unsigned long)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) --#endif -- } -- } else { --#if CYTHON_USE_PYLONG_INTERNALS -- const digit* digits = ((PyLongObject*)x)->ob_digit; -- switch (Py_SIZE(x)) { -- case 0: return (int) 0; -- case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) -- case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) -- case -2: -- if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { -- if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -- return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -- } -- } -- break; -- case 2: -- if (8 * sizeof(int) > 1 * PyLong_SHIFT) { -- if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -- return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -- } -- } -- break; -- case -3: -- if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -- if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -- return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -- } -- } -- break; -- case 3: -- if (8 * sizeof(int) > 2 * PyLong_SHIFT) { -- if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -- return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -- } -- } -- break; -- case -4: -- if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -- if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -- return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -- } -- } -- break; -- case 4: -- if (8 * sizeof(int) > 3 * PyLong_SHIFT) { -- if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -- return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -- } -- } -- break; -- } --#endif -- if (sizeof(int) <= sizeof(long)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) --#endif -- } -- } -- { --#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) -- PyErr_SetString(PyExc_RuntimeError, -- "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); --#else -- int val; -- PyObject *v = __Pyx_PyNumber_IntOrLong(x); -- #if PY_MAJOR_VERSION < 3 -- if (likely(v) && !PyLong_Check(v)) { -- PyObject *tmp = v; -- v = PyNumber_Long(tmp); -- Py_DECREF(tmp); -- } -- #endif -- if (likely(v)) { -- int one = 1; int is_little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&val; -- int ret = _PyLong_AsByteArray((PyLongObject *)v, -- bytes, sizeof(val), -- is_little, !is_unsigned); -- Py_DECREF(v); -- if (likely(!ret)) -- return val; -- } -+ return PyInt_FromLong((long) value); -+ } else if (sizeof(int) <= sizeof(unsigned long)) { -+ return PyLong_FromUnsignedLong((unsigned long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -+ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); - #endif -- return (int) -1; - } - } else { -- int val; -- PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); -- if (!tmp) return (int) -1; -- val = __Pyx_PyInt_As_int(tmp); -- Py_DECREF(tmp); -- return val; -+ if (sizeof(int) <= sizeof(long)) { -+ return PyInt_FromLong((long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -+ return PyLong_FromLongLong((PY_LONG_LONG) value); -+#endif -+ } -+ } -+ { -+ int one = 1; int little = (int)*(unsigned char *)&one; -+ unsigned char *bytes = (unsigned char *)&value; -+ return _PyLong_FromByteArray(bytes, sizeof(int), -+ little, !is_unsigned); - } --raise_overflow: -- PyErr_SetString(PyExc_OverflowError, -- "value too large to convert to int"); -- return (int) -1; --raise_neg_overflow: -- PyErr_SetString(PyExc_OverflowError, -- "can't convert negative value to int"); -- return (int) -1; - } - - /* CIntToPy */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { - if (sizeof(long) < sizeof(long)) { -@@ -8399,9 +6799,38 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { - } - } - -+/* CIntFromPyVerify */ -+#define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ -+ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) -+#define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ -+ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) -+#define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ -+ {\ -+ func_type value = func_value;\ -+ if (sizeof(target_type) < sizeof(func_type)) {\ -+ if (unlikely(value != (func_type) (target_type) value)) {\ -+ func_type zero = 0;\ -+ if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ -+ return (target_type) -1;\ -+ if (is_unsigned && unlikely(value < zero))\ -+ goto raise_neg_overflow;\ -+ else\ -+ goto raise_overflow;\ -+ }\ -+ }\ -+ return (target_type) value;\ -+ } -+ - /* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -8588,6 +7017,202 @@ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - return (long) -1; - } - -+/* CIntFromPy */ -+static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif -+ const int is_unsigned = neg_one > const_zero; -+#if PY_MAJOR_VERSION < 3 -+ if (likely(PyInt_Check(x))) { -+ if (sizeof(int) < sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) -+ } else { -+ long val = PyInt_AS_LONG(x); -+ if (is_unsigned && unlikely(val < 0)) { -+ goto raise_neg_overflow; -+ } -+ return (int) val; -+ } -+ } else -+#endif -+ if (likely(PyLong_Check(x))) { -+ if (is_unsigned) { -+#if CYTHON_USE_PYLONG_INTERNALS -+ const digit* digits = ((PyLongObject*)x)->ob_digit; -+ switch (Py_SIZE(x)) { -+ case 0: return (int) 0; -+ case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) -+ case 2: -+ if (8 * sizeof(int) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { -+ return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -+ } -+ } -+ break; -+ case 3: -+ if (8 * sizeof(int) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { -+ return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -+ } -+ } -+ break; -+ case 4: -+ if (8 * sizeof(int) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { -+ return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -+ } -+ } -+ break; -+ } -+#endif -+#if CYTHON_COMPILING_IN_CPYTHON -+ if (unlikely(Py_SIZE(x) < 0)) { -+ goto raise_neg_overflow; -+ } -+#else -+ { -+ int result = PyObject_RichCompareBool(x, Py_False, Py_LT); -+ if (unlikely(result < 0)) -+ return (int) -1; -+ if (unlikely(result == 1)) -+ goto raise_neg_overflow; -+ } -+#endif -+ if (sizeof(int) <= sizeof(unsigned long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -+#endif -+ } -+ } else { -+#if CYTHON_USE_PYLONG_INTERNALS -+ const digit* digits = ((PyLongObject*)x)->ob_digit; -+ switch (Py_SIZE(x)) { -+ case 0: return (int) 0; -+ case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) -+ case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) -+ case -2: -+ if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -+ __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -+ return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ } -+ } -+ break; -+ case 2: -+ if (8 * sizeof(int) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -+ return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ } -+ } -+ break; -+ case -3: -+ if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -+ __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -+ return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ } -+ } -+ break; -+ case 3: -+ if (8 * sizeof(int) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -+ return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ } -+ } -+ break; -+ case -4: -+ if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -+ __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -+ return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ } -+ } -+ break; -+ case 4: -+ if (8 * sizeof(int) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -+ return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ } -+ } -+ break; -+ } -+#endif -+ if (sizeof(int) <= sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) -+#endif -+ } -+ } -+ { -+#if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) -+ PyErr_SetString(PyExc_RuntimeError, -+ "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); -+#else -+ int val; -+ PyObject *v = __Pyx_PyNumber_IntOrLong(x); -+ #if PY_MAJOR_VERSION < 3 -+ if (likely(v) && !PyLong_Check(v)) { -+ PyObject *tmp = v; -+ v = PyNumber_Long(tmp); -+ Py_DECREF(tmp); -+ } -+ #endif -+ if (likely(v)) { -+ int one = 1; int is_little = (int)*(unsigned char *)&one; -+ unsigned char *bytes = (unsigned char *)&val; -+ int ret = _PyLong_AsByteArray((PyLongObject *)v, -+ bytes, sizeof(val), -+ is_little, !is_unsigned); -+ Py_DECREF(v); -+ if (likely(!ret)) -+ return val; -+ } -+#endif -+ return (int) -1; -+ } -+ } else { -+ int val; -+ PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); -+ if (!tmp) return (int) -1; -+ val = __Pyx_PyInt_As_int(tmp); -+ Py_DECREF(tmp); -+ return val; -+ } -+raise_overflow: -+ PyErr_SetString(PyExc_OverflowError, -+ "value too large to convert to int"); -+ return (int) -1; -+raise_neg_overflow: -+ PyErr_SetString(PyExc_OverflowError, -+ "can't convert negative value to int"); -+ return (int) -1; -+} -+ - /* FastTypeChecks */ - #if CYTHON_COMPILING_IN_CPYTHON - static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { -@@ -9006,6 +7631,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_DECREF(x); - return ival; - } -+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { -+ if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { -+ return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); -+#if PY_MAJOR_VERSION < 3 -+ } else if (likely(PyInt_CheckExact(o))) { -+ return PyInt_AS_LONG(o); -+#endif -+ } else { -+ Py_ssize_t ival; -+ PyObject *x; -+ x = PyNumber_Index(o); -+ if (!x) return -1; -+ ival = PyInt_AsLong(x); -+ Py_DECREF(x); -+ return ival; -+ } -+} - static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); - } -diff --git a/cylp/cy/CyTest.cpp b/cylp/cy/CyTest.cpp -index 27df348..5d2bf28 100644 ---- a/cylp/cy/CyTest.cpp -+++ b/cylp/cy/CyTest.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)) -@@ -627,7 +698,13 @@ static CYTHON_INLINE float __PYX_NAN() { - #include "ClpFactorization.hpp" - #include "IClpPrimalColumnPivotBase.h" - #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 "ClpDualRowPivot.hpp" - #include "IClpDualRowPivotBase.h" - #include "CoinModel.hpp" -@@ -655,11 +732,11 @@ static CYTHON_INLINE float __PYX_NAN() { - #include "OsiSolverInterface.hpp" - #include "CbcCompareUser.hpp" - #include "ICbcModel.hpp" -+#include - #include "ios" - #include "new" - #include "stdexcept" - #include "typeinfo" --#include - #include - #include "IClpSimplex.hpp" - #ifdef _OPENMP -@@ -758,6 +835,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 -@@ -911,7 +989,7 @@ static const char *__pyx_f[] = { - "cylp/cy/CyPEPivot.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 # <<<<<<<<<<<<<< -@@ -920,7 +998,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 # <<<<<<<<<<<<<< -@@ -929,7 +1007,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 # <<<<<<<<<<<<<< -@@ -938,7 +1016,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 # <<<<<<<<<<<<<< -@@ -947,7 +1025,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 # <<<<<<<<<<<<<< -@@ -956,7 +1034,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 # <<<<<<<<<<<<<< -@@ -965,7 +1043,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 # <<<<<<<<<<<<<< -@@ -974,7 +1052,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 # <<<<<<<<<<<<<< -@@ -983,7 +1061,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 # <<<<<<<<<<<<<< -@@ -992,7 +1070,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 # <<<<<<<<<<<<<< -@@ -1001,7 +1079,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 # <<<<<<<<<<<<<< -@@ -1010,7 +1088,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 # <<<<<<<<<<<<<< -@@ -1019,7 +1097,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 # <<<<<<<<<<<<<< -@@ -1028,7 +1106,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 # <<<<<<<<<<<<<< -@@ -1037,7 +1115,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 # <<<<<<<<<<<<<< -@@ -1046,7 +1124,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 # <<<<<<<<<<<<<< -@@ -1055,7 +1133,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 # <<<<<<<<<<<<<< -@@ -1064,7 +1142,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 # <<<<<<<<<<<<<< -@@ -1073,7 +1151,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 # <<<<<<<<<<<<<< -@@ -1082,7 +1160,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 # <<<<<<<<<<<<<< -@@ -1091,7 +1169,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 # <<<<<<<<<<<<<< -@@ -1155,7 +1233,7 @@ struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus; - struct __pyx_obj_4cylp_2cy_14CyDantzigPivot_CyDantzigPivot; - struct __pyx_obj_4cylp_2cy_9CyPEPivot_CyPEPivot; - --/* "../../.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 # <<<<<<<<<<<<<< -@@ -1164,7 +1242,7 @@ struct __pyx_obj_4cylp_2cy_9CyPEPivot_CyPEPivot; - */ - 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 # <<<<<<<<<<<<<< -@@ -1173,7 +1251,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 # <<<<<<<<<<<<<< -@@ -1182,7 +1260,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 # <<<<<<<<<<<<<< -@@ -1913,6 +1991,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()\ -@@ -1920,6 +1999,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 */ -@@ -2014,6 +2094,11 @@ static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_ve - static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name); - #endif - -+/* GetTopmostException.proto */ -+#if CYTHON_USE_EXC_INFO_STACK -+static _PyErr_StackItem * __Pyx_PyErr_GetTopmostException(PyThreadState *tstate); -+#endif -+ - /* PyThreadStateGet.proto */ - #if CYTHON_FAST_THREAD_STATE - #define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; -@@ -2025,6 +2110,33 @@ static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name); - #define __Pyx_PyErr_Occurred() PyErr_Occurred() - #endif - -+/* SaveResetException.proto */ -+#if CYTHON_FAST_THREAD_STATE -+#define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb) -+static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); -+#define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb) -+static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); -+#else -+#define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb) -+#define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb) -+#endif -+ -+/* PyErrExceptionMatches.proto */ -+#if CYTHON_FAST_THREAD_STATE -+#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err) -+static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err); -+#else -+#define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err) -+#endif -+ -+/* GetException.proto */ -+#if CYTHON_FAST_THREAD_STATE -+#define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb) -+static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); -+#else -+static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); -+#endif -+ - /* PyErrFetchRestore.proto */ - #if CYTHON_FAST_THREAD_STATE - #define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) -@@ -2053,61 +2165,6 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - /* RaiseException.proto */ - static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); - --/* 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); --#endif -- --/* SaveResetException.proto */ --#if CYTHON_FAST_THREAD_STATE --#define __Pyx_ExceptionSave(type, value, tb) __Pyx__ExceptionSave(__pyx_tstate, type, value, tb) --static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); --#define __Pyx_ExceptionReset(type, value, tb) __Pyx__ExceptionReset(__pyx_tstate, type, value, tb) --static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); --#else --#define __Pyx_ExceptionSave(type, value, tb) PyErr_GetExcInfo(type, value, tb) --#define __Pyx_ExceptionReset(type, value, tb) PyErr_SetExcInfo(type, value, tb) --#endif -- --/* PyErrExceptionMatches.proto */ --#if CYTHON_FAST_THREAD_STATE --#define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err) --static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err); --#else --#define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err) --#endif -- --/* GetException.proto */ --#if CYTHON_FAST_THREAD_STATE --#define __Pyx_GetException(type, value, tb) __Pyx__GetException(__pyx_tstate, type, value, tb) --static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); --#else --static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); --#endif -- - /* TypeImport.proto */ - #ifndef __PYX_HAVE_RT_ImportType_proto - #define __PYX_HAVE_RT_ImportType_proto -@@ -2252,14 +2309,10 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - #endif - #endif - --/* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); -- --/* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value); -- --/* CIntFromPy.proto */ --static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); -+/* GCCDiagnostics.proto */ -+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -+#define __Pyx_HAS_GCC_DIAGNOSTIC -+#endif - - /* CIntToPy.proto */ - static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); -@@ -2267,6 +2320,9 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); - /* CIntFromPy.proto */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); - -+/* CIntFromPy.proto */ -+static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); -+ - /* FastTypeChecks.proto */ - #if CYTHON_COMPILING_IN_CPYTHON - #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) -@@ -2385,8 +2441,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.CyClpDualRowPivotBase' */ - static PyTypeObject *__pyx_ptype_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase = 0; -@@ -2446,9 +2511,6 @@ int __pyx_module_is_main_cylp__cy__CyTest = 0; - - /* Implementation of 'cylp.cy.CyTest' */ - static PyObject *__pyx_builtin_print; --static PyObject *__pyx_builtin_ValueError; --static PyObject *__pyx_builtin_range; --static PyObject *__pyx_builtin_RuntimeError; - static PyObject *__pyx_builtin_ImportError; - static const char __pyx_k_d[] = "d"; - static const char __pyx_k_p[] = "p"; -@@ -2459,7 +2521,6 @@ static const char __pyx_k_name[] = "__name__"; - static const char __pyx_k_test[] = "__test__"; - static const char __pyx_k_time[] = "time"; - static const char __pyx_k_print[] = "print"; --static const char __pyx_k_range[] = "range"; - static const char __pyx_k_start[] = "start"; - static const char __pyx_k_dpivot[] = "dpivot"; - static const char __pyx_k_import[] = "__import__"; -@@ -2469,31 +2530,18 @@ static const char __pyx_k_primal[] = "primal"; - static const char __pyx_k_CySolve[] = "CySolve"; - static const char __pyx_k_fileName[] = "fileName"; - static const char __pyx_k_Exec_time[] = "Exec time: "; --static const char __pyx_k_ValueError[] = "ValueError"; - static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; - static const char __pyx_k_ImportError[] = "ImportError"; --static const char __pyx_k_RuntimeError[] = "RuntimeError"; - static const char __pyx_k_perf_counter[] = "perf_counter"; - static const char __pyx_k_cylp_cy_CyTest[] = "cylp.cy.CyTest"; - static const char __pyx_k_objectiveValue[] = "objectiveValue"; - static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; - static const char __pyx_k_cylp_cy_CyTest_pyx[] = "cylp/cy/CyTest.pyx"; --static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; - static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import"; --static const char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%d)"; --static const char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; --static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; --static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; - static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import"; --static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; - static PyObject *__pyx_n_s_CySolve; - static PyObject *__pyx_kp_s_Exec_time; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; - static PyObject *__pyx_n_s_ImportError; --static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; --static PyObject *__pyx_n_s_RuntimeError; --static PyObject *__pyx_n_s_ValueError; - static PyObject *__pyx_n_s_cline_in_traceback; - static PyObject *__pyx_n_s_cylp_cy_CyTest; - static PyObject *__pyx_kp_s_cylp_cy_CyTest_pyx; -@@ -2504,8 +2552,6 @@ static PyObject *__pyx_n_s_import; - static PyObject *__pyx_n_s_main; - static PyObject *__pyx_n_s_method; - static PyObject *__pyx_n_s_name; --static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous; --static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou; - static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; - static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; - static PyObject *__pyx_n_s_objectiveValue; -@@ -2515,25 +2561,16 @@ static PyObject *__pyx_n_s_ppivot; - static PyObject *__pyx_n_s_primal; - static PyObject *__pyx_n_s_print; - static PyObject *__pyx_n_s_pyx_vtable; --static PyObject *__pyx_n_s_range; - static PyObject *__pyx_n_s_s; - static PyObject *__pyx_n_s_start; - static PyObject *__pyx_n_s_sys; - static PyObject *__pyx_n_s_test; - static PyObject *__pyx_n_s_time; --static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; - static PyObject *__pyx_pf_4cylp_2cy_6CyTest_CySolve(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_fileName, PyObject *__pyx_v_method); /* proto */ --static int __pyx_pf_5numpy_7ndarray___getbuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info, int __pyx_v_flags); /* proto */ --static void __pyx_pf_5numpy_7ndarray_2__releasebuffer__(PyArrayObject *__pyx_v_self, Py_buffer *__pyx_v_info); /* proto */ - static PyObject *__pyx_tuple_; - static PyObject *__pyx_tuple__2; - static PyObject *__pyx_tuple__3; --static PyObject *__pyx_tuple__4; --static PyObject *__pyx_tuple__5; --static PyObject *__pyx_tuple__6; --static PyObject *__pyx_tuple__7; --static PyObject *__pyx_tuple__8; --static PyObject *__pyx_codeobj__9; -+static PyObject *__pyx_codeobj__4; - /* Late includes */ - - /* "cylp/cy/CyTest.pyx":9 -@@ -2865,1020 +2902,161 @@ static PyObject *__pyx_pf_4cylp_2cy_6CyTest_CySolve(CYTHON_UNUSED PyObject *__py - 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 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":736 - * -- * cdef int i, ndim -- * cdef int endian_detector = 1 # <<<<<<<<<<<<<< -- * cdef bint little_endian = ((&endian_detector)[0] != 0) -- * -- */ -- __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(1, 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 -- * -- * 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":738 -+ * return PyArray_MultiIterNew(1, a) - * -- */ -- __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) -+ * 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") - */ -- if (unlikely(__pyx_t_1)) { - -- /* "../../.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") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 272, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(1, 272, __pyx_L1_error) -+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":270 -- * ndim = PyArray_NDIM(self) -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":739 - * -- * 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") -- */ -- } -- -- /* "../../.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_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") -+ * cdef inline object PyArray_MultiIterNew3(a, b, c): - */ -- __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; -- } -+ __Pyx_XDECREF(__pyx_r); -+ __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 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":275 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":738 -+ * return PyArray_MultiIterNew(1, a) - * -- * 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_MultiIterNew2(a, b): # <<<<<<<<<<<<<< -+ * return PyArray_MultiIterNew(2, a, b) - * - */ -- __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)) { -+ /* 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":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":741 -+ * return PyArray_MultiIterNew(2, a, b) - * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 276, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(1, 276, __pyx_L1_error) -- -- /* "../../.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") - */ -- } - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":278 -- * raise ValueError(u"ndarray is not Fortran contiguous") -- * -- * info.buf = PyArray_DATA(self) # <<<<<<<<<<<<<< -- * info.ndim = ndim -- * if sizeof(npy_intp) != sizeof(Py_ssize_t): -- */ -- __pyx_v_info->buf = PyArray_DATA(__pyx_v_self); -+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":279 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":742 - * -- * 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]); -- -- /* "../../.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) -- */ -- (__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; -- } -- -- /* "../../.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 -- */ -- /*else*/ { -- __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); -- -- /* "../../.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) -- */ -- __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; -- -- /* "../../.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) -+ * 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_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); -+ __Pyx_XDECREF(__pyx_r); -+ __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 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":293 -- * 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":741 -+ * return PyArray_MultiIterNew(2, a, b) - * -- * 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 inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< -+ * return PyArray_MultiIterNew(3, a, b, c) - * -- * cdef int t -- * cdef char* f = NULL # <<<<<<<<<<<<<< -- * cdef dtype descr = PyArray_DESCR(self) -- * cdef int offset - */ -- __pyx_v_f = NULL; - -- /* "../../.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 -- * -- */ -- __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; -+ /* 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":300 -- * cdef int offset -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":744 -+ * return PyArray_MultiIterNew(3, a, b, c) - * -- * 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__3, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 306, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(1, 306, __pyx_L1_error) -- -- /* "../../.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(1, 325, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_8 = PyUnicode_Format(__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 325, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_8); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 325, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(1, 325, __pyx_L1_error) -- break; -- } -- -- /* "../../.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(1, 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(1, 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(1, 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(1, 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) -+ * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< -+ * return PyArray_MultiIterNew(4, a, b, c, d) - * - */ - -@@ -3891,7 +3069,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":830 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -3899,13 +3077,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): - */ - __Pyx_XDECREF(__pyx_r); -- __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 830, __pyx_L1_error) -+ __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 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":829 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -3924,7 +3102,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - return __pyx_r; - } - --/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":832 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 - * return PyArray_MultiIterNew(4, a, b, c, d) - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -@@ -3941,863 +3119,114 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":833 -+ /* "../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_XDECREF(__pyx_r); -- __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 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) -- * -- */ -- -- /* 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(1, 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(1, 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(1, 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(1, 851, __pyx_L1_error) -- } -- __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 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(1, 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(1, 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(1, 852, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 852, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- #endif -- } else { -- __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(1, 852, __pyx_L1_error) -- } -- if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(1, 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(1, 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(1, 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(1, 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__4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 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(1, 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__3, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 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(1, 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(1, 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(1, 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(1, 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 -+ * return PyArray_MultiIterNew(5, a, b, c, d, e) # <<<<<<<<<<<<<< - * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -+ * cdef inline tuple PyDataType_SHAPE(dtype d): - */ -- __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); -- if (__pyx_t_6) { -+ __Pyx_XDECREF(__pyx_r); -+ __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 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":877 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 -+ * return PyArray_MultiIterNew(4, a, b, c, d) - * -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num # <<<<<<<<<<<<<< -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") -- */ -- __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 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.") -+ * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -+ * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - */ -- __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__5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 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(1, 879, __pyx_L1_error) -+ /* 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":878 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 -+ * return PyArray_MultiIterNew(5, a, b, c, d, e) - * -+ * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -+ * if PyDataType_HASSUBARRAY(d): -+ * return d.subarray.shape - */ -- } -- -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":882 -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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) -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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(1, 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): # <<<<<<<<<<<<<< -@@ -4809,7 +3238,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! # <<<<<<<<<<<<<< -@@ -4818,7 +3247,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) # <<<<<<<<<<<<<< -@@ -4827,7 +3256,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): # <<<<<<<<<<<<<< -@@ -4839,7 +3268,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): # <<<<<<<<<<<<<< -@@ -4854,7 +3283,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) # <<<<<<<<<<<<<< -@@ -4863,7 +3292,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: # <<<<<<<<<<<<<< -@@ -4873,7 +3302,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 # <<<<<<<<<<<<<< -@@ -4884,7 +3313,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: # <<<<<<<<<<<<<< -@@ -4893,7 +3322,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 base # <<<<<<<<<<<<<< -@@ -4905,7 +3334,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = ((PyObject *)__pyx_v_base); - goto __pyx_L0; - -- /* "../../.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): # <<<<<<<<<<<<<< -@@ -4920,12 +3349,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - return __pyx_r; - } - --/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1033 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { -@@ -4944,11 +3373,11 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_array", 0); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - { -@@ -4960,20 +3389,20 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":943 - * cdef inline int import_array() except -1: - * try: -- * _import_array() # <<<<<<<<<<<<<< -+ * __pyx_import_array() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") - */ -- __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1035, __pyx_L3_error) -+ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 943, __pyx_L3_error) - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - } -@@ -4983,9 +3412,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1036 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":944 - * try: -- * _import_array() -+ * __pyx_import_array() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.multiarray failed to import") - * -@@ -4993,32 +3422,32 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1036, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 944, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1037 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1037, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 945, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(1, 1037, __pyx_L5_except_error) -+ __PYX_ERR(1, 945, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - __Pyx_XGIVEREF(__pyx_t_1); -@@ -5029,12 +3458,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_L8_try_end:; - } - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1033 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - /* function exit code */ -@@ -5052,7 +3481,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - return __pyx_r; - } - --/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1039 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -5076,7 +3505,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_umath", 0); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5092,16 +3521,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":949 - * cdef inline int import_umath() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1041, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 949, __pyx_L3_error) - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5115,7 +3544,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1042 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":950 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< -@@ -5125,28 +3554,28 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1042, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 950, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1043 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1043, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 951, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(1, 1043, __pyx_L5_except_error) -+ __PYX_ERR(1, 951, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5161,7 +3590,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_L8_try_end:; - } - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1039 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -5184,7 +3613,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - return __pyx_r; - } - --/* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1045 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -5208,7 +3637,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_ufunc", 0); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5224,92 +3653,269 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":955 - * cdef inline int import_ufunc() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 1047, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(1, 955, __pyx_L3_error) -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 -+ * -+ * cdef inline int import_ufunc() except -1: -+ * try: # <<<<<<<<<<<<<< -+ * _import_umath() -+ * except Exception: -+ */ -+ } -+ __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; -+ __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; -+ __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; -+ goto __pyx_L8_try_end; -+ __pyx_L3_error:; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":956 -+ * try: -+ * _import_umath() -+ * except Exception: # <<<<<<<<<<<<<< -+ * raise ImportError("numpy.core.umath failed to import") -+ * -+ */ -+ __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); -+ if (__pyx_t_4) { -+ __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 956, __pyx_L5_except_error) -+ __Pyx_GOTREF(__pyx_t_5); -+ __Pyx_GOTREF(__pyx_t_6); -+ __Pyx_GOTREF(__pyx_t_7); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":957 -+ * _import_umath() -+ * except Exception: -+ * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< -+ * -+ * cdef extern from *: -+ */ -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 957, __pyx_L5_except_error) -+ __Pyx_GOTREF(__pyx_t_8); -+ __Pyx_Raise(__pyx_t_8, 0, 0, 0); -+ __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -+ __PYX_ERR(1, 957, __pyx_L5_except_error) -+ } -+ goto __pyx_L5_except_error; -+ __pyx_L5_except_error:; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 -+ * -+ * cdef inline int import_ufunc() except -1: -+ * try: # <<<<<<<<<<<<<< -+ * _import_umath() -+ * except Exception: -+ */ -+ __Pyx_XGIVEREF(__pyx_t_1); -+ __Pyx_XGIVEREF(__pyx_t_2); -+ __Pyx_XGIVEREF(__pyx_t_3); -+ __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); -+ goto __pyx_L1_error; -+ __pyx_L8_try_end:; -+ } -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 -+ * raise ImportError("numpy.core.umath failed to import") -+ * -+ * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -+ * try: -+ * _import_umath() -+ */ -+ -+ /* function exit code */ -+ __pyx_r = 0; -+ goto __pyx_L0; -+ __pyx_L1_error:; -+ __Pyx_XDECREF(__pyx_t_5); -+ __Pyx_XDECREF(__pyx_t_6); -+ __Pyx_XDECREF(__pyx_t_7); -+ __Pyx_XDECREF(__pyx_t_8); -+ __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -+ __pyx_r = -1; -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_timedelta64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":979 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_datetime64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":994 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { -+ npy_datetime __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1004 -+ * also needed. That can be found using `get_datetime64_unit`. -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { -+ npy_timedelta __pyx_r; - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1011 -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * - * -- * cdef inline int import_ufunc() except -1: -- * try: # <<<<<<<<<<<<<< -- * _import_umath() -- * except Exception: - */ -- } -- __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; -- __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; -- __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; -- goto __pyx_L8_try_end; -- __pyx_L3_error:; -+ __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1048 -- * try: -- * _import_umath() -- * except Exception: # <<<<<<<<<<<<<< -- * raise ImportError("numpy.core.umath failed to import") -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object - */ -- __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); -- if (__pyx_t_4) { -- __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(1, 1048, __pyx_L5_except_error) -- __Pyx_GOTREF(__pyx_t_5); -- __Pyx_GOTREF(__pyx_t_6); -- __Pyx_GOTREF(__pyx_t_7); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1049 -- * _import_umath() -- * except Exception: -- * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< -- */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 1049, __pyx_L5_except_error) -- __Pyx_GOTREF(__pyx_t_8); -- __Pyx_Raise(__pyx_t_8, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(1, 1049, __pyx_L5_except_error) -- } -- goto __pyx_L5_except_error; -- __pyx_L5_except_error:; -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: -- * try: # <<<<<<<<<<<<<< -- * _import_umath() -- * except Exception: -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ -- __Pyx_XGIVEREF(__pyx_t_1); -- __Pyx_XGIVEREF(__pyx_t_2); -- __Pyx_XGIVEREF(__pyx_t_3); -- __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_2, __pyx_t_3); -- goto __pyx_L1_error; -- __pyx_L8_try_end:; -- } - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1045 -- * raise ImportError("numpy.core.umath failed to import") -+static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { -+ NPY_DATETIMEUNIT __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1018 -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ * """ -+ * return (obj).obmeta.base # <<<<<<<<<<<<<< -+ */ -+ __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -- * try: -- * _import_umath() -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ - - /* function exit code */ -- __pyx_r = 0; -- goto __pyx_L0; -- __pyx_L1_error:; -- __Pyx_XDECREF(__pyx_t_5); -- __Pyx_XDECREF(__pyx_t_6); -- __Pyx_XDECREF(__pyx_t_7); -- __Pyx_XDECREF(__pyx_t_8); -- __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -- __pyx_r = -1; - __pyx_L0:; -- __Pyx_RefNannyFinishContext(); - return __pyx_r; - } - -@@ -5361,12 +3967,7 @@ static struct PyModuleDef __pyx_moduledef = { - static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_CySolve, __pyx_k_CySolve, sizeof(__pyx_k_CySolve), 0, 0, 1, 1}, - {&__pyx_kp_s_Exec_time, __pyx_k_Exec_time, sizeof(__pyx_k_Exec_time), 0, 0, 1, 0}, -- {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, -- {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, - {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, -- {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, -- {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, -- {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, - {&__pyx_n_s_cylp_cy_CyTest, __pyx_k_cylp_cy_CyTest, sizeof(__pyx_k_cylp_cy_CyTest), 0, 0, 1, 1}, - {&__pyx_kp_s_cylp_cy_CyTest_pyx, __pyx_k_cylp_cy_CyTest_pyx, sizeof(__pyx_k_cylp_cy_CyTest_pyx), 0, 0, 1, 0}, -@@ -5377,8 +3978,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, - {&__pyx_n_s_method, __pyx_k_method, sizeof(__pyx_k_method), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, -- {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, -- {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, - {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0}, - {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0}, - {&__pyx_n_s_objectiveValue, __pyx_k_objectiveValue, sizeof(__pyx_k_objectiveValue), 0, 0, 1, 1}, -@@ -5388,21 +3987,16 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_primal, __pyx_k_primal, sizeof(__pyx_k_primal), 0, 0, 1, 1}, - {&__pyx_n_s_print, __pyx_k_print, sizeof(__pyx_k_print), 0, 0, 1, 1}, - {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, -- {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_s, __pyx_k_s, sizeof(__pyx_k_s), 0, 0, 1, 1}, - {&__pyx_n_s_start, __pyx_k_start, sizeof(__pyx_k_start), 0, 0, 1, 1}, - {&__pyx_n_s_sys, __pyx_k_sys, sizeof(__pyx_k_sys), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, - {&__pyx_n_s_time, __pyx_k_time, sizeof(__pyx_k_time), 0, 0, 1, 1}, -- {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, - {0, 0, 0, 0, 0, 0, 0} - }; - static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_print = __Pyx_GetBuiltinName(__pyx_n_s_print); if (!__pyx_builtin_print) __PYX_ERR(0, 26, __pyx_L1_error) -- __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 272, __pyx_L1_error) -- __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(1, 285, __pyx_L1_error) -- __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(1, 855, __pyx_L1_error) -- __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 1037, __pyx_L1_error) -+ __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 945, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -@@ -5412,82 +4006,27 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 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") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple_)) __PYX_ERR(1, 272, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple_); -- __Pyx_GIVEREF(__pyx_tuple_); -- -- /* "../../.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") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(1, 276, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__2); -- __Pyx_GIVEREF(__pyx_tuple__2); -- -- /* "../../.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_tuple__3 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(1, 306, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__3); -- __Pyx_GIVEREF(__pyx_tuple__3); -- -- /* "../../.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_tuple__4 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(1, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__4); -- __Pyx_GIVEREF(__pyx_tuple__4); -- -- /* "../../.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_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(1, 879, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__5); -- __Pyx_GIVEREF(__pyx_tuple__5); -- -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1037 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(1, 1037, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__6); -- __Pyx_GIVEREF(__pyx_tuple__6); -+ __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple_)) __PYX_ERR(1, 945, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple_); -+ __Pyx_GIVEREF(__pyx_tuple_); - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1043 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(1, 1043, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__7); -- __Pyx_GIVEREF(__pyx_tuple__7); -+ __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(1, 951, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__2); -+ __Pyx_GIVEREF(__pyx_tuple__2); - - /* "cylp/cy/CyTest.pyx":9 - * -@@ -5496,10 +4035,10 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - * cdef CyClpSimplex s = CyClpSimplex() - * s.readMps(fileName, 0, 0) - */ -- __pyx_tuple__8 = PyTuple_Pack(6, __pyx_n_s_fileName, __pyx_n_s_method, __pyx_n_s_s, __pyx_n_s_dpivot, __pyx_n_s_ppivot, __pyx_n_s_start); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(0, 9, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__8); -- __Pyx_GIVEREF(__pyx_tuple__8); -- __pyx_codeobj__9 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__8, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cylp_cy_CyTest_pyx, __pyx_n_s_CySolve, 9, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__9)) __PYX_ERR(0, 9, __pyx_L1_error) -+ __pyx_tuple__3 = PyTuple_Pack(6, __pyx_n_s_fileName, __pyx_n_s_method, __pyx_n_s_s, __pyx_n_s_dpivot, __pyx_n_s_ppivot, __pyx_n_s_start); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 9, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__3); -+ __Pyx_GIVEREF(__pyx_tuple__3); -+ __pyx_codeobj__4 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__3, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cylp_cy_CyTest_pyx, __pyx_n_s_CySolve, 9, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__4)) __PYX_ERR(0, 9, __pyx_L1_error) - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; -@@ -5595,18 +4134,38 @@ static int __Pyx_modinit_type_import_code(void) { - if (!__pyx_ptype_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase) __PYX_ERR(6, 67, __pyx_L1_error) - __pyx_vtabptr_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase = (struct __pyx_vtabstruct_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase*)__Pyx_GetVtable(__pyx_ptype_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase->tp_dict); if (unlikely(!__pyx_vtabptr_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase)) __PYX_ERR(6, 67, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 206, __pyx_L1_error) -+ __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(1, 206, __pyx_L1_error) -- __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(1, 229, __pyx_L1_error) -- __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(1, 233, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(1, 200, __pyx_L1_error) -+ __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(1, 223, __pyx_L1_error) -+ __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(1, 227, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(1, 242, __pyx_L1_error) -- __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(1, 917, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(1, 239, __pyx_L1_error) -+ __pyx_ptype_5numpy_generic = __Pyx_ImportType(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_generic) __PYX_ERR(1, 771, __pyx_L1_error) -+ __pyx_ptype_5numpy_number = __Pyx_ImportType(__pyx_t_1, "numpy", "number", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_number) __PYX_ERR(1, 773, __pyx_L1_error) -+ __pyx_ptype_5numpy_integer = __Pyx_ImportType(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_integer) __PYX_ERR(1, 775, __pyx_L1_error) -+ __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(1, 777, __pyx_L1_error) -+ __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(1, 779, __pyx_L1_error) -+ __pyx_ptype_5numpy_inexact = __Pyx_ImportType(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(1, 781, __pyx_L1_error) -+ __pyx_ptype_5numpy_floating = __Pyx_ImportType(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_floating) __PYX_ERR(1, 783, __pyx_L1_error) -+ __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(1, 785, __pyx_L1_error) -+ __pyx_ptype_5numpy_flexible = __Pyx_ImportType(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(1, 787, __pyx_L1_error) -+ __pyx_ptype_5numpy_character = __Pyx_ImportType(__pyx_t_1, "numpy", "character", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_character) __PYX_ERR(1, 789, __pyx_L1_error) -+ __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(1, 827, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyClpDualRowPivotBase"); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 72, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); -@@ -5872,11 +4431,9 @@ if (!__Pyx_RefNanny) { - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ -- #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS -- #ifdef WITH_THREAD /* Python build with threading support? */ -+ #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - PyEval_InitThreads(); - #endif -- #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; -@@ -5983,12 +4540,12 @@ if (!__Pyx_RefNanny) { - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - -- /* "../../.local/anaconda3/lib/python3.8/site-packages/Cython/Includes/numpy/__init__.pxd":1045 -- * raise ImportError("numpy.core.umath failed to import") -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -- * try: -- * _import_umath() -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ - - /*--- Wrapped vars code ---*/ -@@ -6327,7 +4884,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, - #if CYTHON_COMPILING_IN_CPYTHON - static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; -- ternaryfunc call = func->ob_type->tp_call; -+ ternaryfunc call = Py_TYPE(func)->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -@@ -6579,7 +5136,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec - if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { - return __Pyx_PyObject_CallMethO(func, arg); - #if CYTHON_FAST_PYCCALL -- } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { -+ } else if (__Pyx_PyFastCFunction_Check(func)) { - return __Pyx_PyCFunction_FastCall(func, &arg, 1); - #endif - } -@@ -6658,6 +5215,161 @@ static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name) - return __Pyx_GetBuiltinName(name); - } - -+/* GetTopmostException */ -+#if CYTHON_USE_EXC_INFO_STACK -+static _PyErr_StackItem * -+__Pyx_PyErr_GetTopmostException(PyThreadState *tstate) -+{ -+ _PyErr_StackItem *exc_info = tstate->exc_info; -+ while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) && -+ exc_info->previous_item != NULL) -+ { -+ exc_info = exc_info->previous_item; -+ } -+ return exc_info; -+} -+#endif -+ -+/* SaveResetException */ -+#if CYTHON_FAST_THREAD_STATE -+static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { -+ #if CYTHON_USE_EXC_INFO_STACK -+ _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate); -+ *type = exc_info->exc_type; -+ *value = exc_info->exc_value; -+ *tb = exc_info->exc_traceback; -+ #else -+ *type = tstate->exc_type; -+ *value = tstate->exc_value; -+ *tb = tstate->exc_traceback; -+ #endif -+ Py_XINCREF(*type); -+ Py_XINCREF(*value); -+ Py_XINCREF(*tb); -+} -+static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { -+ PyObject *tmp_type, *tmp_value, *tmp_tb; -+ #if CYTHON_USE_EXC_INFO_STACK -+ _PyErr_StackItem *exc_info = tstate->exc_info; -+ tmp_type = exc_info->exc_type; -+ tmp_value = exc_info->exc_value; -+ tmp_tb = exc_info->exc_traceback; -+ exc_info->exc_type = type; -+ exc_info->exc_value = value; -+ exc_info->exc_traceback = tb; -+ #else -+ tmp_type = tstate->exc_type; -+ tmp_value = tstate->exc_value; -+ tmp_tb = tstate->exc_traceback; -+ tstate->exc_type = type; -+ tstate->exc_value = value; -+ tstate->exc_traceback = tb; -+ #endif -+ Py_XDECREF(tmp_type); -+ Py_XDECREF(tmp_value); -+ Py_XDECREF(tmp_tb); -+} -+#endif -+ -+/* PyErrExceptionMatches */ -+#if CYTHON_FAST_THREAD_STATE -+static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { -+ Py_ssize_t i, n; -+ n = PyTuple_GET_SIZE(tuple); -+#if PY_MAJOR_VERSION >= 3 -+ for (i=0; icurexc_type; -+ if (exc_type == err) return 1; -+ if (unlikely(!exc_type)) return 0; -+ if (unlikely(PyTuple_Check(err))) -+ return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err); -+ return __Pyx_PyErr_GivenExceptionMatches(exc_type, err); -+} -+#endif -+ -+/* GetException */ -+#if CYTHON_FAST_THREAD_STATE -+static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) -+#else -+static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) -+#endif -+{ -+ PyObject *local_type, *local_value, *local_tb; -+#if CYTHON_FAST_THREAD_STATE -+ PyObject *tmp_type, *tmp_value, *tmp_tb; -+ local_type = tstate->curexc_type; -+ local_value = tstate->curexc_value; -+ local_tb = tstate->curexc_traceback; -+ tstate->curexc_type = 0; -+ tstate->curexc_value = 0; -+ tstate->curexc_traceback = 0; -+#else -+ PyErr_Fetch(&local_type, &local_value, &local_tb); -+#endif -+ PyErr_NormalizeException(&local_type, &local_value, &local_tb); -+#if CYTHON_FAST_THREAD_STATE -+ if (unlikely(tstate->curexc_type)) -+#else -+ if (unlikely(PyErr_Occurred())) -+#endif -+ goto bad; -+ #if PY_MAJOR_VERSION >= 3 -+ if (local_tb) { -+ if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0)) -+ goto bad; -+ } -+ #endif -+ Py_XINCREF(local_tb); -+ Py_XINCREF(local_type); -+ Py_XINCREF(local_value); -+ *type = local_type; -+ *value = local_value; -+ *tb = local_tb; -+#if CYTHON_FAST_THREAD_STATE -+ #if CYTHON_USE_EXC_INFO_STACK -+ { -+ _PyErr_StackItem *exc_info = tstate->exc_info; -+ tmp_type = exc_info->exc_type; -+ tmp_value = exc_info->exc_value; -+ tmp_tb = exc_info->exc_traceback; -+ exc_info->exc_type = local_type; -+ exc_info->exc_value = local_value; -+ exc_info->exc_traceback = local_tb; -+ } -+ #else -+ tmp_type = tstate->exc_type; -+ tmp_value = tstate->exc_value; -+ tmp_tb = tstate->exc_traceback; -+ tstate->exc_type = local_type; -+ tstate->exc_value = local_value; -+ tstate->exc_traceback = local_tb; -+ #endif -+ Py_XDECREF(tmp_type); -+ Py_XDECREF(tmp_value); -+ Py_XDECREF(tmp_tb); -+#else -+ PyErr_SetExcInfo(local_type, local_value, local_tb); -+#endif -+ return 0; -+bad: -+ *type = 0; -+ *value = 0; -+ *tb = 0; -+ Py_XDECREF(local_type); -+ Py_XDECREF(local_value); -+ Py_XDECREF(local_tb); -+ return -1; -+} -+ - /* PyErrFetchRestore */ - #if CYTHON_FAST_THREAD_STATE - static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { -@@ -6841,216 +5553,6 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject - } - #endif - --/* DictGetItem */ --#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY --static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { -- PyObject *value; -- value = PyDict_GetItemWithError(d, key); -- if (unlikely(!value)) { -- if (!PyErr_Occurred()) { -- if (unlikely(PyTuple_Check(key))) { -- PyObject* args = PyTuple_Pack(1, key); -- if (likely(args)) { -- PyErr_SetObject(PyExc_KeyError, args); -- Py_DECREF(args); -- } -- } else { -- PyErr_SetObject(PyExc_KeyError, key); -- } -- } -- return NULL; -- } -- Py_INCREF(value); -- return value; --} --#endif -- --/* RaiseTooManyValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { -- PyErr_Format(PyExc_ValueError, -- "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); --} -- --/* RaiseNeedMoreValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { -- PyErr_Format(PyExc_ValueError, -- "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", -- index, (index == 1) ? "" : "s"); --} -- --/* RaiseNoneIterError */ --static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); --} -- --/* ExtTypeTest */ --static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { -- if (unlikely(!type)) { -- PyErr_SetString(PyExc_SystemError, "Missing type object"); -- return 0; -- } -- if (likely(__Pyx_TypeCheck(obj, type))) -- return 1; -- PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", -- Py_TYPE(obj)->tp_name, type->tp_name); -- return 0; --} -- --/* GetTopmostException */ --#if CYTHON_USE_EXC_INFO_STACK --static _PyErr_StackItem * --__Pyx_PyErr_GetTopmostException(PyThreadState *tstate) --{ -- _PyErr_StackItem *exc_info = tstate->exc_info; -- while ((exc_info->exc_type == NULL || exc_info->exc_type == Py_None) && -- exc_info->previous_item != NULL) -- { -- exc_info = exc_info->previous_item; -- } -- return exc_info; --} --#endif -- --/* SaveResetException */ --#if CYTHON_FAST_THREAD_STATE --static CYTHON_INLINE void __Pyx__ExceptionSave(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { -- #if CYTHON_USE_EXC_INFO_STACK -- _PyErr_StackItem *exc_info = __Pyx_PyErr_GetTopmostException(tstate); -- *type = exc_info->exc_type; -- *value = exc_info->exc_value; -- *tb = exc_info->exc_traceback; -- #else -- *type = tstate->exc_type; -- *value = tstate->exc_value; -- *tb = tstate->exc_traceback; -- #endif -- Py_XINCREF(*type); -- Py_XINCREF(*value); -- Py_XINCREF(*tb); --} --static CYTHON_INLINE void __Pyx__ExceptionReset(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { -- PyObject *tmp_type, *tmp_value, *tmp_tb; -- #if CYTHON_USE_EXC_INFO_STACK -- _PyErr_StackItem *exc_info = tstate->exc_info; -- tmp_type = exc_info->exc_type; -- tmp_value = exc_info->exc_value; -- tmp_tb = exc_info->exc_traceback; -- exc_info->exc_type = type; -- exc_info->exc_value = value; -- exc_info->exc_traceback = tb; -- #else -- tmp_type = tstate->exc_type; -- tmp_value = tstate->exc_value; -- tmp_tb = tstate->exc_traceback; -- tstate->exc_type = type; -- tstate->exc_value = value; -- tstate->exc_traceback = tb; -- #endif -- Py_XDECREF(tmp_type); -- Py_XDECREF(tmp_value); -- Py_XDECREF(tmp_tb); --} --#endif -- --/* PyErrExceptionMatches */ --#if CYTHON_FAST_THREAD_STATE --static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { -- Py_ssize_t i, n; -- n = PyTuple_GET_SIZE(tuple); --#if PY_MAJOR_VERSION >= 3 -- for (i=0; icurexc_type; -- if (exc_type == err) return 1; -- if (unlikely(!exc_type)) return 0; -- if (unlikely(PyTuple_Check(err))) -- return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err); -- return __Pyx_PyErr_GivenExceptionMatches(exc_type, err); --} --#endif -- --/* GetException */ --#if CYTHON_FAST_THREAD_STATE --static int __Pyx__GetException(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) --#else --static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb) --#endif --{ -- PyObject *local_type, *local_value, *local_tb; --#if CYTHON_FAST_THREAD_STATE -- PyObject *tmp_type, *tmp_value, *tmp_tb; -- local_type = tstate->curexc_type; -- local_value = tstate->curexc_value; -- local_tb = tstate->curexc_traceback; -- tstate->curexc_type = 0; -- tstate->curexc_value = 0; -- tstate->curexc_traceback = 0; --#else -- PyErr_Fetch(&local_type, &local_value, &local_tb); --#endif -- PyErr_NormalizeException(&local_type, &local_value, &local_tb); --#if CYTHON_FAST_THREAD_STATE -- if (unlikely(tstate->curexc_type)) --#else -- if (unlikely(PyErr_Occurred())) --#endif -- goto bad; -- #if PY_MAJOR_VERSION >= 3 -- if (local_tb) { -- if (unlikely(PyException_SetTraceback(local_value, local_tb) < 0)) -- goto bad; -- } -- #endif -- Py_XINCREF(local_tb); -- Py_XINCREF(local_type); -- Py_XINCREF(local_value); -- *type = local_type; -- *value = local_value; -- *tb = local_tb; --#if CYTHON_FAST_THREAD_STATE -- #if CYTHON_USE_EXC_INFO_STACK -- { -- _PyErr_StackItem *exc_info = tstate->exc_info; -- tmp_type = exc_info->exc_type; -- tmp_value = exc_info->exc_value; -- tmp_tb = exc_info->exc_traceback; -- exc_info->exc_type = local_type; -- exc_info->exc_value = local_value; -- exc_info->exc_traceback = local_tb; -- } -- #else -- tmp_type = tstate->exc_type; -- tmp_value = tstate->exc_value; -- tmp_tb = tstate->exc_traceback; -- tstate->exc_type = local_type; -- tstate->exc_value = local_value; -- tstate->exc_traceback = local_tb; -- #endif -- Py_XDECREF(tmp_type); -- Py_XDECREF(tmp_value); -- Py_XDECREF(tmp_tb); --#else -- PyErr_SetExcInfo(local_type, local_value, local_tb); --#endif -- return 0; --bad: -- *type = 0; -- *value = 0; -- *tb = 0; -- Py_XDECREF(local_type); -- Py_XDECREF(local_value); -- Py_XDECREF(local_tb); -- return -1; --} -- - /* TypeImport */ - #ifndef __PYX_HAVE_RT_ImportType - #define __PYX_HAVE_RT_ImportType -@@ -7243,7 +5745,7 @@ static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int - } - if (!use_cline) { - c_line = 0; -- PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); -+ (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; -@@ -7340,30 +5842,31 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { -- PyCodeObject *py_code = 0; -- PyObject *py_srcfile = 0; -- PyObject *py_funcname = 0; -+ PyCodeObject *py_code = NULL; -+ PyObject *py_funcname = NULL; - #if PY_MAJOR_VERSION < 3 -+ PyObject *py_srcfile = NULL; - py_srcfile = PyString_FromString(filename); -- #else -- py_srcfile = PyUnicode_FromString(filename); -- #endif - if (!py_srcfile) goto bad; -+ #endif - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; -+ funcname = PyUnicode_AsUTF8(py_funcname); -+ if (!funcname) goto bad; - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); -- #else -- py_funcname = PyUnicode_FromString(funcname); -+ if (!py_funcname) goto bad; - #endif - } -- if (!py_funcname) goto bad; -+ #if PY_MAJOR_VERSION < 3 - py_code = __Pyx_PyCode_New( - 0, - 0, -@@ -7382,11 +5885,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); -- Py_DECREF(py_funcname); -+ #else -+ py_code = PyCode_NewEmpty(filename, funcname, py_line); -+ #endif -+ Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline - return py_code; - bad: -- Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); -+ #if PY_MAJOR_VERSION < 3 -+ Py_XDECREF(py_srcfile); -+ #endif - return NULL; - } - static void __Pyx_AddTraceback(const char *funcname, int c_line, -@@ -7727,24 +6235,31 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - #endif - - /* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - if (is_unsigned) { -- if (sizeof(int) < sizeof(long)) { -+ if (sizeof(long) < sizeof(long)) { - return PyInt_FromLong((long) value); -- } else if (sizeof(int) <= sizeof(unsigned long)) { -+ } else if (sizeof(long) <= sizeof(unsigned long)) { - return PyLong_FromUnsignedLong((unsigned long) value); - #ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -+ } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { - return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); - #endif - } - } else { -- if (sizeof(int) <= sizeof(long)) { -+ if (sizeof(long) <= sizeof(long)) { - return PyInt_FromLong((long) value); - #ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -+ } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { - return PyLong_FromLongLong((PY_LONG_LONG) value); - #endif - } -@@ -7752,7 +6267,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - { - int one = 1; int little = (int)*(unsigned char *)&one; - unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(int), -+ return _PyLong_FromByteArray(bytes, sizeof(long), - little, !is_unsigned); - } - } -@@ -7779,51 +6294,27 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - return (target_type) value;\ - } - --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { -- const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(enum NPY_TYPES) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+/* CIntFromPy */ -+static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" - #endif -- } -- } else { -- if (sizeof(enum NPY_TYPES) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop - #endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), -- little, !is_unsigned); -- } --} -- --/* CIntFromPy */ --static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -- if (sizeof(int) < sizeof(long)) { -- __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) -+ if (sizeof(long) < sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } -- return (int) val; -+ return (long) val; - } - } else - #endif -@@ -7832,32 +6323,32 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { -- case 0: return (int) 0; -- case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) -+ case 0: return (long) 0; -+ case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) - case 2: -- if (8 * sizeof(int) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { -- return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { -+ return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - case 3: -- if (8 * sizeof(int) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { -- return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { -+ return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; - case 4: -- if (8 * sizeof(int) > 3 * PyLong_SHIFT) { -- if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { -- return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); -+ if (8 * sizeof(long) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { -+ return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); - } - } - break; -@@ -7871,86 +6362,86 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) -- return (int) -1; -+ return (long) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } - #endif -- if (sizeof(int) <= sizeof(unsigned long)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) -+ if (sizeof(long) <= sizeof(unsigned long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) - #ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -+ } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) - #endif - } - } else { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { -- case 0: return (int) 0; -- case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) -- case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) -+ case 0: return (long) 0; -+ case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) -+ case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) - case -2: -- if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -- return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -+ return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 2: -- if (8 * sizeof(int) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -- return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -+ return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case -3: -- if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -- return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -+ return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 3: -- if (8 * sizeof(int) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -- return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -+ return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case -4: -- if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -- return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { -+ return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - case 4: -- if (8 * sizeof(int) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(long) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -- return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { -+ return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); - } - } - break; - } - #endif -- if (sizeof(int) <= sizeof(long)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) -+ if (sizeof(long) <= sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) - #ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) -+ } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) - #endif - } - } -@@ -7959,7 +6450,7 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - PyErr_SetString(PyExc_RuntimeError, - "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); - #else -- int val; -+ long val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); - #if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { -@@ -7979,71 +6470,47 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - return val; - } - #endif -- return (int) -1; -+ return (long) -1; - } - } else { -- int val; -+ long val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); -- if (!tmp) return (int) -1; -- val = __Pyx_PyInt_As_int(tmp); -+ if (!tmp) return (long) -1; -+ val = __Pyx_PyInt_As_long(tmp); - Py_DECREF(tmp); - return val; - } - raise_overflow: - PyErr_SetString(PyExc_OverflowError, -- "value too large to convert to int"); -- return (int) -1; -+ "value too large to convert to long"); -+ return (long) -1; - raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, -- "can't convert negative value to int"); -- return (int) -1; -+ "can't convert negative value to long"); -+ return (long) -1; - } - --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(long) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(long) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+/* CIntFromPy */ -+static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" - #endif -- } -- } else { -- if (sizeof(long) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop - #endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(long), -- little, !is_unsigned); -- } --} -- --/* CIntFromPy */ --static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -- if (sizeof(long) < sizeof(long)) { -- __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) -+ if (sizeof(int) < sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) - } else { - long val = PyInt_AS_LONG(x); - if (is_unsigned && unlikely(val < 0)) { - goto raise_neg_overflow; - } -- return (long) val; -+ return (int) val; - } - } else - #endif -@@ -8052,32 +6519,32 @@ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { -- case 0: return (long) 0; -- case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) -+ case 0: return (int) 0; -+ case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) - case 2: -- if (8 * sizeof(long) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { -- return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { -+ return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - case 3: -- if (8 * sizeof(long) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { -- return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { -+ return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; - case 4: -- if (8 * sizeof(long) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { -- return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { -+ return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); - } - } - break; -@@ -8091,86 +6558,86 @@ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - { - int result = PyObject_RichCompareBool(x, Py_False, Py_LT); - if (unlikely(result < 0)) -- return (long) -1; -+ return (int) -1; - if (unlikely(result == 1)) - goto raise_neg_overflow; - } - #endif -- if (sizeof(long) <= sizeof(unsigned long)) { -- __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) -+ if (sizeof(int) <= sizeof(unsigned long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) - #ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) -+ } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) - #endif - } - } else { - #if CYTHON_USE_PYLONG_INTERNALS - const digit* digits = ((PyLongObject*)x)->ob_digit; - switch (Py_SIZE(x)) { -- case 0: return (long) 0; -- case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) -- case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) -+ case 0: return (int) 0; -+ case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) -+ case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) - case -2: -- if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -- return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -+ return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 2: -- if (8 * sizeof(long) > 1 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 1 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -- return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { -+ return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case -3: -- if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -- return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -+ return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 3: -- if (8 * sizeof(long) > 2 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 2 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -- return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { -+ return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case -4: -- if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { -- return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -+ return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - case 4: -- if (8 * sizeof(long) > 3 * PyLong_SHIFT) { -+ if (8 * sizeof(int) > 3 * PyLong_SHIFT) { - if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { -- __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -- } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { -- return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); -+ __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) -+ } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { -+ return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); - } - } - break; - } - #endif -- if (sizeof(long) <= sizeof(long)) { -- __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) -+ if (sizeof(int) <= sizeof(long)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) - #ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -- __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) -+ } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -+ __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) - #endif - } - } -@@ -8179,7 +6646,7 @@ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - PyErr_SetString(PyExc_RuntimeError, - "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); - #else -- long val; -+ int val; - PyObject *v = __Pyx_PyNumber_IntOrLong(x); - #if PY_MAJOR_VERSION < 3 - if (likely(v) && !PyLong_Check(v)) { -@@ -8199,24 +6666,24 @@ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { - return val; - } - #endif -- return (long) -1; -+ return (int) -1; - } - } else { -- long val; -+ int val; - PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); -- if (!tmp) return (long) -1; -- val = __Pyx_PyInt_As_long(tmp); -+ if (!tmp) return (int) -1; -+ val = __Pyx_PyInt_As_int(tmp); - Py_DECREF(tmp); - return val; - } - raise_overflow: - PyErr_SetString(PyExc_OverflowError, -- "value too large to convert to long"); -- return (long) -1; -+ "value too large to convert to int"); -+ return (int) -1; - raise_neg_overflow: - PyErr_SetString(PyExc_OverflowError, -- "can't convert negative value to long"); -- return (long) -1; -+ "can't convert negative value to int"); -+ return (int) -1; - } - - /* FastTypeChecks */ -@@ -8583,6 +7050,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_DECREF(x); - return ival; - } -+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { -+ if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { -+ return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); -+#if PY_MAJOR_VERSION < 3 -+ } else if (likely(PyInt_CheckExact(o))) { -+ return PyInt_AS_LONG(o); -+#endif -+ } else { -+ Py_ssize_t ival; -+ PyObject *x; -+ x = PyNumber_Index(o); -+ if (!x) return -1; -+ ival = PyInt_AsLong(x); -+ Py_DECREF(x); -+ return ival; -+ } -+} - static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); - } -diff --git a/cylp/cy/CyWolfePivot.cpp b/cylp/cy/CyWolfePivot.cpp -index 4a04bbf..7f08627 100644 ---- a/cylp/cy/CyWolfePivot.cpp -+++ b/cylp/cy/CyWolfePivot.cpp -@@ -1,14 +1,16 @@ --/* Generated by Cython 0.29.12 */ -+/* 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_12" --#define CYTHON_HEX_VERSION 0x001D0CF0 -+#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) -@@ -449,7 +516,15 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) - #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) - #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) -+ #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 - #else - #define CYTHON_PEP393_ENABLED 0 - #define PyUnicode_1BYTE_KIND 1 -@@ -498,8 +573,10 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #define PyString_Type PyUnicode_Type - #define PyString_Check PyUnicode_Check - #define PyString_CheckExact PyUnicode_CheckExact -+#ifndef PyObject_Unicode - #define PyObject_Unicode PyObject_Str - #endif -+#endif - #if PY_MAJOR_VERSION >= 3 - #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) - #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) -@@ -510,6 +587,13 @@ static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { - #ifndef PySet_CheckExact - #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) - #endif -+#if PY_VERSION_HEX >= 0x030900A4 -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) -+#else -+ #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) -+ #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) -+#endif - #if CYTHON_ASSUME_SAFE_MACROS - #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) - #else -@@ -543,13 +627,13 @@ 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) ? PyMethod_New(func, self) : (Py_INCREF(func), func)) -+ #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) - #else - #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) - #endif -@@ -590,11 +674,10 @@ static CYTHON_INLINE float __PYX_NAN() { - #define __Pyx_truncl truncl - #endif - -- -+#define __PYX_MARK_ERR_POS(f_index, lineno) \ -+ { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } - #define __PYX_ERR(f_index, lineno, Ln_error) \ --{ \ -- __pyx_filename = __pyx_f[f_index]; __pyx_lineno = lineno; __pyx_clineno = __LINE__; goto Ln_error; \ --} -+ { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } - - #ifndef __PYX_EXTERN_C - #ifdef __cplusplus -@@ -612,7 +695,13 @@ static CYTHON_INLINE float __PYX_NAN() { - #include "pythread.h" - #include "ICoinIndexedVector.hpp" - #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 "ClpDualRowPivot.hpp" - #include "ClpFactorization.hpp" - #include "IClpDualRowPivotBase.h" -@@ -641,11 +730,11 @@ static CYTHON_INLINE float __PYX_NAN() { - #include "OsiSolverInterface.hpp" - #include "CbcCompareUser.hpp" - #include "ICbcModel.hpp" -+#include - #include "ios" - #include "new" - #include "stdexcept" - #include "typeinfo" --#include - #include - #include "IClpPrimalColumnPivotBase.h" - #include "ClpPrimalColumnPivot.hpp" -@@ -746,6 +835,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 -@@ -881,23 +971,23 @@ static const char *__pyx_filename; - - static const char *__pyx_f[] = { - "stringsource", -- "cylp\\cy\\CyWolfePivot.pyx", -+ "cylp/cy/CyWolfePivot.pyx", - "__init__.pxd", - "type.pxd", - "bool.pxd", - "complex.pxd", -- "cylp\\cy\\CyCoinIndexedVector.pxd", -- "cylp\\cy\\CyClpDualRowPivotBase.pxd", -- "cylp\\cy\\CyCoinModel.pxd", -- "cylp\\cy\\CyCoinPackedMatrix.pxd", -- "cylp\\cy\\CyCgl.pxd", -- "cylp\\cy\\CyCbcNode.pxd", -- "cylp\\cy\\CyOsiSolverInterface.pxd", -- "cylp\\cy\\CyCbcModel.pxd", -- "cylp\\cy\\CyClpSimplex.pxd", -+ "cylp/cy/CyCoinIndexedVector.pxd", -+ "cylp/cy/CyClpDualRowPivotBase.pxd", -+ "cylp/cy/CyCoinModel.pxd", -+ "cylp/cy/CyCoinPackedMatrix.pxd", -+ "cylp/cy/CyCgl.pxd", -+ "cylp/cy/CyCbcNode.pxd", -+ "cylp/cy/CyOsiSolverInterface.pxd", -+ "cylp/cy/CyCbcModel.pxd", -+ "cylp/cy/CyClpSimplex.pxd", - }; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":776 -+/* "../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 # <<<<<<<<<<<<<< -@@ -906,7 +996,7 @@ static const char *__pyx_f[] = { - */ - typedef npy_int8 __pyx_t_5numpy_int8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":777 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":691 - * - * ctypedef npy_int8 int8_t - * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< -@@ -915,7 +1005,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; - */ - typedef npy_int16 __pyx_t_5numpy_int16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":778 -+/* "../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 # <<<<<<<<<<<<<< -@@ -924,7 +1014,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; - */ - typedef npy_int32 __pyx_t_5numpy_int32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":779 -+/* "../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 # <<<<<<<<<<<<<< -@@ -933,7 +1023,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; - */ - typedef npy_int64 __pyx_t_5numpy_int64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":783 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":697 - * #ctypedef npy_int128 int128_t - * - * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< -@@ -942,7 +1032,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; - */ - typedef npy_uint8 __pyx_t_5numpy_uint8_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":784 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":698 - * - * ctypedef npy_uint8 uint8_t - * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< -@@ -951,7 +1041,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; - */ - typedef npy_uint16 __pyx_t_5numpy_uint16_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":785 -+/* "../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 # <<<<<<<<<<<<<< -@@ -960,7 +1050,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; - */ - typedef npy_uint32 __pyx_t_5numpy_uint32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":786 -+/* "../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 # <<<<<<<<<<<<<< -@@ -969,7 +1059,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; - */ - typedef npy_uint64 __pyx_t_5numpy_uint64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":790 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":704 - * #ctypedef npy_uint128 uint128_t - * - * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< -@@ -978,7 +1068,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; - */ - typedef npy_float32 __pyx_t_5numpy_float32_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":791 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":705 - * - * ctypedef npy_float32 float32_t - * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< -@@ -987,7 +1077,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; - */ - typedef npy_float64 __pyx_t_5numpy_float64_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":800 -+/* "../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 # <<<<<<<<<<<<<< -@@ -996,7 +1086,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; - */ - typedef npy_long __pyx_t_5numpy_int_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":801 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1005,7 +1095,7 @@ typedef npy_long __pyx_t_5numpy_int_t; - */ - typedef npy_longlong __pyx_t_5numpy_long_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":802 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1014,7 +1104,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; - */ - typedef npy_longlong __pyx_t_5numpy_longlong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":804 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":718 - * ctypedef npy_longlong longlong_t - * - * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< -@@ -1023,7 +1113,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; - */ - typedef npy_ulong __pyx_t_5numpy_uint_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":805 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":719 - * - * ctypedef npy_ulong uint_t - * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< -@@ -1032,7 +1122,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":806 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1041,7 +1131,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":808 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":722 - * ctypedef npy_ulonglong ulonglong_t - * - * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< -@@ -1050,7 +1140,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - */ - typedef npy_intp __pyx_t_5numpy_intp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":809 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":723 - * - * ctypedef npy_intp intp_t - * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< -@@ -1059,7 +1149,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; - */ - typedef npy_uintp __pyx_t_5numpy_uintp_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":811 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":725 - * ctypedef npy_uintp uintp_t - * - * ctypedef npy_double float_t # <<<<<<<<<<<<<< -@@ -1068,7 +1158,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; - */ - typedef npy_double __pyx_t_5numpy_float_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":812 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":726 - * - * ctypedef npy_double float_t - * ctypedef npy_double double_t # <<<<<<<<<<<<<< -@@ -1077,7 +1167,7 @@ typedef npy_double __pyx_t_5numpy_float_t; - */ - typedef npy_double __pyx_t_5numpy_double_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":813 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1140,7 +1230,7 @@ struct __pyx_obj_4cylp_2cy_12CyClpSimplex_VarStatus; - struct __pyx_obj_4cylp_2cy_26CyClpPrimalColumnPivotBase_CyClpPrimalColumnPivotBase; - struct __pyx_obj_4cylp_2cy_12CyWolfePivot_CyWolfePivot; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":815 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":729 - * ctypedef npy_longdouble longdouble_t - * - * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< -@@ -1149,7 +1239,7 @@ struct __pyx_obj_4cylp_2cy_12CyWolfePivot_CyWolfePivot; - */ - typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":816 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":730 - * - * ctypedef npy_cfloat cfloat_t - * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< -@@ -1158,7 +1248,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - */ - typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":817 -+/* "../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 # <<<<<<<<<<<<<< -@@ -1167,7 +1257,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - */ - typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":819 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":733 - * ctypedef npy_clongdouble clongdouble_t - * - * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< -@@ -1860,6 +1950,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()\ -@@ -1867,6 +1958,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 */ -@@ -1983,29 +2075,6 @@ static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject - /* RaiseException.proto */ - static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); - --/* 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); -@@ -2078,6 +2147,9 @@ static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_nam - /* SetVTable.proto */ - static int __Pyx_SetVtable(PyObject *dict, void *vtable); - -+/* PyObjectGetAttrStrNoError.proto */ -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); -+ - /* SetupReduce.proto */ - static int __Pyx_setup_reduce(PyObject* type_obj); - -@@ -2133,14 +2205,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_long(long value); -- --/* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__IClpSimplex_3a__3a_Status(enum IClpSimplex::Status value); -- --/* CIntToPy.proto */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); -+/* GCCDiagnostics.proto */ -+#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) -+#define __Pyx_HAS_GCC_DIAGNOSTIC -+#endif - - /* RealImag.proto */ - #if CYTHON_CCOMPLEX -@@ -2240,12 +2308,18 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int 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_long(long value); -+ -+/* CIntToPy.proto */ -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__IClpSimplex_3a__3a_Status(enum IClpSimplex::Status value); -+ -+/* CIntToPy.proto */ -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value); -+ - /* CIntFromPy.proto */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); - -@@ -2370,8 +2444,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.CyClpDualRowPivotBase' */ - static PyTypeObject *__pyx_ptype_4cylp_2cy_21CyClpDualRowPivotBase_CyClpDualRowPivotBase = 0; -@@ -2432,9 +2515,6 @@ int __pyx_module_is_main_cylp__cy__CyWolfePivot = 0; - - /* Implementation of 'cylp.cy.CyWolfePivot' */ - static PyObject *__pyx_builtin_TypeError; --static PyObject *__pyx_builtin_ValueError; --static PyObject *__pyx_builtin_range; --static PyObject *__pyx_builtin_RuntimeError; - static PyObject *__pyx_builtin_ImportError; - static const char __pyx_k_main[] = "__main__"; - static const char __pyx_k_name[] = "__name__"; -@@ -2442,7 +2522,6 @@ static const char __pyx_k_test[] = "__test__"; - static const char __pyx_k_clear[] = "clear"; - static const char __pyx_k_nCols[] = "nCols"; - static const char __pyx_k_nRows[] = "nRows"; --static const char __pyx_k_range[] = "range"; - static const char __pyx_k_reduce[] = "__reduce__"; - static const char __pyx_k_indices[] = "indices"; - static const char __pyx_k_elements[] = "elements"; -@@ -2451,12 +2530,10 @@ static const char __pyx_k_setstate[] = "__setstate__"; - static const char __pyx_k_TypeError[] = "TypeError"; - static const char __pyx_k_nElements[] = "nElements"; - static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; --static const char __pyx_k_ValueError[] = "ValueError"; - static const char __pyx_k_nVariables[] = "nVariables"; - static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; - static const char __pyx_k_ImportError[] = "ImportError"; - static const char __pyx_k_CyWolfePivot[] = "CyWolfePivot"; --static const char __pyx_k_RuntimeError[] = "RuntimeError"; - static const char __pyx_k_reducedCosts[] = "reducedCosts"; - static const char __pyx_k_dualTolerance[] = "dualTolerance"; - static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; -@@ -2464,23 +2541,12 @@ static const char __pyx_k_transposeTimes[] = "transposeTimes"; - static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; - static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; - static const char __pyx_k_updateColumnTranspose[] = "updateColumnTranspose"; --static const char __pyx_k_ndarray_is_not_C_contiguous[] = "ndarray is not C contiguous"; - static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import"; --static const char __pyx_k_unknown_dtype_code_in_numpy_pxd[] = "unknown dtype code in numpy.pxd (%d)"; --static const char __pyx_k_Format_string_allocated_too_shor[] = "Format string allocated too short, see comment in numpy.pxd"; --static const char __pyx_k_Non_native_byte_order_not_suppor[] = "Non-native byte order not supported"; --static const char __pyx_k_ndarray_is_not_Fortran_contiguou[] = "ndarray is not Fortran contiguous"; - static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import"; - static const char __pyx_k_self_CppSelf_cannot_be_converted[] = "self.CppSelf cannot be converted to a Python object for pickling"; --static const char __pyx_k_Format_string_allocated_too_shor_2[] = "Format string allocated too short."; - static PyObject *__pyx_n_s_CyWolfePivot; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor; --static PyObject *__pyx_kp_u_Format_string_allocated_too_shor_2; - static PyObject *__pyx_n_s_ImportError; --static PyObject *__pyx_kp_u_Non_native_byte_order_not_suppor; --static PyObject *__pyx_n_s_RuntimeError; - static PyObject *__pyx_n_s_TypeError; --static PyObject *__pyx_n_s_ValueError; - static PyObject *__pyx_n_s_clear; - static PyObject *__pyx_n_s_cline_in_traceback; - static PyObject *__pyx_n_s_dualTolerance; -@@ -2493,12 +2559,9 @@ static PyObject *__pyx_n_s_nElements; - static PyObject *__pyx_n_s_nRows; - static PyObject *__pyx_n_s_nVariables; - static PyObject *__pyx_n_s_name; --static PyObject *__pyx_kp_u_ndarray_is_not_C_contiguous; --static PyObject *__pyx_kp_u_ndarray_is_not_Fortran_contiguou; - static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; - static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; - static PyObject *__pyx_n_s_pyx_vtable; --static PyObject *__pyx_n_s_range; - static PyObject *__pyx_n_s_reduce; - static PyObject *__pyx_n_s_reduce_cython; - static PyObject *__pyx_n_s_reduce_ex; -@@ -2508,12 +2571,9 @@ static PyObject *__pyx_n_s_setstate; - static PyObject *__pyx_n_s_setstate_cython; - static PyObject *__pyx_n_s_test; - static PyObject *__pyx_n_s_transposeTimes; --static PyObject *__pyx_kp_u_unknown_dtype_code_in_numpy_pxd; - static PyObject *__pyx_n_s_updateColumnTranspose; - static PyObject *__pyx_pf_4cylp_2cy_12CyWolfePivot_12CyWolfePivot___reduce_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_12CyWolfePivot_CyWolfePivot *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_12CyWolfePivot_12CyWolfePivot_2__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_4cylp_2cy_12CyWolfePivot_CyWolfePivot *__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_12CyWolfePivot_CyWolfePivot(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ - static PyObject *__pyx_int_1; - static PyObject *__pyx_int_2; -@@ -2524,11 +2584,6 @@ static PyObject *__pyx_tuple_; - static PyObject *__pyx_tuple__2; - static PyObject *__pyx_tuple__3; - static PyObject *__pyx_tuple__4; --static PyObject *__pyx_tuple__5; --static PyObject *__pyx_tuple__6; --static PyObject *__pyx_tuple__7; --static PyObject *__pyx_tuple__8; --static PyObject *__pyx_tuple__9; - /* Late includes */ - - /* "cylp/cy/CyWolfePivot.pyx":8 -@@ -2566,6 +2621,9 @@ static PyObject *__pyx_f_4cylp_2cy_12CyWolfePivot_12CyWolfePivot_pivotColumn(str - double __pyx_t_9; - Py_ssize_t __pyx_t_10; - int __pyx_t_11; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("pivotColumn", 0); - - /* "cylp/cy/CyWolfePivot.pyx":11 -@@ -3500,6 +3558,9 @@ static PyObject *__pyx_pf_4cylp_2cy_12CyWolfePivot_12CyWolfePivot___reduce_cytho - 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("__reduce_cython__", 0); - - /* "(tree fragment)":2 -@@ -3555,6 +3616,9 @@ static PyObject *__pyx_pf_4cylp_2cy_12CyWolfePivot_12CyWolfePivot_2__setstate_cy - 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("__setstate_cython__", 0); - - /* "(tree fragment)":4 -@@ -3585,1918 +3649,331 @@ static PyObject *__pyx_pf_4cylp_2cy_12CyWolfePivot_12CyWolfePivot_2__setstate_cy - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/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; -- 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); -+ PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; -+ __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":265 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":736 - * -- * cdef int i, ndim -- * cdef int endian_detector = 1 # <<<<<<<<<<<<<< -- * cdef bint little_endian = ((&endian_detector)[0] != 0) -- * -- */ -- __pyx_v_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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); - -- /* "../../../../Users/tkral/Anaconda3/lib/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; -+} - -- /* "../../../../Users/tkral/Anaconda3/lib/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:; - -- /* "../../../../Users/tkral/Anaconda3/lib/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); - -- /* "../../../../Users/tkral/Anaconda3/lib/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__3, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } - -- /* "../../../../Users/tkral/Anaconda3/lib/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:; - -- /* "../../../../Users/tkral/Anaconda3/lib/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); - -- /* "../../../../Users/tkral/Anaconda3/lib/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__4, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)))); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) -- */ -- (__pyx_v_info->shape[__pyx_v_i]) = (PyArray_DIMS(__pyx_v_self)[__pyx_v_i]); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- /*else*/ { -- __pyx_v_info->strides = ((Py_ssize_t *)PyArray_STRIDES(__pyx_v_self)); -+ /* 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; -+} - -- /* "../../../../Users/tkral/Anaconda3/lib/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:; - -- /* "../../../../Users/tkral/Anaconda3/lib/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; -+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); - -- /* "../../../../Users/tkral/Anaconda3/lib/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":745 - * -- */ -- __pyx_v_info->itemsize = PyArray_ITEMSIZE(__pyx_v_self); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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_MultiIterNew4(a, b, c, d): -+ * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< - * -- * cdef int t -+ * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): - */ -- __pyx_v_info->readonly = (!(PyArray_ISWRITEABLE(__pyx_v_self) != 0)); -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":296 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":744 -+ * return PyArray_MultiIterNew(3, a, b, c) - * -- * cdef int t -- * cdef char* f = NULL # <<<<<<<<<<<<<< -- * cdef dtype descr = PyArray_DESCR(self) -- * cdef int offset -- */ -- __pyx_v_f = NULL; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":297 -- * cdef int t -- * cdef char* f = NULL -- * cdef dtype descr = PyArray_DESCR(self) # <<<<<<<<<<<<<< -- * cdef int offset -+ * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< -+ * return PyArray_MultiIterNew(4, a, b, c, 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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":300 -- * cdef int offset -+ /* 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; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 -+ * return PyArray_MultiIterNew(4, a, b, c, d) - * -- * info.obj = self # <<<<<<<<<<<<<< -+ * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -+ * return PyArray_MultiIterNew(5, a, b, c, d, e) - * -- * 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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":302 -- * info.obj = self -+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); -+ -+ /* "../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) # <<<<<<<<<<<<<< - * -- * if not PyDataType_HASFIELDS(descr): # <<<<<<<<<<<<<< -- * t = descr.type_num -- * if ((descr.byteorder == c'>' and little_endian) or -+ * cdef inline tuple PyDataType_SHAPE(dtype d): - */ -- __pyx_t_1 = ((!(PyDataType_HASFIELDS(__pyx_v_descr) != 0)) != 0); -- if (__pyx_t_1) { -+ __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":303 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 -+ * 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) - * -- * 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; - -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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__5, 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) -- -- /* "../../../../Users/tkral/Anaconda3/lib/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") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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: -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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)); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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]) = '^'; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/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'; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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): -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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 -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/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(); --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -- * 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; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":822 -- * -- * 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, 822, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":821 -- * 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -- * 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; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":825 -- * -- * 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, 825, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":824 -- * 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -- * 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; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":828 -- * -- * 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, 828, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":827 -- * 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -- * 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; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":831 -- * -- * 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, 831, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":830 -- * 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -- * 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; -- __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":834 -- * -- * 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, 834, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_1); -- __pyx_r = __pyx_t_1; -- __pyx_t_1 = 0; -- goto __pyx_L0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":833 -- * 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) -- * -- */ -- -- /* 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -- * 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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -- * -- * 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) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":838 -- * 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; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":837 -- * -- * cdef inline tuple PyDataType_SHAPE(dtype d): -- * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -- * return d.subarray.shape -- * else: -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":840 -- * 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; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":836 -- * 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; --} -- --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * return () -- * -- * cdef inline char* _util_dtypestring(dtype descr, char* f, char* end, int* offset) except NULL: # <<<<<<<<<<<<<< -- * # Recursive utility function used in __getbuffer__ to get format -- * # string. The new location in the format string is returned. -- */ -- --static CYTHON_INLINE char *__pyx_f_5numpy__util_dtypestring(PyArray_Descr *__pyx_v_descr, char *__pyx_v_f, char *__pyx_v_end, int *__pyx_v_offset) { -- PyArray_Descr *__pyx_v_child = 0; -- int __pyx_v_endian_detector; -- int __pyx_v_little_endian; -- PyObject *__pyx_v_fields = 0; -- PyObject *__pyx_v_childname = NULL; -- PyObject *__pyx_v_new_offset = NULL; -- PyObject *__pyx_v_t = NULL; -- char *__pyx_r; -- __Pyx_RefNannyDeclarations -- PyObject *__pyx_t_1 = NULL; -- Py_ssize_t __pyx_t_2; -- PyObject *__pyx_t_3 = NULL; -- PyObject *__pyx_t_4 = NULL; -- int __pyx_t_5; -- int __pyx_t_6; -- int __pyx_t_7; -- long __pyx_t_8; -- char *__pyx_t_9; -- __Pyx_RefNannySetupContext("_util_dtypestring", 0); -- -- /* "../../../../Users/tkral/Anaconda3/lib/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_endian_detector = 1; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":848 -- * 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); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * cdef tuple fields -- * -- * for childname in descr.names: # <<<<<<<<<<<<<< -- * fields = descr.fields[childname] -- * child, new_offset = fields -- */ -- if (unlikely(__pyx_v_descr->names == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); -- __PYX_ERR(2, 851, __pyx_L1_error) -- } -- __pyx_t_1 = __pyx_v_descr->names; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; -- for (;;) { -- if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; -- #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, 851, __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, 851, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- #endif -- __Pyx_XDECREF_SET(__pyx_v_childname, __pyx_t_3); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":852 -- * -- * for childname in descr.names: -- * fields = descr.fields[childname] # <<<<<<<<<<<<<< -- * child, new_offset = fields -- * -- */ -- if (unlikely(__pyx_v_descr->fields == Py_None)) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); -- __PYX_ERR(2, 852, __pyx_L1_error) -- } -- __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_descr->fields, __pyx_v_childname); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- if (!(likely(PyTuple_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "tuple", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(2, 852, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_fields, ((PyObject*)__pyx_t_3)); -- __pyx_t_3 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":853 -- * 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, 853, __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, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- #endif -- } else { -- __Pyx_RaiseNoneNotIterableError(); __PYX_ERR(2, 853, __pyx_L1_error) -- } -- if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_dtype))))) __PYX_ERR(2, 853, __pyx_L1_error) -- __Pyx_XDECREF_SET(__pyx_v_child, ((PyArray_Descr *)__pyx_t_3)); -- __pyx_t_3 = 0; -- __Pyx_XDECREF_SET(__pyx_v_new_offset, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyNumber_Subtract(__pyx_v_new_offset, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_5 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) __PYX_ERR(2, 855, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = ((((__pyx_v_end - __pyx_v_f) - ((int)__pyx_t_5)) < 15) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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__6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 856, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":855 -- * 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") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '>') != 0); -- if (!__pyx_t_7) { -- goto __pyx_L8_next_or; -- } else { -- } -- __pyx_t_7 = (__pyx_v_little_endian != 0); -- if (!__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_L8_next_or:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":859 -- * -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): # <<<<<<<<<<<<<< -- * raise ValueError(u"Non-native byte order not supported") -- * # One could encode it in the format string and have Cython -- */ -- __pyx_t_7 = ((__pyx_v_child->byteorder == '<') != 0); -- if (__pyx_t_7) { -- } else { -- __pyx_t_6 = __pyx_t_7; -- goto __pyx_L7_bool_binop_done; -- } -- __pyx_t_7 = ((!(__pyx_v_little_endian != 0)) != 0); -- __pyx_t_6 = __pyx_t_7; -- __pyx_L7_bool_binop_done:; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":860 -- * if ((child.byteorder == c'>' and little_endian) or -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * # One could encode it in the format string and have Cython -- * # complain instead, BUT: < and > in format strings also imply -- */ -- __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 860, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_Raise(__pyx_t_3, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __PYX_ERR(2, 860, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":858 -- * raise RuntimeError(u"Format string allocated too short, see comment in numpy.pxd") -- * -- * if ((child.byteorder == c'>' and little_endian) or # <<<<<<<<<<<<<< -- * (child.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":870 -- * -- * # Output padding bytes -- * while offset[0] < new_offset: # <<<<<<<<<<<<<< -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- */ -- while (1) { -- __pyx_t_3 = __Pyx_PyInt_From_int((__pyx_v_offset[0])); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_t_3, __pyx_v_new_offset, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 870, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (!__pyx_t_6) break; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":871 -- * # Output padding bytes -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte # <<<<<<<<<<<<<< -- * f += 1 -- * offset[0] += 1 -- */ -- (__pyx_v_f[0]) = 0x78; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":872 -- * while offset[0] < new_offset: -- * f[0] = 120 # "x"; pad byte -- * f += 1 # <<<<<<<<<<<<<< -- * offset[0] += 1 -- * -- */ -- __pyx_v_f = (__pyx_v_f + 1); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":873 -- * f[0] = 120 # "x"; pad byte -- * f += 1 -- * offset[0] += 1 # <<<<<<<<<<<<<< -- * -- * offset[0] += child.itemsize -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + 1); -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":875 -- * offset[0] += 1 -- * -- * offset[0] += child.itemsize # <<<<<<<<<<<<<< -- * -- * if not PyDataType_HASFIELDS(child): -- */ -- __pyx_t_8 = 0; -- (__pyx_v_offset[__pyx_t_8]) = ((__pyx_v_offset[__pyx_t_8]) + __pyx_v_child->elsize); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * offset[0] += child.itemsize -- * -- * if not PyDataType_HASFIELDS(child): # <<<<<<<<<<<<<< -- * t = child.type_num -- * if end - f < 5: -- */ -- __pyx_t_6 = ((!(PyDataType_HASFIELDS(__pyx_v_child) != 0)) != 0); -- if (__pyx_t_6) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":878 -- * -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num # <<<<<<<<<<<<<< -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") -- */ -- __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_child->type_num); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 878, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4); -- __pyx_t_4 = 0; -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- __pyx_t_6 = (((__pyx_v_end - __pyx_v_f) < 5) != 0); -- if (unlikely(__pyx_t_6)) { -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_RuntimeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 880, __pyx_L1_error) -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":879 -- * if not PyDataType_HASFIELDS(child): -- * t = child.type_num -- * if end - f < 5: # <<<<<<<<<<<<<< -- * raise RuntimeError(u"Format string allocated too short.") -- * -- */ -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":883 -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" # <<<<<<<<<<<<<< -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_BYTE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 883, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 98; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":884 -- * # Until ticket #99 is fixed, use integers to avoid warnings -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" # <<<<<<<<<<<<<< -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UBYTE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 884, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":885 -- * if t == NPY_BYTE: f[0] = 98 #"b" -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" # <<<<<<<<<<<<<< -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_SHORT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 885, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x68; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":886 -- * elif t == NPY_UBYTE: f[0] = 66 #"B" -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" # <<<<<<<<<<<<<< -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_USHORT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 886, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 72; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":887 -- * elif t == NPY_SHORT: f[0] = 104 #"h" -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" # <<<<<<<<<<<<<< -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_INT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 887, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x69; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":888 -- * elif t == NPY_USHORT: f[0] = 72 #"H" -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" # <<<<<<<<<<<<<< -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_UINT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 888, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 73; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":889 -- * elif t == NPY_INT: f[0] = 105 #"i" -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 889, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x6C; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":890 -- * elif t == NPY_UINT: f[0] = 73 #"I" -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 890, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 76; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":891 -- * elif t == NPY_LONG: f[0] = 108 #"l" -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" # <<<<<<<<<<<<<< -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGLONG); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 891, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x71; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":892 -- * elif t == NPY_ULONG: f[0] = 76 #"L" -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" # <<<<<<<<<<<<<< -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_ULONGLONG); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 892, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 81; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":893 -- * elif t == NPY_LONGLONG: f[0] = 113 #"q" -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" # <<<<<<<<<<<<<< -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_FLOAT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 893, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x66; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":894 -- * elif t == NPY_ULONGLONG: f[0] = 81 #"Q" -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" # <<<<<<<<<<<<<< -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_DOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 894, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x64; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":895 -- * elif t == NPY_FLOAT: f[0] = 102 #"f" -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" # <<<<<<<<<<<<<< -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_LONGDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 895, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 0x67; -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":896 -- * elif t == NPY_DOUBLE: f[0] = 100 #"d" -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf # <<<<<<<<<<<<<< -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CFLOAT); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 896, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x66; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":897 -- * elif t == NPY_LONGDOUBLE: f[0] = 103 #"g" -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd # <<<<<<<<<<<<<< -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CDOUBLE); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 897, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x64; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":898 -- * elif t == NPY_CFLOAT: f[0] = 90; f[1] = 102; f += 1 # Zf -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg # <<<<<<<<<<<<<< -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- */ -- __pyx_t_3 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_CLONGDOUBLE); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = PyObject_RichCompare(__pyx_v_t, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 898, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (__pyx_t_6) { -- (__pyx_v_f[0]) = 90; -- (__pyx_v_f[1]) = 0x67; -- __pyx_v_f = (__pyx_v_f + 1); -- goto __pyx_L15; -- } -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":899 -- * elif t == NPY_CDOUBLE: f[0] = 90; f[1] = 100; f += 1 # Zd -- * elif t == NPY_CLONGDOUBLE: f[0] = 90; f[1] = 103; f += 1 # Zg -- * elif t == NPY_OBJECT: f[0] = 79 #"O" # <<<<<<<<<<<<<< -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- */ -- __pyx_t_4 = __Pyx_PyInt_From_enum__NPY_TYPES(NPY_OBJECT); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(2, 899, __pyx_L1_error) -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- if (likely(__pyx_t_6)) { -- (__pyx_v_f[0]) = 79; -- goto __pyx_L15; -- } -+ /* 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; -+} - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":901 -- * elif t == NPY_OBJECT: f[0] = 79 #"O" -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) # <<<<<<<<<<<<<< -- * f += 1 -- * else: -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 -+ * return PyArray_MultiIterNew(5, a, b, c, d, e) -+ * -+ * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -+ * if PyDataType_HASSUBARRAY(d): -+ * return d.subarray.shape - */ -- /*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, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_ValueError, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(2, 901, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_4); -- __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; -- __Pyx_Raise(__pyx_t_4, 0, 0, 0); -- __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __PYX_ERR(2, 901, __pyx_L1_error) -- } -- __pyx_L15:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":902 -- * else: -- * raise ValueError(u"unknown dtype code in numpy.pxd (%d)" % t) -- * f += 1 # <<<<<<<<<<<<<< -- * else: -- * # Cython ignores struct boundary information ("T{...}"), -- */ -- __pyx_v_f = (__pyx_v_f + 1); -+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); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":877 -- * 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) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":906 -- * # Cython ignores struct boundary information ("T{...}"), -- * # so don't output it -- * f = _util_dtypestring(child, f, end, offset) # <<<<<<<<<<<<<< -- * return f -- * -+ /* "../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, 906, __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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":851 -- * 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; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":907 -- * # 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; -+ } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":842 -- * 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; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -+/* "../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): # <<<<<<<<<<<<<< -@@ -5508,7 +3985,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1023 -+ /* "../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! # <<<<<<<<<<<<<< -@@ -5517,7 +3994,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - Py_INCREF(__pyx_v_base); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1024 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -5526,7 +4003,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base)); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1022 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -5538,7 +4015,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyFinishContext(); - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+/* "../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): # <<<<<<<<<<<<<< -@@ -5553,7 +4030,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - int __pyx_t_1; - __Pyx_RefNannySetupContext("get_array_base", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1027 -+ /* "../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) # <<<<<<<<<<<<<< -@@ -5562,7 +4039,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - __pyx_v_base = PyArray_BASE(__pyx_v_arr); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -5572,7 +4049,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) { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1029 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":936 - * base = PyArray_BASE(arr) - * if base is NULL: - * return None # <<<<<<<<<<<<<< -@@ -5583,7 +4060,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1028 -+ /* "../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: # <<<<<<<<<<<<<< -@@ -5592,7 +4069,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1030 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":937 - * if base is NULL: - * return None - * return base # <<<<<<<<<<<<<< -@@ -5604,7 +4081,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = ((PyObject *)__pyx_v_base); - goto __pyx_L0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1026 -+ /* "../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): # <<<<<<<<<<<<<< -@@ -5619,12 +4096,12 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { -@@ -5638,13 +4115,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_array", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - { -@@ -5656,20 +4136,20 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1036 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":943 - * cdef inline int import_array() except -1: - * try: -- * _import_array() # <<<<<<<<<<<<<< -+ * __pyx_import_array() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") - */ -- __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1036, __pyx_L3_error) -+ __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 943, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - } -@@ -5679,9 +4159,9 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1037 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":944 - * try: -- * _import_array() -+ * __pyx_import_array() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.multiarray failed to import") - * -@@ -5689,32 +4169,32 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1037, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 944, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 945, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1038, __pyx_L5_except_error) -+ __PYX_ERR(2, 945, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1035 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -- * _import_array() -+ * __pyx_import_array() - * except Exception: - */ - __Pyx_XGIVEREF(__pyx_t_1); -@@ -5725,12 +4205,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1034 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< - * try: -- * _import_array() -+ * __pyx_import_array() - */ - - /* function exit code */ -@@ -5748,7 +4228,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -5767,9 +4247,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_umath", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5785,16 +4268,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1042 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":949 - * cdef inline int import_umath() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1042, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 949, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5808,7 +4291,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1043 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":950 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< -@@ -5818,28 +4301,28 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1043, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 950, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 951, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1044, __pyx_L5_except_error) -+ __PYX_ERR(2, 951, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1041 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5854,7 +4337,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1040 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -5877,7 +4360,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - return __pyx_r; - } - --/* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -5896,9 +4379,12 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - PyObject *__pyx_t_6 = NULL; - PyObject *__pyx_t_7 = NULL; - PyObject *__pyx_t_8 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_ufunc", 0); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5914,16 +4400,16 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1048 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":955 - * cdef inline int import_ufunc() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< - * except Exception: - * raise ImportError("numpy.core.umath failed to import") - */ -- __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1048, __pyx_L3_error) -+ __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 955, __pyx_L3_error) - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5937,35 +4423,38 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1049 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":956 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< - * raise ImportError("numpy.core.umath failed to import") -+ * - */ - __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); - if (__pyx_t_4) { - __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); -- if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1049, __pyx_L5_except_error) -+ if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 956, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1050 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":957 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< -+ * -+ * cdef extern from *: - */ -- __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 957, __pyx_L5_except_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_Raise(__pyx_t_8, 0, 0, 0); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -- __PYX_ERR(2, 1050, __pyx_L5_except_error) -+ __PYX_ERR(2, 957, __pyx_L5_except_error) - } - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1047 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -5980,7 +4469,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __pyx_L8_try_end:; - } - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -6002,6 +4491,180 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_RefNannyFinishContext(); - return __pyx_r; - } -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_timedelta64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":979 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ * -+ * -+ * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.timedelta64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) { -+ int __pyx_r; -+ __Pyx_RefNannyDeclarations -+ __Pyx_RefNannySetupContext("is_datetime64_object", 0); -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":994 -+ * bool -+ * """ -+ * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ * -+ * -+ * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -+ * """ -+ * Cython equivalent of `isinstance(obj, np.datetime64)` -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ __Pyx_RefNannyFinishContext(); -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { -+ npy_datetime __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1004 -+ * also needed. That can be found using `get_datetime64_unit`. -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ * -+ * -+ * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy datetime64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { -+ npy_timedelta __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1011 -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ * """ -+ * return (obj).obval # <<<<<<<<<<<<<< -+ * -+ * -+ */ -+ __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ * -+ * -+ * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the int64 value underlying scalar numpy timedelta64 object -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} -+ -+/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { -+ NPY_DATETIMEUNIT __pyx_r; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1018 -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ * """ -+ * return (obj).obmeta.base # <<<<<<<<<<<<<< -+ */ -+ __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); -+ goto __pyx_L0; -+ -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ * -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. -+ */ -+ -+ /* function exit code */ -+ __pyx_L0:; -+ return __pyx_r; -+} - static struct __pyx_vtabstruct_4cylp_2cy_12CyWolfePivot_CyWolfePivot __pyx_vtable_4cylp_2cy_12CyWolfePivot_CyWolfePivot; - - static PyObject *__pyx_tp_new_4cylp_2cy_12CyWolfePivot_CyWolfePivot(PyTypeObject *t, PyObject *a, PyObject *k) { -@@ -6047,7 +4710,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_12CyWolfePivot_CyWolfePivot = { - sizeof(struct __pyx_obj_4cylp_2cy_12CyWolfePivot_CyWolfePivot), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_4cylp_2cy_12CyWolfePivot_CyWolfePivot, /*tp_dealloc*/ -+ #if PY_VERSION_HEX < 0x030800b4 - 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030800b4 -+ 0, /*tp_vectorcall_offset*/ -+ #endif - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - #if PY_MAJOR_VERSION < 3 -@@ -6100,6 +4768,12 @@ static PyTypeObject __pyx_type_4cylp_2cy_12CyWolfePivot_CyWolfePivot = { - #if PY_VERSION_HEX >= 0x030800b1 - 0, /*tp_vectorcall*/ - #endif -+ #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 -+ 0, /*tp_print*/ -+ #endif -+ #if PY_VERSION_HEX >= 0x030B00A2 -+ 0, /*tp_inline_values_offset*/ -+ #endif - }; - - static PyMethodDef __pyx_methods[] = { -@@ -6149,13 +4823,8 @@ static struct PyModuleDef __pyx_moduledef = { - - static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_CyWolfePivot, __pyx_k_CyWolfePivot, sizeof(__pyx_k_CyWolfePivot), 0, 0, 1, 1}, -- {&__pyx_kp_u_Format_string_allocated_too_shor, __pyx_k_Format_string_allocated_too_shor, sizeof(__pyx_k_Format_string_allocated_too_shor), 0, 1, 0, 0}, -- {&__pyx_kp_u_Format_string_allocated_too_shor_2, __pyx_k_Format_string_allocated_too_shor_2, sizeof(__pyx_k_Format_string_allocated_too_shor_2), 0, 1, 0, 0}, - {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, -- {&__pyx_kp_u_Non_native_byte_order_not_suppor, __pyx_k_Non_native_byte_order_not_suppor, sizeof(__pyx_k_Non_native_byte_order_not_suppor), 0, 1, 0, 0}, -- {&__pyx_n_s_RuntimeError, __pyx_k_RuntimeError, sizeof(__pyx_k_RuntimeError), 0, 0, 1, 1}, - {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, -- {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, - {&__pyx_n_s_clear, __pyx_k_clear, sizeof(__pyx_k_clear), 0, 0, 1, 1}, - {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, - {&__pyx_n_s_dualTolerance, __pyx_k_dualTolerance, sizeof(__pyx_k_dualTolerance), 0, 0, 1, 1}, -@@ -6168,12 +4837,9 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_nRows, __pyx_k_nRows, sizeof(__pyx_k_nRows), 0, 0, 1, 1}, - {&__pyx_n_s_nVariables, __pyx_k_nVariables, sizeof(__pyx_k_nVariables), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, -- {&__pyx_kp_u_ndarray_is_not_C_contiguous, __pyx_k_ndarray_is_not_C_contiguous, sizeof(__pyx_k_ndarray_is_not_C_contiguous), 0, 1, 0, 0}, -- {&__pyx_kp_u_ndarray_is_not_Fortran_contiguou, __pyx_k_ndarray_is_not_Fortran_contiguou, sizeof(__pyx_k_ndarray_is_not_Fortran_contiguou), 0, 1, 0, 0}, - {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0}, - {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0}, - {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, -- {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, -@@ -6183,16 +4849,12 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, - {&__pyx_n_s_transposeTimes, __pyx_k_transposeTimes, sizeof(__pyx_k_transposeTimes), 0, 0, 1, 1}, -- {&__pyx_kp_u_unknown_dtype_code_in_numpy_pxd, __pyx_k_unknown_dtype_code_in_numpy_pxd, sizeof(__pyx_k_unknown_dtype_code_in_numpy_pxd), 0, 1, 0, 0}, - {&__pyx_n_s_updateColumnTranspose, __pyx_k_updateColumnTranspose, sizeof(__pyx_k_updateColumnTranspose), 0, 0, 1, 1}, - {0, 0, 0, 0, 0, 0, 0} - }; - static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 2, __pyx_L1_error) -- __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(2, 272, __pyx_L1_error) -- __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(2, 285, __pyx_L1_error) -- __pyx_builtin_RuntimeError = __Pyx_GetBuiltinName(__pyx_n_s_RuntimeError); if (!__pyx_builtin_RuntimeError) __PYX_ERR(2, 856, __pyx_L1_error) -- __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 1038, __pyx_L1_error) -+ __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(2, 945, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -@@ -6221,82 +4883,27 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_GOTREF(__pyx_tuple__2); - __Pyx_GIVEREF(__pyx_tuple__2); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":272 -- * if ((flags & pybuf.PyBUF_C_CONTIGUOUS == pybuf.PyBUF_C_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_C_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not C contiguous") # <<<<<<<<<<<<<< -- * -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- */ -- __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_C_contiguous); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(2, 272, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__3); -- __Pyx_GIVEREF(__pyx_tuple__3); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":276 -- * if ((flags & pybuf.PyBUF_F_CONTIGUOUS == pybuf.PyBUF_F_CONTIGUOUS) -- * and not PyArray_CHKFLAGS(self, NPY_ARRAY_F_CONTIGUOUS)): -- * raise ValueError(u"ndarray is not Fortran contiguous") # <<<<<<<<<<<<<< -- * -- * info.buf = PyArray_DATA(self) -- */ -- __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_u_ndarray_is_not_Fortran_contiguou); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 276, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__4); -- __Pyx_GIVEREF(__pyx_tuple__4); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":306 -- * if ((descr.byteorder == c'>' and little_endian) or -- * (descr.byteorder == c'<' and not little_endian)): -- * raise ValueError(u"Non-native byte order not supported") # <<<<<<<<<<<<<< -- * if t == NPY_BYTE: f = "b" -- * elif t == NPY_UBYTE: f = "B" -- */ -- __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_u_Non_native_byte_order_not_suppor); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(2, 306, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__5); -- __Pyx_GIVEREF(__pyx_tuple__5); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":856 -- * -- * 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_tuple__6 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(2, 856, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__6); -- __Pyx_GIVEREF(__pyx_tuple__6); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":880 -- * t = child.type_num -- * if end - f < 5: -- * raise RuntimeError(u"Format string allocated too short.") # <<<<<<<<<<<<<< -- * -- * # Until ticket #99 is fixed, use integers to avoid warnings -- */ -- __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_u_Format_string_allocated_too_shor_2); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(2, 880, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__7); -- __Pyx_GIVEREF(__pyx_tuple__7); -- -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1038 -- * _import_array() -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: - */ -- __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(2, 1038, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__8); -- __Pyx_GIVEREF(__pyx_tuple__8); -+ __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(2, 945, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__3); -+ __Pyx_GIVEREF(__pyx_tuple__3); - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1044 -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: - */ -- __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(2, 1044, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_tuple__9); -- __Pyx_GIVEREF(__pyx_tuple__9); -+ __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(2, 951, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_tuple__4); -+ __Pyx_GIVEREF(__pyx_tuple__4); - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; -@@ -6351,6 +4958,9 @@ static int __Pyx_modinit_function_export_code(void) { - static int __Pyx_modinit_type_init_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyClpPrimalColumnPivotBase"); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error) -@@ -6387,6 +4997,9 @@ static int __Pyx_modinit_type_init_code(void) { - static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 9, __pyx_L1_error) -@@ -6416,18 +5029,38 @@ static int __Pyx_modinit_type_import_code(void) { - if (!__pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector) __PYX_ERR(6, 22, __pyx_L1_error) - __pyx_vtabptr_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector = (struct __pyx_vtabstruct_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector*)__Pyx_GetVtable(__pyx_ptype_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector->tp_dict); if (unlikely(!__pyx_vtabptr_4cylp_2cy_19CyCoinIndexedVector_CyCoinIndexedVector)) __PYX_ERR(6, 22, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 206, __pyx_L1_error) -+ __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 206, __pyx_L1_error) -- __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 229, __pyx_L1_error) -- __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 233, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 200, __pyx_L1_error) -+ __pyx_ptype_5numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 223, __pyx_L1_error) -+ __pyx_ptype_5numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 227, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Ignore); -- if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 242, __pyx_L1_error) -- __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Warn); -- if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 918, __pyx_L1_error) -+ if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 239, __pyx_L1_error) -+ __pyx_ptype_5numpy_generic = __Pyx_ImportType(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 771, __pyx_L1_error) -+ __pyx_ptype_5numpy_number = __Pyx_ImportType(__pyx_t_1, "numpy", "number", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 773, __pyx_L1_error) -+ __pyx_ptype_5numpy_integer = __Pyx_ImportType(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 775, __pyx_L1_error) -+ __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 777, __pyx_L1_error) -+ __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 779, __pyx_L1_error) -+ __pyx_ptype_5numpy_inexact = __Pyx_ImportType(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 781, __pyx_L1_error) -+ __pyx_ptype_5numpy_floating = __Pyx_ImportType(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 783, __pyx_L1_error) -+ __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 785, __pyx_L1_error) -+ __pyx_ptype_5numpy_flexible = __Pyx_ImportType(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 787, __pyx_L1_error) -+ __pyx_ptype_5numpy_character = __Pyx_ImportType(__pyx_t_1, "numpy", "character", sizeof(PyObject), __Pyx_ImportType_CheckSize_Warn); -+ if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 789, __pyx_L1_error) -+ __pyx_ptype_5numpy_ufunc = __Pyx_ImportType(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __Pyx_ImportType_CheckSize_Ignore); -+ if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 827, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyClpDualRowPivotBase"); if (unlikely(!__pyx_t_1)) __PYX_ERR(7, 72, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); -@@ -6530,13 +5163,17 @@ static int __Pyx_modinit_variable_import_code(void) { - static int __Pyx_modinit_function_import_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); - /*--- Function import code ---*/ - __pyx_t_1 = PyImport_ImportModule("cylp.cy.CyClpPrimalColumnPivotBase"); if (!__pyx_t_1) __PYX_ERR(1, 1, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_t_1); - if (__Pyx_ImportFunction(__pyx_t_1, "RunPivotColumn", (void (**)(void))&__pyx_f_4cylp_2cy_26CyClpPrimalColumnPivotBase_RunPivotColumn, "int (void *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *, ICoinIndexedVector *)") < 0) __PYX_ERR(1, 1, __pyx_L1_error) - if (__Pyx_ImportFunction(__pyx_t_1, "RunClone", (void (**)(void))&__pyx_f_4cylp_2cy_26CyClpPrimalColumnPivotBase_RunClone, "ClpPrimalColumnPivot *(void *, int)") < 0) __PYX_ERR(1, 1, __pyx_L1_error) - if (__Pyx_ImportFunction(__pyx_t_1, "RunSaveWeights", (void (**)(void))&__pyx_f_4cylp_2cy_26CyClpPrimalColumnPivotBase_RunSaveWeights, "void (void *, IClpSimplex *, int)") < 0) __PYX_ERR(1, 1, __pyx_L1_error) -- Py_DECREF(__pyx_t_1); __pyx_t_1 = 0; -+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; -@@ -6546,17 +5183,19 @@ static int __Pyx_modinit_function_import_code(void) { - } - - --#if PY_MAJOR_VERSION < 3 --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC void --#else -+#ifndef CYTHON_NO_PYINIT_EXPORT - #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#elif PY_MAJOR_VERSION < 3 -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" void -+#else -+#define __Pyx_PyMODINIT_FUNC void - #endif - #else --#ifdef CYTHON_NO_PYINIT_EXPORT --#define __Pyx_PyMODINIT_FUNC PyObject * -+#ifdef __cplusplus -+#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * - #else --#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -+#define __Pyx_PyMODINIT_FUNC PyObject * - #endif - #endif - -@@ -6638,6 +5277,9 @@ static CYTHON_SMALL_CODE int __pyx_pymod_exec_CyWolfePivot(PyObject *__pyx_pyini - #endif - { - PyObject *__pyx_t_1 = NULL; -+ int __pyx_lineno = 0; -+ const char *__pyx_filename = NULL; -+ int __pyx_clineno = 0; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { -@@ -6685,11 +5327,9 @@ if (!__Pyx_RefNanny) { - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ -- #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS -- #ifdef WITH_THREAD /* Python build with threading support? */ -+ #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - PyEval_InitThreads(); - #endif -- #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; -@@ -6726,17 +5366,17 @@ if (!__Pyx_RefNanny) { - } - #endif - /*--- Builtin init code ---*/ -- if (__Pyx_InitCachedBuiltins() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Constants init code ---*/ -- if (__Pyx_InitCachedConstants() < 0) goto __pyx_L1_error; -+ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(); - (void)__Pyx_modinit_variable_export_code(); - (void)__Pyx_modinit_function_export_code(); -- if (unlikely(__Pyx_modinit_type_init_code() != 0)) goto __pyx_L1_error; -- if (unlikely(__Pyx_modinit_type_import_code() != 0)) goto __pyx_L1_error; -+ if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) -+ if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) - (void)__Pyx_modinit_variable_import_code(); -- if (unlikely(__Pyx_modinit_function_import_code() != 0)) goto __pyx_L1_error; -+ if (unlikely(__Pyx_modinit_function_import_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) - /*--- Execution code ---*/ - #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) - if (__Pyx_patch_abc() < 0) __PYX_ERR(1, 1, __pyx_L1_error) -@@ -6752,12 +5392,12 @@ if (!__Pyx_RefNanny) { - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - -- /* "../../../../Users/tkral/Anaconda3/lib/site-packages/Cython/Includes/numpy/__init__.pxd":1046 -- * raise ImportError("numpy.core.umath failed to import") -+ /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 - * -- * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -- * try: -- * _import_umath() -+ * -+ * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -+ * """ -+ * returns the unit part of the dtype for a numpy datetime64 object. - */ - - /*--- Wrapped vars code ---*/ -@@ -6953,7 +5593,7 @@ static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, - #if CYTHON_COMPILING_IN_CPYTHON - static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { - PyObject *result; -- ternaryfunc call = func->ob_type->tp_call; -+ ternaryfunc call = Py_TYPE(func)->tp_call; - if (unlikely(!call)) - return PyObject_Call(func, arg, kw); - if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) -@@ -7269,7 +5909,7 @@ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObjec - if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { - return __Pyx_PyObject_CallMethO(func, arg); - #if CYTHON_FAST_PYCCALL -- } else if (PyCFunction_GET_FLAGS(func) & METH_FASTCALL) { -+ } else if (__Pyx_PyFastCFunction_Check(func)) { - return __Pyx_PyCFunction_FastCall(func, &arg, 1); - #endif - } -@@ -7650,71 +6290,16 @@ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject - PyObject* tmp_tb = tstate->curexc_traceback; - if (tb != tmp_tb) { - Py_INCREF(tb); -- tstate->curexc_traceback = tb; -- Py_XDECREF(tmp_tb); -- } --#endif -- } --bad: -- Py_XDECREF(owned_instance); -- return; --} --#endif -- --/* DictGetItem */ --#if PY_MAJOR_VERSION >= 3 && !CYTHON_COMPILING_IN_PYPY --static PyObject *__Pyx_PyDict_GetItem(PyObject *d, PyObject* key) { -- PyObject *value; -- value = PyDict_GetItemWithError(d, key); -- if (unlikely(!value)) { -- if (!PyErr_Occurred()) { -- if (unlikely(PyTuple_Check(key))) { -- PyObject* args = PyTuple_Pack(1, key); -- if (likely(args)) { -- PyErr_SetObject(PyExc_KeyError, args); -- Py_DECREF(args); -- } -- } else { -- PyErr_SetObject(PyExc_KeyError, key); -- } -- } -- return NULL; -- } -- Py_INCREF(value); -- return value; --} --#endif -- --/* RaiseTooManyValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected) { -- PyErr_Format(PyExc_ValueError, -- "too many values to unpack (expected %" CYTHON_FORMAT_SSIZE_T "d)", expected); --} -- --/* RaiseNeedMoreValuesToUnpack */ --static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index) { -- PyErr_Format(PyExc_ValueError, -- "need more than %" CYTHON_FORMAT_SSIZE_T "d value%.1s to unpack", -- index, (index == 1) ? "" : "s"); --} -- --/* RaiseNoneIterError */ --static CYTHON_INLINE void __Pyx_RaiseNoneNotIterableError(void) { -- PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); --} -- --/* ExtTypeTest */ --static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { -- if (unlikely(!type)) { -- PyErr_SetString(PyExc_SystemError, "Missing type object"); -- return 0; -+ tstate->curexc_traceback = tb; -+ Py_XDECREF(tmp_tb); -+ } -+#endif - } -- if (likely(__Pyx_TypeCheck(obj, type))) -- return 1; -- PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", -- Py_TYPE(obj)->tp_name, type->tp_name); -- return 0; -+bad: -+ Py_XDECREF(owned_instance); -+ return; - } -+#endif - - /* GetTopmostException */ - #if CYTHON_USE_EXC_INFO_STACK -@@ -8054,6 +6639,28 @@ static int __Pyx_SetVtable(PyObject *dict, void *vtable) { - return -1; - } - -+/* PyObjectGetAttrStrNoError */ -+static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { -+ __Pyx_PyThreadState_declare -+ __Pyx_PyThreadState_assign -+ if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) -+ __Pyx_PyErr_Clear(); -+} -+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { -+ PyObject *result; -+#if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 -+ PyTypeObject* tp = Py_TYPE(obj); -+ if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { -+ return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); -+ } -+#endif -+ result = __Pyx_PyObject_GetAttrStr(obj, attr_name); -+ if (unlikely(!result)) { -+ __Pyx_PyObject_GetAttrStr_ClearAttributeError(); -+ } -+ return result; -+} -+ - /* SetupReduce */ - static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { - int ret; -@@ -8081,43 +6688,51 @@ static int __Pyx_setup_reduce(PyObject* type_obj) { - PyObject *setstate = NULL; - PyObject *setstate_cython = NULL; - #if CYTHON_USE_PYTYPE_LOOKUP -- if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #else -- if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto GOOD; -+ if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; - #endif - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #else -- object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto BAD; -+ object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; - #endif -- reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto BAD; -+ reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; - if (reduce_ex == object_reduce_ex) { - #if CYTHON_USE_PYTYPE_LOOKUP -- object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #else -- object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto BAD; -+ object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; - #endif -- reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto BAD; -+ reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; - if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { -- reduce_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_cython); if (unlikely(!reduce_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto BAD; -+ reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); -+ if (likely(reduce_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (reduce == object_reduce || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); - if (!setstate) PyErr_Clear(); - if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { -- setstate_cython = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate_cython); if (unlikely(!setstate_cython)) goto BAD; -- ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto BAD; -- ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto BAD; -+ setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); -+ if (likely(setstate_cython)) { -+ ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; -+ } else if (!setstate || PyErr_Occurred()) { -+ goto __PYX_BAD; -+ } - } - PyType_Modified((PyTypeObject*)type_obj); - } - } -- goto GOOD; --BAD: -+ goto __PYX_GOOD; -+__PYX_BAD: - if (!PyErr_Occurred()) - PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); - ret = -1; --GOOD: -+__PYX_GOOD: - #if !CYTHON_USE_PYTYPE_LOOKUP - Py_XDECREF(object_reduce); - Py_XDECREF(object_reduce_ex); -@@ -8158,7 +6773,7 @@ static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UIN - - /* CLineInTraceback */ - #ifndef CYTHON_CLINE_IN_TRACEBACK --static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { -+static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) { - PyObject *use_cline; - PyObject *ptype, *pvalue, *ptraceback; - #if CYTHON_COMPILING_IN_CPYTHON -@@ -8188,7 +6803,7 @@ static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line) { - } - if (!use_cline) { - c_line = 0; -- PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); -+ (void) PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); - } - else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { - c_line = 0; -@@ -8262,7 +6877,7 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - if (__pyx_code_cache.count == __pyx_code_cache.max_count) { - int new_max = __pyx_code_cache.max_count + 64; - entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( -- __pyx_code_cache.entries, (size_t)new_max*sizeof(__Pyx_CodeObjectCacheEntry)); -+ __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); - if (unlikely(!entries)) { - return; - } -@@ -8285,30 +6900,31 @@ static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { - static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - const char *funcname, int c_line, - int py_line, const char *filename) { -- PyCodeObject *py_code = 0; -- PyObject *py_srcfile = 0; -- PyObject *py_funcname = 0; -+ PyCodeObject *py_code = NULL; -+ PyObject *py_funcname = NULL; - #if PY_MAJOR_VERSION < 3 -+ PyObject *py_srcfile = NULL; - py_srcfile = PyString_FromString(filename); -- #else -- py_srcfile = PyUnicode_FromString(filename); -- #endif - if (!py_srcfile) goto bad; -+ #endif - if (c_line) { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; - #else - py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); -+ if (!py_funcname) goto bad; -+ funcname = PyUnicode_AsUTF8(py_funcname); -+ if (!funcname) goto bad; - #endif - } - else { - #if PY_MAJOR_VERSION < 3 - py_funcname = PyString_FromString(funcname); -- #else -- py_funcname = PyUnicode_FromString(funcname); -+ if (!py_funcname) goto bad; - #endif - } -- if (!py_funcname) goto bad; -+ #if PY_MAJOR_VERSION < 3 - py_code = __Pyx_PyCode_New( - 0, - 0, -@@ -8327,11 +6943,16 @@ static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( - __pyx_empty_bytes /*PyObject *lnotab*/ - ); - Py_DECREF(py_srcfile); -- Py_DECREF(py_funcname); -+ #else -+ py_code = PyCode_NewEmpty(filename, funcname, py_line); -+ #endif -+ Py_XDECREF(py_funcname); // XDECREF since it's only set on Py3 if cline - return py_code; - bad: -- Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); -+ #if PY_MAJOR_VERSION < 3 -+ Py_XDECREF(py_srcfile); -+ #endif - return NULL; - } - static void __Pyx_AddTraceback(const char *funcname, int c_line, -@@ -8385,99 +7006,6 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, - return (target_type) value;\ - } - --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(long) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(long) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(long) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(long), -- little, !is_unsigned); -- } --} -- --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__IClpSimplex_3a__3a_Status(enum IClpSimplex::Status value) { -- const enum IClpSimplex::Status neg_one = (enum IClpSimplex::Status) ((enum IClpSimplex::Status) 0 - (enum IClpSimplex::Status) 1), const_zero = (enum IClpSimplex::Status) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(enum IClpSimplex::Status) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(enum IClpSimplex::Status) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum IClpSimplex::Status) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(enum IClpSimplex::Status) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum IClpSimplex::Status) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(enum IClpSimplex::Status), -- little, !is_unsigned); -- } --} -- --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(int) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(int) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(int) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(int), -- little, !is_unsigned); -- } --} -- - /* Declarations */ - #if CYTHON_CCOMPLEX - #ifdef __cplusplus -@@ -8595,7 +7123,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_float(a, a); - return __Pyx_c_prod_float(a, a); - case 3: - z = __Pyx_c_prod_float(a, a); -@@ -8750,7 +7277,6 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - case 1: - return a; - case 2: -- z = __Pyx_c_prod_double(a, a); - return __Pyx_c_prod_double(a, a); - case 3: - z = __Pyx_c_prod_double(a, a); -@@ -8788,40 +7314,16 @@ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { - #endif - #endif - --/* CIntToPy */ --static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__NPY_TYPES(enum NPY_TYPES value) { -- const enum NPY_TYPES neg_one = (enum NPY_TYPES) ((enum NPY_TYPES) 0 - (enum NPY_TYPES) 1), const_zero = (enum NPY_TYPES) 0; -- const int is_unsigned = neg_one > const_zero; -- if (is_unsigned) { -- if (sizeof(enum NPY_TYPES) < sizeof(long)) { -- return PyInt_FromLong((long) value); -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned long)) { -- return PyLong_FromUnsignedLong((unsigned long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(unsigned PY_LONG_LONG)) { -- return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); --#endif -- } -- } else { -- if (sizeof(enum NPY_TYPES) <= sizeof(long)) { -- return PyInt_FromLong((long) value); --#ifdef HAVE_LONG_LONG -- } else if (sizeof(enum NPY_TYPES) <= sizeof(PY_LONG_LONG)) { -- return PyLong_FromLongLong((PY_LONG_LONG) value); --#endif -- } -- } -- { -- int one = 1; int little = (int)*(unsigned char *)&one; -- unsigned char *bytes = (unsigned char *)&value; -- return _PyLong_FromByteArray(bytes, sizeof(enum NPY_TYPES), -- little, !is_unsigned); -- } --} -- - /* CIntFromPy */ - static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { -- const int neg_one = (int) ((int) 0 - (int) 1), const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -9008,9 +7510,130 @@ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { - return (int) -1; - } - -+/* CIntToPy */ -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif -+ const int is_unsigned = neg_one > const_zero; -+ if (is_unsigned) { -+ if (sizeof(long) < sizeof(long)) { -+ return PyInt_FromLong((long) value); -+ } else if (sizeof(long) <= sizeof(unsigned long)) { -+ return PyLong_FromUnsignedLong((unsigned long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { -+ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+#endif -+ } -+ } else { -+ if (sizeof(long) <= sizeof(long)) { -+ return PyInt_FromLong((long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { -+ return PyLong_FromLongLong((PY_LONG_LONG) value); -+#endif -+ } -+ } -+ { -+ int one = 1; int little = (int)*(unsigned char *)&one; -+ unsigned char *bytes = (unsigned char *)&value; -+ return _PyLong_FromByteArray(bytes, sizeof(long), -+ little, !is_unsigned); -+ } -+} -+ -+/* CIntToPy */ -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_enum__IClpSimplex_3a__3a_Status(enum IClpSimplex::Status value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const enum IClpSimplex::Status neg_one = (enum IClpSimplex::Status) -1, const_zero = (enum IClpSimplex::Status) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif -+ const int is_unsigned = neg_one > const_zero; -+ if (is_unsigned) { -+ if (sizeof(enum IClpSimplex::Status) < sizeof(long)) { -+ return PyInt_FromLong((long) value); -+ } else if (sizeof(enum IClpSimplex::Status) <= sizeof(unsigned long)) { -+ return PyLong_FromUnsignedLong((unsigned long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(enum IClpSimplex::Status) <= sizeof(unsigned PY_LONG_LONG)) { -+ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+#endif -+ } -+ } else { -+ if (sizeof(enum IClpSimplex::Status) <= sizeof(long)) { -+ return PyInt_FromLong((long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(enum IClpSimplex::Status) <= sizeof(PY_LONG_LONG)) { -+ return PyLong_FromLongLong((PY_LONG_LONG) value); -+#endif -+ } -+ } -+ { -+ int one = 1; int little = (int)*(unsigned char *)&one; -+ unsigned char *bytes = (unsigned char *)&value; -+ return _PyLong_FromByteArray(bytes, sizeof(enum IClpSimplex::Status), -+ little, !is_unsigned); -+ } -+} -+ -+/* CIntToPy */ -+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value) { -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const int neg_one = (int) -1, const_zero = (int) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif -+ const int is_unsigned = neg_one > const_zero; -+ if (is_unsigned) { -+ if (sizeof(int) < sizeof(long)) { -+ return PyInt_FromLong((long) value); -+ } else if (sizeof(int) <= sizeof(unsigned long)) { -+ return PyLong_FromUnsignedLong((unsigned long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { -+ return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); -+#endif -+ } -+ } else { -+ if (sizeof(int) <= sizeof(long)) { -+ return PyInt_FromLong((long) value); -+#ifdef HAVE_LONG_LONG -+ } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { -+ return PyLong_FromLongLong((PY_LONG_LONG) value); -+#endif -+ } -+ } -+ { -+ int one = 1; int little = (int)*(unsigned char *)&one; -+ unsigned char *bytes = (unsigned char *)&value; -+ return _PyLong_FromByteArray(bytes, sizeof(int), -+ little, !is_unsigned); -+ } -+} -+ - /* CIntFromPy */ - static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { -- const long neg_one = (long) ((long) 0 - (long) 1), const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic push -+#pragma GCC diagnostic ignored "-Wconversion" -+#endif -+ const long neg_one = (long) -1, const_zero = (long) 0; -+#ifdef __Pyx_HAS_GCC_DIAGNOSTIC -+#pragma GCC diagnostic pop -+#endif - const int is_unsigned = neg_one > const_zero; - #if PY_MAJOR_VERSION < 3 - if (likely(PyInt_Check(x))) { -@@ -9615,6 +8238,23 @@ static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { - Py_DECREF(x); - return ival; - } -+static CYTHON_INLINE Py_hash_t __Pyx_PyIndex_AsHash_t(PyObject* o) { -+ if (sizeof(Py_hash_t) == sizeof(Py_ssize_t)) { -+ return (Py_hash_t) __Pyx_PyIndex_AsSsize_t(o); -+#if PY_MAJOR_VERSION < 3 -+ } else if (likely(PyInt_CheckExact(o))) { -+ return PyInt_AS_LONG(o); -+#endif -+ } else { -+ Py_ssize_t ival; -+ PyObject *x; -+ x = PyNumber_Index(o); -+ if (!x) return -1; -+ ival = PyInt_AsLong(x); -+ Py_DECREF(x); -+ return ival; -+ } -+} - static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { - return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); - } diff --git a/build/pkgs/cylp/patches/01-7c5b21ac6bcc290fd60b83bf48741030d9d0abe7.patch b/build/pkgs/cylp/patches/01-7c5b21ac6bcc290fd60b83bf48741030d9d0abe7.patch deleted file mode 100644 index 036d73f7973..00000000000 --- a/build/pkgs/cylp/patches/01-7c5b21ac6bcc290fd60b83bf48741030d9d0abe7.patch +++ /dev/null @@ -1,2888 +0,0 @@ -From 7c5b21ac6bcc290fd60b83bf48741030d9d0abe7 Mon Sep 17 00:00:00 2001 -From: Ted Ralphs -Date: Mon, 14 Mar 2022 16:19:51 -0400 -Subject: [PATCH] Adding function to detect whether problem is infeasible or an - optimal solution is found - ---- - cylp/cy/CyCbcModel.cpp | 866 +++++++++++++++++++++++++---------------- - cylp/cy/CyCbcModel.pxd | 2 + - cylp/cy/CyCbcModel.pyx | 13 +- - 3 files changed, 536 insertions(+), 345 deletions(-) - -diff --git a/cylp/cy/CyCbcModel.cpp b/cylp/cy/CyCbcModel.cpp -index c62fd3b..8192e18 100644 ---- a/cylp/cy/CyCbcModel.cpp -+++ b/cylp/cy/CyCbcModel.cpp -@@ -1,4 +1,4 @@ --/* Generated by Cython 0.29.25 */ -+/* Generated by Cython 0.29.28 */ - - #ifndef PY_SSIZE_T_CLEAN - #define PY_SSIZE_T_CLEAN -@@ -9,8 +9,8 @@ - #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_25" --#define CYTHON_HEX_VERSION 0x001D19F0 -+#define CYTHON_ABI "0_29_28" -+#define CYTHON_HEX_VERSION 0x001D1CF0 - #define CYTHON_FUTURE_DIVISION 0 - #include - #ifndef offsetof -@@ -172,7 +172,10 @@ - #ifndef CYTHON_UNPACK_METHODS - #define CYTHON_UNPACK_METHODS 1 - #endif -- #ifndef CYTHON_FAST_THREAD_STATE -+ #if PY_VERSION_HEX >= 0x030B00A4 -+ #undef CYTHON_FAST_THREAD_STATE -+ #define CYTHON_FAST_THREAD_STATE 0 -+ #elif !defined(CYTHON_FAST_THREAD_STATE) - #define CYTHON_FAST_THREAD_STATE 1 - #endif - #ifndef CYTHON_FAST_PYCALL -@@ -187,7 +190,10 @@ - #ifndef CYTHON_USE_DICT_VERSIONS - #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) - #endif -- #ifndef CYTHON_USE_EXC_INFO_STACK -+ #if PY_VERSION_HEX >= 0x030B00A4 -+ #undef CYTHON_USE_EXC_INFO_STACK -+ #define CYTHON_USE_EXC_INFO_STACK 0 -+ #elif !defined(CYTHON_USE_EXC_INFO_STACK) - #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) - #endif - #endif -@@ -994,7 +1000,7 @@ static const char *__pyx_f[] = { - "cylp/cy/CyCutGeneratorPythonBase.pxd", - }; - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":690 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":690 - * # in Cython to enable them only on the right systems. - * - * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<< -@@ -1003,7 +1009,7 @@ static const char *__pyx_f[] = { - */ - typedef npy_int8 __pyx_t_5numpy_int8_t; - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":691 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":691 - * - * ctypedef npy_int8 int8_t - * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< -@@ -1012,7 +1018,7 @@ typedef npy_int8 __pyx_t_5numpy_int8_t; - */ - typedef npy_int16 __pyx_t_5numpy_int16_t; - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":692 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":692 - * ctypedef npy_int8 int8_t - * ctypedef npy_int16 int16_t - * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<< -@@ -1021,7 +1027,7 @@ typedef npy_int16 __pyx_t_5numpy_int16_t; - */ - typedef npy_int32 __pyx_t_5numpy_int32_t; - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":693 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":693 - * ctypedef npy_int16 int16_t - * ctypedef npy_int32 int32_t - * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<< -@@ -1030,7 +1036,7 @@ typedef npy_int32 __pyx_t_5numpy_int32_t; - */ - typedef npy_int64 __pyx_t_5numpy_int64_t; - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":697 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":697 - * #ctypedef npy_int128 int128_t - * - * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< -@@ -1039,7 +1045,7 @@ typedef npy_int64 __pyx_t_5numpy_int64_t; - */ - typedef npy_uint8 __pyx_t_5numpy_uint8_t; - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":698 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":698 - * - * ctypedef npy_uint8 uint8_t - * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< -@@ -1048,7 +1054,7 @@ typedef npy_uint8 __pyx_t_5numpy_uint8_t; - */ - typedef npy_uint16 __pyx_t_5numpy_uint16_t; - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":699 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":699 - * ctypedef npy_uint8 uint8_t - * ctypedef npy_uint16 uint16_t - * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<< -@@ -1057,7 +1063,7 @@ typedef npy_uint16 __pyx_t_5numpy_uint16_t; - */ - typedef npy_uint32 __pyx_t_5numpy_uint32_t; - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":700 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":700 - * ctypedef npy_uint16 uint16_t - * ctypedef npy_uint32 uint32_t - * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<< -@@ -1066,7 +1072,7 @@ typedef npy_uint32 __pyx_t_5numpy_uint32_t; - */ - typedef npy_uint64 __pyx_t_5numpy_uint64_t; - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":704 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":704 - * #ctypedef npy_uint128 uint128_t - * - * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< -@@ -1075,7 +1081,7 @@ typedef npy_uint64 __pyx_t_5numpy_uint64_t; - */ - typedef npy_float32 __pyx_t_5numpy_float32_t; - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":705 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":705 - * - * ctypedef npy_float32 float32_t - * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< -@@ -1084,7 +1090,7 @@ typedef npy_float32 __pyx_t_5numpy_float32_t; - */ - typedef npy_float64 __pyx_t_5numpy_float64_t; - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":714 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/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 # <<<<<<<<<<<<<< -@@ -1093,7 +1099,7 @@ typedef npy_float64 __pyx_t_5numpy_float64_t; - */ - typedef npy_long __pyx_t_5numpy_int_t; - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":715 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/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 # <<<<<<<<<<<<<< -@@ -1102,7 +1108,7 @@ typedef npy_long __pyx_t_5numpy_int_t; - */ - typedef npy_longlong __pyx_t_5numpy_long_t; - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":716 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":716 - * ctypedef npy_long int_t - * ctypedef npy_longlong long_t - * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<< -@@ -1111,7 +1117,7 @@ typedef npy_longlong __pyx_t_5numpy_long_t; - */ - typedef npy_longlong __pyx_t_5numpy_longlong_t; - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":718 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":718 - * ctypedef npy_longlong longlong_t - * - * ctypedef npy_ulong uint_t # <<<<<<<<<<<<<< -@@ -1120,7 +1126,7 @@ typedef npy_longlong __pyx_t_5numpy_longlong_t; - */ - typedef npy_ulong __pyx_t_5numpy_uint_t; - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":719 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":719 - * - * ctypedef npy_ulong uint_t - * ctypedef npy_ulonglong ulong_t # <<<<<<<<<<<<<< -@@ -1129,7 +1135,7 @@ typedef npy_ulong __pyx_t_5numpy_uint_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":720 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":720 - * ctypedef npy_ulong uint_t - * ctypedef npy_ulonglong ulong_t - * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<< -@@ -1138,7 +1144,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulong_t; - */ - typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":722 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":722 - * ctypedef npy_ulonglong ulonglong_t - * - * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< -@@ -1147,7 +1153,7 @@ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; - */ - typedef npy_intp __pyx_t_5numpy_intp_t; - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":723 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":723 - * - * ctypedef npy_intp intp_t - * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< -@@ -1156,7 +1162,7 @@ typedef npy_intp __pyx_t_5numpy_intp_t; - */ - typedef npy_uintp __pyx_t_5numpy_uintp_t; - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":725 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":725 - * ctypedef npy_uintp uintp_t - * - * ctypedef npy_double float_t # <<<<<<<<<<<<<< -@@ -1165,7 +1171,7 @@ typedef npy_uintp __pyx_t_5numpy_uintp_t; - */ - typedef npy_double __pyx_t_5numpy_float_t; - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":726 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":726 - * - * ctypedef npy_double float_t - * ctypedef npy_double double_t # <<<<<<<<<<<<<< -@@ -1174,7 +1180,7 @@ typedef npy_double __pyx_t_5numpy_float_t; - */ - typedef npy_double __pyx_t_5numpy_double_t; - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":727 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":727 - * ctypedef npy_double float_t - * ctypedef npy_double double_t - * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<< -@@ -1240,7 +1246,7 @@ struct __pyx_obj_4cylp_2cy_21CyCglCutGeneratorBase_CyCglCutGeneratorBase; - struct __pyx_obj_4cylp_2cy_24CyCutGeneratorPythonBase_CyCutGeneratorPythonBase; - struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel; - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":729 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":729 - * ctypedef npy_longdouble longdouble_t - * - * ctypedef npy_cfloat cfloat_t # <<<<<<<<<<<<<< -@@ -1249,7 +1255,7 @@ struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel; - */ - typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":730 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":730 - * - * ctypedef npy_cfloat cfloat_t - * ctypedef npy_cdouble cdouble_t # <<<<<<<<<<<<<< -@@ -1258,7 +1264,7 @@ typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - */ - typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":731 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":731 - * ctypedef npy_cfloat cfloat_t - * ctypedef npy_cdouble cdouble_t - * ctypedef npy_clongdouble clongdouble_t # <<<<<<<<<<<<<< -@@ -1267,7 +1273,7 @@ typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - */ - typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":733 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":733 - * ctypedef npy_clongdouble clongdouble_t - * - * ctypedef npy_cdouble complex_t # <<<<<<<<<<<<<< -@@ -1291,7 +1297,7 @@ struct __pyx_opt_args_4cylp_2cy_12CyClpSimplex_12CyClpSimplex_readMps { - }; - struct __pyx_opt_args_4cylp_2cy_10CyCbcModel_10CyCbcModel_addCutGenerator; - --/* "cylp/cy/CyCbcModel.pxd":89 -+/* "cylp/cy/CyCbcModel.pxd":91 - * cdef setCppSelf(self, CppICbcModel* cppmodel) - * cdef setClpModel(self, clpmodel) - * cpdef addCutGenerator(self, CyCglCutGenerator generator, # <<<<<<<<<<<<<< -@@ -1707,7 +1713,7 @@ struct __pyx_obj_4cylp_2cy_24CyCutGeneratorPythonBase_CyCutGeneratorPythonBase { - }; - - --/* "cylp/cy/CyCbcModel.pxd":82 -+/* "cylp/cy/CyCbcModel.pxd":84 - * CppOsiSolverInterface* solver() - * - * cdef class CyCbcModel: # <<<<<<<<<<<<<< -@@ -2749,9 +2755,13 @@ static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; - static const char __pyx_k_stopped_on_time[] = "stopped on time"; - static const char __pyx_k_stopped_on_nodes[] = "stopped on nodes"; - static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; -+static const char __pyx_k_relaxation_abondoned[] = "relaxation abondoned"; -+static const char __pyx_k_isRelaxationAbondoned[] = "isRelaxationAbondoned"; - 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_isRelaxationInfeasible[] = "isRelaxationInfeasible"; - static const char __pyx_k_pythonCutGeneratorObject[] = "pythonCutGeneratorObject"; -+static const char __pyx_k_problem_proven_infeasible[] = "problem proven infeasible"; - static const char __pyx_k_cylp_py_modeling_CyLPModel[] = "cylp.py.modeling.CyLPModel"; - static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import"; - static const char __pyx_k_no_default___reduce___due_to_non[] = "no default __reduce__ due to non-trivial __cinit__"; -@@ -2787,6 +2797,8 @@ static PyObject *__pyx_n_s_import; - static PyObject *__pyx_n_s_indices; - static PyObject *__pyx_n_s_inds; - static PyObject *__pyx_n_s_infeasible; -+static PyObject *__pyx_n_s_isRelaxationAbondoned; -+static PyObject *__pyx_n_s_isRelaxationInfeasible; - static PyObject *__pyx_n_s_itertools; - static PyObject *__pyx_n_s_izip; - static PyObject *__pyx_n_s_keys; -@@ -2799,6 +2811,7 @@ static PyObject *__pyx_n_s_normal; - static PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; - static PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; - static PyObject *__pyx_n_s_problemStatus; -+static PyObject *__pyx_kp_s_problem_proven_infeasible; - static PyObject *__pyx_n_s_product; - static PyObject *__pyx_n_s_pythonCutGeneratorObject; - static PyObject *__pyx_n_s_pyx_vtable; -@@ -2806,6 +2819,7 @@ static PyObject *__pyx_n_s_range; - static PyObject *__pyx_n_s_reduce; - static PyObject *__pyx_n_s_reduce_cython; - static PyObject *__pyx_n_s_reduce_ex; -+static PyObject *__pyx_kp_s_relaxation_abondoned; - static PyObject *__pyx_kp_s_relaxation_infeasible; - static PyObject *__pyx_kp_s_setNodeCompare_argument_should_b; - static PyObject *__pyx_n_s_setstate; -@@ -4773,7 +4787,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_10solve(struct __p - * property status: - * def __get__(self): # <<<<<<<<<<<<<< - * # secondaryStatus() should be used instead of status() (??) -- * #if self.isRelaxationInfeasible(): -+ * if self.isRelaxationInfeasible(): - */ - - /* Python wrapper */ -@@ -4793,29 +4807,196 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_6status___get__(st - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; -- int __pyx_t_2; -+ PyObject *__pyx_t_2 = NULL; - PyObject *__pyx_t_3 = NULL; -+ int __pyx_t_4; -+ int __pyx_t_5; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":160 -- * # return 'relaxation abondoned' -- * #return problemStatus[self.CppSelf.status()] -+ /* "cylp/cy/CyCbcModel.pyx":155 -+ * def __get__(self): -+ * # secondaryStatus() should be used instead of status() (??) -+ * if self.isRelaxationInfeasible(): # <<<<<<<<<<<<<< -+ * return problemStatus[1] -+ * if self.isRelaxationAbondoned(): -+ */ -+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_isRelaxationInfeasible); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 155, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_t_2); -+ __pyx_t_3 = NULL; -+ if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { -+ __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); -+ if (likely(__pyx_t_3)) { -+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); -+ __Pyx_INCREF(__pyx_t_3); -+ __Pyx_INCREF(function); -+ __Pyx_DECREF_SET(__pyx_t_2, function); -+ } -+ } -+ __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); -+ __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; -+ if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 155, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_t_1); -+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -+ __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 155, __pyx_L1_error) -+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -+ if (__pyx_t_4) { -+ -+ /* "cylp/cy/CyCbcModel.pyx":156 -+ * # secondaryStatus() should be used instead of status() (??) -+ * if self.isRelaxationInfeasible(): -+ * return problemStatus[1] # <<<<<<<<<<<<<< -+ * if self.isRelaxationAbondoned(): -+ * return 'relaxation abondoned' -+ */ -+ __Pyx_XDECREF(__pyx_r); -+ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_problemStatus); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 156, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_t_1); -+ __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 156, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_t_2); -+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -+ __pyx_r = __pyx_t_2; -+ __pyx_t_2 = 0; -+ goto __pyx_L0; -+ -+ /* "cylp/cy/CyCbcModel.pyx":155 -+ * def __get__(self): -+ * # secondaryStatus() should be used instead of status() (??) -+ * if self.isRelaxationInfeasible(): # <<<<<<<<<<<<<< -+ * return problemStatus[1] -+ * if self.isRelaxationAbondoned(): -+ */ -+ } -+ -+ /* "cylp/cy/CyCbcModel.pyx":157 -+ * if self.isRelaxationInfeasible(): -+ * return problemStatus[1] -+ * if self.isRelaxationAbondoned(): # <<<<<<<<<<<<<< -+ * return 'relaxation abondoned' -+ * if self.CppSelf.isProvenInfeasible(): -+ */ -+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_isRelaxationAbondoned); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 157, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_t_1); -+ __pyx_t_3 = NULL; -+ if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { -+ __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1); -+ if (likely(__pyx_t_3)) { -+ PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1); -+ __Pyx_INCREF(__pyx_t_3); -+ __Pyx_INCREF(function); -+ __Pyx_DECREF_SET(__pyx_t_1, function); -+ } -+ } -+ __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_1); -+ __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; -+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 157, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_t_2); -+ __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -+ __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 157, __pyx_L1_error) -+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -+ if (__pyx_t_4) { -+ -+ /* "cylp/cy/CyCbcModel.pyx":158 -+ * return problemStatus[1] -+ * if self.isRelaxationAbondoned(): -+ * return 'relaxation abondoned' # <<<<<<<<<<<<<< -+ * if self.CppSelf.isProvenInfeasible(): -+ * return 'problem proven infeasible' -+ */ -+ __Pyx_XDECREF(__pyx_r); -+ __Pyx_INCREF(__pyx_kp_s_relaxation_abondoned); -+ __pyx_r = __pyx_kp_s_relaxation_abondoned; -+ goto __pyx_L0; -+ -+ /* "cylp/cy/CyCbcModel.pyx":157 -+ * if self.isRelaxationInfeasible(): -+ * return problemStatus[1] -+ * if self.isRelaxationAbondoned(): # <<<<<<<<<<<<<< -+ * return 'relaxation abondoned' -+ * if self.CppSelf.isProvenInfeasible(): -+ */ -+ } -+ -+ /* "cylp/cy/CyCbcModel.pyx":159 -+ * if self.isRelaxationAbondoned(): -+ * return 'relaxation abondoned' -+ * if self.CppSelf.isProvenInfeasible(): # <<<<<<<<<<<<<< -+ * return 'problem proven infeasible' -+ * if self.CppSelf.isProvenOptimal(): -+ */ -+ __pyx_t_4 = (__pyx_v_self->CppSelf->isProvenInfeasible() != 0); -+ if (__pyx_t_4) { -+ -+ /* "cylp/cy/CyCbcModel.pyx":160 -+ * return 'relaxation abondoned' -+ * if self.CppSelf.isProvenInfeasible(): -+ * return 'problem proven infeasible' # <<<<<<<<<<<<<< -+ * if self.CppSelf.isProvenOptimal(): -+ * return 'solution' -+ */ -+ __Pyx_XDECREF(__pyx_r); -+ __Pyx_INCREF(__pyx_kp_s_problem_proven_infeasible); -+ __pyx_r = __pyx_kp_s_problem_proven_infeasible; -+ goto __pyx_L0; -+ -+ /* "cylp/cy/CyCbcModel.pyx":159 -+ * if self.isRelaxationAbondoned(): -+ * return 'relaxation abondoned' -+ * if self.CppSelf.isProvenInfeasible(): # <<<<<<<<<<<<<< -+ * return 'problem proven infeasible' -+ * if self.CppSelf.isProvenOptimal(): -+ */ -+ } -+ -+ /* "cylp/cy/CyCbcModel.pyx":161 -+ * if self.CppSelf.isProvenInfeasible(): -+ * return 'problem proven infeasible' -+ * if self.CppSelf.isProvenOptimal(): # <<<<<<<<<<<<<< -+ * return 'solution' -+ * return problemStatus[self.CppSelf.secondaryStatus()] -+ */ -+ __pyx_t_4 = (__pyx_v_self->CppSelf->isProvenOptimal() != 0); -+ if (__pyx_t_4) { -+ -+ /* "cylp/cy/CyCbcModel.pyx":162 -+ * return 'problem proven infeasible' -+ * if self.CppSelf.isProvenOptimal(): -+ * return 'solution' # <<<<<<<<<<<<<< -+ * return problemStatus[self.CppSelf.secondaryStatus()] -+ * -+ */ -+ __Pyx_XDECREF(__pyx_r); -+ __Pyx_INCREF(__pyx_n_s_solution); -+ __pyx_r = __pyx_n_s_solution; -+ goto __pyx_L0; -+ -+ /* "cylp/cy/CyCbcModel.pyx":161 -+ * if self.CppSelf.isProvenInfeasible(): -+ * return 'problem proven infeasible' -+ * if self.CppSelf.isProvenOptimal(): # <<<<<<<<<<<<<< -+ * return 'solution' -+ * return problemStatus[self.CppSelf.secondaryStatus()] -+ */ -+ } -+ -+ /* "cylp/cy/CyCbcModel.pyx":163 -+ * if self.CppSelf.isProvenOptimal(): -+ * return 'solution' - * return problemStatus[self.CppSelf.secondaryStatus()] # <<<<<<<<<<<<<< - * - * property logLevel: - */ - __Pyx_XDECREF(__pyx_r); -- __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_problemStatus); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 160, __pyx_L1_error) -+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_problemStatus); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 163, __pyx_L1_error) -+ __Pyx_GOTREF(__pyx_t_2); -+ __pyx_t_5 = __pyx_v_self->CppSelf->secondaryStatus(); -+ __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, __pyx_t_5, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 163, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); -- __pyx_t_2 = __pyx_v_self->CppSelf->secondaryStatus(); -- __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_1, __pyx_t_2, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 160, __pyx_L1_error) -- __Pyx_GOTREF(__pyx_t_3); -- __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -- __pyx_r = __pyx_t_3; -- __pyx_t_3 = 0; -+ __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -+ __pyx_r = __pyx_t_1; -+ __pyx_t_1 = 0; - goto __pyx_L0; - - /* "cylp/cy/CyCbcModel.pyx":153 -@@ -4823,12 +5004,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_6status___get__(st - * property status: - * def __get__(self): # <<<<<<<<<<<<<< - * # secondaryStatus() should be used instead of status() (??) -- * #if self.isRelaxationInfeasible(): -+ * if self.isRelaxationInfeasible(): - */ - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); -+ __Pyx_XDECREF(__pyx_t_2); - __Pyx_XDECREF(__pyx_t_3); - __Pyx_AddTraceback("cylp.cy.CyCbcModel.CyCbcModel.status.__get__", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; -@@ -4838,7 +5020,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_6status___get__(st - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":163 -+/* "cylp/cy/CyCbcModel.pyx":166 - * - * property logLevel: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -4868,7 +5050,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_8logLevel___get__( - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":164 -+ /* "cylp/cy/CyCbcModel.pyx":167 - * property logLevel: - * def __get__(self): - * return self.CppSelf.logLevel() # <<<<<<<<<<<<<< -@@ -4876,13 +5058,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_8logLevel___get__( - * def __set__(self, value): - */ - __Pyx_XDECREF(__pyx_r); -- __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->logLevel()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 164, __pyx_L1_error) -+ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->logLevel()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 167, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - -- /* "cylp/cy/CyCbcModel.pyx":163 -+ /* "cylp/cy/CyCbcModel.pyx":166 - * - * property logLevel: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -4901,7 +5083,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_8logLevel___get__( - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":166 -+/* "cylp/cy/CyCbcModel.pyx":169 - * return self.CppSelf.logLevel() - * - * def __set__(self, value): # <<<<<<<<<<<<<< -@@ -4931,17 +5113,17 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_8logLevel_2__set__(struc - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__set__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":167 -+ /* "cylp/cy/CyCbcModel.pyx":170 - * - * def __set__(self, value): - * self.CppSelf.setLogLevel(value) # <<<<<<<<<<<<<< - * - * def isRelaxationInfeasible(self): - */ -- __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 167, __pyx_L1_error) -+ __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 170, __pyx_L1_error) - __pyx_v_self->CppSelf->setLogLevel(__pyx_t_1); - -- /* "cylp/cy/CyCbcModel.pyx":166 -+ /* "cylp/cy/CyCbcModel.pyx":169 - * return self.CppSelf.logLevel() - * - * def __set__(self, value): # <<<<<<<<<<<<<< -@@ -4960,7 +5142,7 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_8logLevel_2__set__(struc - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":169 -+/* "cylp/cy/CyCbcModel.pyx":172 - * self.CppSelf.setLogLevel(value) - * - * def isRelaxationInfeasible(self): # <<<<<<<<<<<<<< -@@ -4991,7 +5173,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12isRelaxationInfe - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("isRelaxationInfeasible", 0); - -- /* "cylp/cy/CyCbcModel.pyx":170 -+ /* "cylp/cy/CyCbcModel.pyx":173 - * - * def isRelaxationInfeasible(self): - * return self.CppSelf.isInitialSolveProvenPrimalInfeasible() # <<<<<<<<<<<<<< -@@ -4999,13 +5181,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12isRelaxationInfe - * def isRelaxationDualInfeasible(self): - */ - __Pyx_XDECREF(__pyx_r); -- __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->CppSelf->isInitialSolveProvenPrimalInfeasible()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 170, __pyx_L1_error) -+ __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->CppSelf->isInitialSolveProvenPrimalInfeasible()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 173, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - -- /* "cylp/cy/CyCbcModel.pyx":169 -+ /* "cylp/cy/CyCbcModel.pyx":172 - * self.CppSelf.setLogLevel(value) - * - * def isRelaxationInfeasible(self): # <<<<<<<<<<<<<< -@@ -5024,7 +5206,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12isRelaxationInfe - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":172 -+/* "cylp/cy/CyCbcModel.pyx":175 - * return self.CppSelf.isInitialSolveProvenPrimalInfeasible() - * - * def isRelaxationDualInfeasible(self): # <<<<<<<<<<<<<< -@@ -5055,7 +5237,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_14isRelaxationDual - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("isRelaxationDualInfeasible", 0); - -- /* "cylp/cy/CyCbcModel.pyx":173 -+ /* "cylp/cy/CyCbcModel.pyx":176 - * - * def isRelaxationDualInfeasible(self): - * return self.CppSelf.isInitialSolveProvenDualInfeasible() # <<<<<<<<<<<<<< -@@ -5063,13 +5245,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_14isRelaxationDual - * def isRelaxationOptimal(self): - */ - __Pyx_XDECREF(__pyx_r); -- __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->CppSelf->isInitialSolveProvenDualInfeasible()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 173, __pyx_L1_error) -+ __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->CppSelf->isInitialSolveProvenDualInfeasible()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 176, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - -- /* "cylp/cy/CyCbcModel.pyx":172 -+ /* "cylp/cy/CyCbcModel.pyx":175 - * return self.CppSelf.isInitialSolveProvenPrimalInfeasible() - * - * def isRelaxationDualInfeasible(self): # <<<<<<<<<<<<<< -@@ -5088,7 +5270,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_14isRelaxationDual - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":175 -+/* "cylp/cy/CyCbcModel.pyx":178 - * return self.CppSelf.isInitialSolveProvenDualInfeasible() - * - * def isRelaxationOptimal(self): # <<<<<<<<<<<<<< -@@ -5119,7 +5301,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16isRelaxationOpti - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("isRelaxationOptimal", 0); - -- /* "cylp/cy/CyCbcModel.pyx":176 -+ /* "cylp/cy/CyCbcModel.pyx":179 - * - * def isRelaxationOptimal(self): - * return self.CppSelf.isInitialSolveProvenOptimal() # <<<<<<<<<<<<<< -@@ -5127,13 +5309,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16isRelaxationOpti - * def isRelaxationAbondoned(self): - */ - __Pyx_XDECREF(__pyx_r); -- __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->CppSelf->isInitialSolveProvenOptimal()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 176, __pyx_L1_error) -+ __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->CppSelf->isInitialSolveProvenOptimal()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 179, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - -- /* "cylp/cy/CyCbcModel.pyx":175 -+ /* "cylp/cy/CyCbcModel.pyx":178 - * return self.CppSelf.isInitialSolveProvenDualInfeasible() - * - * def isRelaxationOptimal(self): # <<<<<<<<<<<<<< -@@ -5152,7 +5334,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16isRelaxationOpti - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":178 -+/* "cylp/cy/CyCbcModel.pyx":181 - * return self.CppSelf.isInitialSolveProvenOptimal() - * - * def isRelaxationAbondoned(self): # <<<<<<<<<<<<<< -@@ -5183,7 +5365,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbon - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("isRelaxationAbondoned", 0); - -- /* "cylp/cy/CyCbcModel.pyx":179 -+ /* "cylp/cy/CyCbcModel.pyx":182 - * - * def isRelaxationAbondoned(self): - * return self.CppSelf.isInitialSolveAbandoned() # <<<<<<<<<<<<<< -@@ -5191,13 +5373,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbon - * property osiSolverInteface: - */ - __Pyx_XDECREF(__pyx_r); -- __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->CppSelf->isInitialSolveAbandoned()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 179, __pyx_L1_error) -+ __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->CppSelf->isInitialSolveAbandoned()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 182, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - -- /* "cylp/cy/CyCbcModel.pyx":178 -+ /* "cylp/cy/CyCbcModel.pyx":181 - * return self.CppSelf.isInitialSolveProvenOptimal() - * - * def isRelaxationAbondoned(self): # <<<<<<<<<<<<<< -@@ -5216,7 +5398,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbon - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":182 -+/* "cylp/cy/CyCbcModel.pyx":185 - * - * property osiSolverInteface: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -5247,30 +5429,30 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_17osiSolverIntefac - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":183 -+ /* "cylp/cy/CyCbcModel.pyx":186 - * property osiSolverInteface: - * def __get__(self): - * cdef CyOsiSolverInterface osi = CyOsiSolverInterface() # <<<<<<<<<<<<<< - * osi.setCppSelf(self.CppSelf.solver()) - * return osi - */ -- __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 183, __pyx_L1_error) -+ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 186, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_v_osi = ((struct __pyx_obj_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface *)__pyx_t_1); - __pyx_t_1 = 0; - -- /* "cylp/cy/CyCbcModel.pyx":184 -+ /* "cylp/cy/CyCbcModel.pyx":187 - * def __get__(self): - * cdef CyOsiSolverInterface osi = CyOsiSolverInterface() - * osi.setCppSelf(self.CppSelf.solver()) # <<<<<<<<<<<<<< - * return osi - * - */ -- __pyx_t_1 = ((struct __pyx_vtabstruct_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface *)__pyx_v_osi->__pyx_vtab)->setCppSelf(__pyx_v_osi, __pyx_v_self->CppSelf->solver()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 184, __pyx_L1_error) -+ __pyx_t_1 = ((struct __pyx_vtabstruct_4cylp_2cy_20CyOsiSolverInterface_CyOsiSolverInterface *)__pyx_v_osi->__pyx_vtab)->setCppSelf(__pyx_v_osi, __pyx_v_self->CppSelf->solver()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 187, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - -- /* "cylp/cy/CyCbcModel.pyx":185 -+ /* "cylp/cy/CyCbcModel.pyx":188 - * cdef CyOsiSolverInterface osi = CyOsiSolverInterface() - * osi.setCppSelf(self.CppSelf.solver()) - * return osi # <<<<<<<<<<<<<< -@@ -5282,7 +5464,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_17osiSolverIntefac - __pyx_r = ((PyObject *)__pyx_v_osi); - goto __pyx_L0; - -- /* "cylp/cy/CyCbcModel.pyx":182 -+ /* "cylp/cy/CyCbcModel.pyx":185 - * - * property osiSolverInteface: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -5302,7 +5484,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_17osiSolverIntefac - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":188 -+/* "cylp/cy/CyCbcModel.pyx":191 - * - * property primalVariableSolution: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -5352,7 +5534,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":189 -+ /* "cylp/cy/CyCbcModel.pyx":192 - * property primalVariableSolution: - * def __get__(self): - * ret = self.CppSelf.getPrimalVariableSolution() # <<<<<<<<<<<<<< -@@ -5365,17 +5547,17 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - __pyx_v_ret = __pyx_t_2; - __pyx_t_2 = 0; - -- /* "cylp/cy/CyCbcModel.pyx":190 -+ /* "cylp/cy/CyCbcModel.pyx":193 - * def __get__(self): - * ret = self.CppSelf.getPrimalVariableSolution() - * if self.cyLPModel: # <<<<<<<<<<<<<< - * m = self.cyLPModel - * inds = m.inds - */ -- __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 190, __pyx_L1_error) -+ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_self->cyLPModel); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 193, __pyx_L1_error) - if (__pyx_t_3) { - -- /* "cylp/cy/CyCbcModel.pyx":191 -+ /* "cylp/cy/CyCbcModel.pyx":194 - * ret = self.CppSelf.getPrimalVariableSolution() - * if self.cyLPModel: - * m = self.cyLPModel # <<<<<<<<<<<<<< -@@ -5387,40 +5569,40 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - __pyx_v_m = __pyx_t_2; - __pyx_t_2 = 0; - -- /* "cylp/cy/CyCbcModel.pyx":192 -+ /* "cylp/cy/CyCbcModel.pyx":195 - * if self.cyLPModel: - * m = self.cyLPModel - * inds = m.inds # <<<<<<<<<<<<<< - * d = {} - * for v in inds.varIndex.keys(): - */ -- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_inds); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 192, __pyx_L1_error) -+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_inds); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 195, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v_inds = __pyx_t_2; - __pyx_t_2 = 0; - -- /* "cylp/cy/CyCbcModel.pyx":193 -+ /* "cylp/cy/CyCbcModel.pyx":196 - * m = self.cyLPModel - * inds = m.inds - * d = {} # <<<<<<<<<<<<<< - * for v in inds.varIndex.keys(): - * d[v] = ret[inds.varIndex[v]] - */ -- __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 193, __pyx_L1_error) -+ __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 196, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_v_d = __pyx_t_2; - __pyx_t_2 = 0; - -- /* "cylp/cy/CyCbcModel.pyx":194 -+ /* "cylp/cy/CyCbcModel.pyx":197 - * inds = m.inds - * d = {} - * for v in inds.varIndex.keys(): # <<<<<<<<<<<<<< - * d[v] = ret[inds.varIndex[v]] - * var = m.getVarByName(v) - */ -- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_varIndex); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 194, __pyx_L1_error) -+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_varIndex); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 197, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); -- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_keys); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 194, __pyx_L1_error) -+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_keys); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 197, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = NULL; -@@ -5435,16 +5617,16 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - } - __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_5); - __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 194, __pyx_L1_error) -+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) { - __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0; - __pyx_t_7 = NULL; - } else { -- __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 194, __pyx_L1_error) -+ __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 197, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); -- __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 194, __pyx_L1_error) -+ __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 197, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - for (;;) { -@@ -5452,17 +5634,17 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - if (likely(PyList_CheckExact(__pyx_t_5))) { - if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS -- __pyx_t_2 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 194, __pyx_L1_error) -+ __pyx_t_2 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 197, __pyx_L1_error) - #else -- __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 194, __pyx_L1_error) -+ __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - #endif - } else { - if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS -- __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 194, __pyx_L1_error) -+ __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 197, __pyx_L1_error) - #else -- __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 194, __pyx_L1_error) -+ __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - #endif - } -@@ -5472,7 +5654,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -- else __PYX_ERR(0, 194, __pyx_L1_error) -+ else __PYX_ERR(0, 197, __pyx_L1_error) - } - break; - } -@@ -5481,32 +5663,32 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_2); - __pyx_t_2 = 0; - -- /* "cylp/cy/CyCbcModel.pyx":195 -+ /* "cylp/cy/CyCbcModel.pyx":198 - * d = {} - * for v in inds.varIndex.keys(): - * d[v] = ret[inds.varIndex[v]] # <<<<<<<<<<<<<< - * var = m.getVarByName(v) - * if var.dims: - */ -- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_varIndex); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 195, __pyx_L1_error) -+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_inds, __pyx_n_s_varIndex); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); -- __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_v); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 195, __pyx_L1_error) -+ __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_v); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 198, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -- __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 195, __pyx_L1_error) -+ __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (unlikely(PyObject_SetItem(__pyx_v_d, __pyx_v_v, __pyx_t_2) < 0)) __PYX_ERR(0, 195, __pyx_L1_error) -+ if (unlikely(PyObject_SetItem(__pyx_v_d, __pyx_v_v, __pyx_t_2) < 0)) __PYX_ERR(0, 198, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - -- /* "cylp/cy/CyCbcModel.pyx":196 -+ /* "cylp/cy/CyCbcModel.pyx":199 - * for v in inds.varIndex.keys(): - * d[v] = ret[inds.varIndex[v]] - * var = m.getVarByName(v) # <<<<<<<<<<<<<< - * if var.dims: - * d[v] = CyLPSolution() - */ -- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_getVarByName); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 196, __pyx_L1_error) -+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_m, __pyx_n_s_getVarByName); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 199, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { -@@ -5520,33 +5702,33 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - } - __pyx_t_2 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_8, __pyx_v_v) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_v); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; -- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 196, __pyx_L1_error) -+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 199, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_XDECREF_SET(__pyx_v_var, __pyx_t_2); - __pyx_t_2 = 0; - -- /* "cylp/cy/CyCbcModel.pyx":197 -+ /* "cylp/cy/CyCbcModel.pyx":200 - * d[v] = ret[inds.varIndex[v]] - * var = m.getVarByName(v) - * if var.dims: # <<<<<<<<<<<<<< - * d[v] = CyLPSolution() - * dimRanges = [range(i) for i in var.dims] - */ -- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_dims); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error) -+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_dims); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 200, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); -- __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 197, __pyx_L1_error) -+ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 200, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (__pyx_t_3) { - -- /* "cylp/cy/CyCbcModel.pyx":198 -+ /* "cylp/cy/CyCbcModel.pyx":201 - * var = m.getVarByName(v) - * if var.dims: - * d[v] = CyLPSolution() # <<<<<<<<<<<<<< - * dimRanges = [range(i) for i in var.dims] - * for element in product(*dimRanges): - */ -- __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CyLPSolution); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 198, __pyx_L1_error) -+ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_CyLPSolution); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 201, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_8 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { -@@ -5560,30 +5742,30 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - } - __pyx_t_2 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_4); - __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0; -- if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error) -+ if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 201, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- if (unlikely(PyObject_SetItem(__pyx_v_d, __pyx_v_v, __pyx_t_2) < 0)) __PYX_ERR(0, 198, __pyx_L1_error) -+ if (unlikely(PyObject_SetItem(__pyx_v_d, __pyx_v_v, __pyx_t_2) < 0)) __PYX_ERR(0, 201, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - -- /* "cylp/cy/CyCbcModel.pyx":199 -+ /* "cylp/cy/CyCbcModel.pyx":202 - * if var.dims: - * d[v] = CyLPSolution() - * dimRanges = [range(i) for i in var.dims] # <<<<<<<<<<<<<< - * for element in product(*dimRanges): - * d[v][element] = ret[var.__getitem__(element).indices[0]] - */ -- __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 199, __pyx_L1_error) -+ __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 202, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); -- __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_dims); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 199, __pyx_L1_error) -+ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_dims); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 202, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { - __pyx_t_8 = __pyx_t_4; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0; - __pyx_t_10 = NULL; - } else { -- __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 199, __pyx_L1_error) -+ __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 202, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); -- __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 199, __pyx_L1_error) -+ __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 202, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - for (;;) { -@@ -5591,17 +5773,17 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - if (likely(PyList_CheckExact(__pyx_t_8))) { - if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS -- __pyx_t_4 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 199, __pyx_L1_error) -+ __pyx_t_4 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 202, __pyx_L1_error) - #else -- __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 199, __pyx_L1_error) -+ __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 202, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } else { - if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS -- __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 199, __pyx_L1_error) -+ __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 202, __pyx_L1_error) - #else -- __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 199, __pyx_L1_error) -+ __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 202, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } -@@ -5611,7 +5793,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -- else __PYX_ERR(0, 199, __pyx_L1_error) -+ else __PYX_ERR(0, 202, __pyx_L1_error) - } - break; - } -@@ -5619,27 +5801,27 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - } - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4); - __pyx_t_4 = 0; -- __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_v_i); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 199, __pyx_L1_error) -+ __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_v_i); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 202, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); -- if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 199, __pyx_L1_error) -+ if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_4))) __PYX_ERR(0, 202, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - } - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF_SET(__pyx_v_dimRanges, ((PyObject*)__pyx_t_2)); - __pyx_t_2 = 0; - -- /* "cylp/cy/CyCbcModel.pyx":200 -+ /* "cylp/cy/CyCbcModel.pyx":203 - * d[v] = CyLPSolution() - * dimRanges = [range(i) for i in var.dims] - * for element in product(*dimRanges): # <<<<<<<<<<<<<< - * d[v][element] = ret[var.__getitem__(element).indices[0]] - * ret = d - */ -- __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_product); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 200, __pyx_L1_error) -+ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_product); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 203, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); -- __pyx_t_8 = PySequence_Tuple(__pyx_v_dimRanges); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 200, __pyx_L1_error) -+ __pyx_t_8 = PySequence_Tuple(__pyx_v_dimRanges); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 203, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); -- __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 200, __pyx_L1_error) -+ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 203, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; -@@ -5647,9 +5829,9 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - __pyx_t_8 = __pyx_t_4; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0; - __pyx_t_10 = NULL; - } else { -- __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 200, __pyx_L1_error) -+ __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 203, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); -- __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 200, __pyx_L1_error) -+ __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 203, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - for (;;) { -@@ -5657,17 +5839,17 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - if (likely(PyList_CheckExact(__pyx_t_8))) { - if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS -- __pyx_t_4 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 200, __pyx_L1_error) -+ __pyx_t_4 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 203, __pyx_L1_error) - #else -- __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 200, __pyx_L1_error) -+ __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 203, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } else { - if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS -- __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 200, __pyx_L1_error) -+ __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 203, __pyx_L1_error) - #else -- __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 200, __pyx_L1_error) -+ __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 203, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - #endif - } -@@ -5677,7 +5859,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -- else __PYX_ERR(0, 200, __pyx_L1_error) -+ else __PYX_ERR(0, 203, __pyx_L1_error) - } - break; - } -@@ -5686,14 +5868,14 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - __Pyx_XDECREF_SET(__pyx_v_element, __pyx_t_4); - __pyx_t_4 = 0; - -- /* "cylp/cy/CyCbcModel.pyx":201 -+ /* "cylp/cy/CyCbcModel.pyx":204 - * dimRanges = [range(i) for i in var.dims] - * for element in product(*dimRanges): - * d[v][element] = ret[var.__getitem__(element).indices[0]] # <<<<<<<<<<<<<< - * ret = d - * else: - */ -- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_getitem); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 201, __pyx_L1_error) -+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_var, __pyx_n_s_getitem); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 204, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_11 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { -@@ -5707,25 +5889,25 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - } - __pyx_t_4 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_11, __pyx_v_element) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_element); - __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; -- if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 201, __pyx_L1_error) -+ if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 204, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -- __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_indices); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 201, __pyx_L1_error) -+ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_indices); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 204, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 201, __pyx_L1_error) -+ __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 204, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; -- __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 201, __pyx_L1_error) -+ __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 204, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; -- __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_d, __pyx_v_v); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 201, __pyx_L1_error) -+ __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_d, __pyx_v_v); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 204, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); -- if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_v_element, __pyx_t_2) < 0)) __PYX_ERR(0, 201, __pyx_L1_error) -+ if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_v_element, __pyx_t_2) < 0)) __PYX_ERR(0, 204, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - -- /* "cylp/cy/CyCbcModel.pyx":200 -+ /* "cylp/cy/CyCbcModel.pyx":203 - * d[v] = CyLPSolution() - * dimRanges = [range(i) for i in var.dims] - * for element in product(*dimRanges): # <<<<<<<<<<<<<< -@@ -5735,7 +5917,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - } - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - -- /* "cylp/cy/CyCbcModel.pyx":197 -+ /* "cylp/cy/CyCbcModel.pyx":200 - * d[v] = ret[inds.varIndex[v]] - * var = m.getVarByName(v) - * if var.dims: # <<<<<<<<<<<<<< -@@ -5744,7 +5926,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - */ - } - -- /* "cylp/cy/CyCbcModel.pyx":194 -+ /* "cylp/cy/CyCbcModel.pyx":197 - * inds = m.inds - * d = {} - * for v in inds.varIndex.keys(): # <<<<<<<<<<<<<< -@@ -5754,7 +5936,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - -- /* "cylp/cy/CyCbcModel.pyx":202 -+ /* "cylp/cy/CyCbcModel.pyx":205 - * for element in product(*dimRanges): - * d[v][element] = ret[var.__getitem__(element).indices[0]] - * ret = d # <<<<<<<<<<<<<< -@@ -5764,7 +5946,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - __Pyx_INCREF(__pyx_v_d); - __Pyx_DECREF_SET(__pyx_v_ret, __pyx_v_d); - -- /* "cylp/cy/CyCbcModel.pyx":190 -+ /* "cylp/cy/CyCbcModel.pyx":193 - * def __get__(self): - * ret = self.CppSelf.getPrimalVariableSolution() - * if self.cyLPModel: # <<<<<<<<<<<<<< -@@ -5774,7 +5956,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - goto __pyx_L3; - } - -- /* "cylp/cy/CyCbcModel.pyx":204 -+ /* "cylp/cy/CyCbcModel.pyx":207 - * ret = d - * else: - * names = self.clpModel.variableNames # <<<<<<<<<<<<<< -@@ -5782,29 +5964,29 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - * d = CyLPSolution() - */ - /*else*/ { -- __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->clpModel, __pyx_n_s_variableNames); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 204, __pyx_L1_error) -+ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->clpModel, __pyx_n_s_variableNames); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 207, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_v_names = __pyx_t_5; - __pyx_t_5 = 0; - -- /* "cylp/cy/CyCbcModel.pyx":205 -+ /* "cylp/cy/CyCbcModel.pyx":208 - * else: - * names = self.clpModel.variableNames - * if names: # <<<<<<<<<<<<<< - * d = CyLPSolution() - * for i in range(len(names)): - */ -- __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_names); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 205, __pyx_L1_error) -+ __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_names); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 208, __pyx_L1_error) - if (__pyx_t_3) { - -- /* "cylp/cy/CyCbcModel.pyx":206 -+ /* "cylp/cy/CyCbcModel.pyx":209 - * names = self.clpModel.variableNames - * if names: - * d = CyLPSolution() # <<<<<<<<<<<<<< - * for i in range(len(names)): - * d[names[i]] = ret[i] - */ -- __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_CyLPSolution); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 206, __pyx_L1_error) -+ __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_CyLPSolution); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 209, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __pyx_t_2 = NULL; - if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) { -@@ -5818,32 +6000,32 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - } - __pyx_t_5 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_8); - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; -- if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 206, __pyx_L1_error) -+ if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 209, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __pyx_v_d = __pyx_t_5; - __pyx_t_5 = 0; - -- /* "cylp/cy/CyCbcModel.pyx":207 -+ /* "cylp/cy/CyCbcModel.pyx":210 - * if names: - * d = CyLPSolution() - * for i in range(len(names)): # <<<<<<<<<<<<<< - * d[names[i]] = ret[i] - * ret = d - */ -- __pyx_t_6 = PyObject_Length(__pyx_v_names); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 207, __pyx_L1_error) -- __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 207, __pyx_L1_error) -+ __pyx_t_6 = PyObject_Length(__pyx_v_names); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 210, __pyx_L1_error) -+ __pyx_t_5 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 210, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); -- __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 207, __pyx_L1_error) -+ __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 210, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) { - __pyx_t_5 = __pyx_t_8; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0; - __pyx_t_7 = NULL; - } else { -- __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 207, __pyx_L1_error) -+ __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 210, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); -- __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 207, __pyx_L1_error) -+ __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 210, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - for (;;) { -@@ -5851,17 +6033,17 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - if (likely(PyList_CheckExact(__pyx_t_5))) { - if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS -- __pyx_t_8 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 207, __pyx_L1_error) -+ __pyx_t_8 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 210, __pyx_L1_error) - #else -- __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 207, __pyx_L1_error) -+ __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 210, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - #endif - } else { - if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS -- __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 207, __pyx_L1_error) -+ __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 210, __pyx_L1_error) - #else -- __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 207, __pyx_L1_error) -+ __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 210, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); - #endif - } -@@ -5871,7 +6053,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - PyObject* exc_type = PyErr_Occurred(); - if (exc_type) { - if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); -- else __PYX_ERR(0, 207, __pyx_L1_error) -+ else __PYX_ERR(0, 210, __pyx_L1_error) - } - break; - } -@@ -5880,22 +6062,22 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_8); - __pyx_t_8 = 0; - -- /* "cylp/cy/CyCbcModel.pyx":208 -+ /* "cylp/cy/CyCbcModel.pyx":211 - * d = CyLPSolution() - * for i in range(len(names)): - * d[names[i]] = ret[i] # <<<<<<<<<<<<<< - * ret = d - * return ret - */ -- __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_v_i); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 208, __pyx_L1_error) -+ __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_ret, __pyx_v_i); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 211, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_8); -- __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_names, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 208, __pyx_L1_error) -+ __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_names, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 211, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); -- if (unlikely(PyObject_SetItem(__pyx_v_d, __pyx_t_2, __pyx_t_8) < 0)) __PYX_ERR(0, 208, __pyx_L1_error) -+ if (unlikely(PyObject_SetItem(__pyx_v_d, __pyx_t_2, __pyx_t_8) < 0)) __PYX_ERR(0, 211, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - -- /* "cylp/cy/CyCbcModel.pyx":207 -+ /* "cylp/cy/CyCbcModel.pyx":210 - * if names: - * d = CyLPSolution() - * for i in range(len(names)): # <<<<<<<<<<<<<< -@@ -5905,7 +6087,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - } - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - -- /* "cylp/cy/CyCbcModel.pyx":209 -+ /* "cylp/cy/CyCbcModel.pyx":212 - * for i in range(len(names)): - * d[names[i]] = ret[i] - * ret = d # <<<<<<<<<<<<<< -@@ -5915,7 +6097,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - __Pyx_INCREF(__pyx_v_d); - __Pyx_DECREF_SET(__pyx_v_ret, __pyx_v_d); - -- /* "cylp/cy/CyCbcModel.pyx":205 -+ /* "cylp/cy/CyCbcModel.pyx":208 - * else: - * names = self.clpModel.variableNames - * if names: # <<<<<<<<<<<<<< -@@ -5926,7 +6108,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - } - __pyx_L3:; - -- /* "cylp/cy/CyCbcModel.pyx":210 -+ /* "cylp/cy/CyCbcModel.pyx":213 - * d[names[i]] = ret[i] - * ret = d - * return ret # <<<<<<<<<<<<<< -@@ -5938,7 +6120,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - __pyx_r = __pyx_v_ret; - goto __pyx_L0; - -- /* "cylp/cy/CyCbcModel.pyx":188 -+ /* "cylp/cy/CyCbcModel.pyx":191 - * - * property primalVariableSolution: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -5971,7 +6153,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSo - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":213 -+/* "cylp/cy/CyCbcModel.pyx":216 - * - * property solutionCount: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -6001,7 +6183,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_13solutionCount___ - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":214 -+ /* "cylp/cy/CyCbcModel.pyx":217 - * property solutionCount: - * def __get__(self): - * return self.CppSelf.getSolutionCount() # <<<<<<<<<<<<<< -@@ -6009,13 +6191,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_13solutionCount___ - * property numberHeuristicSolutions: - */ - __Pyx_XDECREF(__pyx_r); -- __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getSolutionCount()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 214, __pyx_L1_error) -+ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getSolutionCount()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 217, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - -- /* "cylp/cy/CyCbcModel.pyx":213 -+ /* "cylp/cy/CyCbcModel.pyx":216 - * - * property solutionCount: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -6034,7 +6216,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_13solutionCount___ - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":217 -+/* "cylp/cy/CyCbcModel.pyx":220 - * - * property numberHeuristicSolutions: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -6064,7 +6246,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_24numberHeuristicS - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":218 -+ /* "cylp/cy/CyCbcModel.pyx":221 - * property numberHeuristicSolutions: - * def __get__(self): - * return self.CppSelf.getNumberHeuristicSolutions() # <<<<<<<<<<<<<< -@@ -6072,13 +6254,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_24numberHeuristicS - * property nodeCount: - */ - __Pyx_XDECREF(__pyx_r); -- __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getNumberHeuristicSolutions()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 218, __pyx_L1_error) -+ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getNumberHeuristicSolutions()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 221, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - -- /* "cylp/cy/CyCbcModel.pyx":217 -+ /* "cylp/cy/CyCbcModel.pyx":220 - * - * property numberHeuristicSolutions: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -6097,7 +6279,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_24numberHeuristicS - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":221 -+/* "cylp/cy/CyCbcModel.pyx":224 - * - * property nodeCount: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -6127,7 +6309,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_9nodeCount___get__ - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":222 -+ /* "cylp/cy/CyCbcModel.pyx":225 - * property nodeCount: - * def __get__(self): - * return self.CppSelf.getNodeCount() # <<<<<<<<<<<<<< -@@ -6135,13 +6317,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_9nodeCount___get__ - * property objectiveValue: - */ - __Pyx_XDECREF(__pyx_r); -- __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getNodeCount()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 222, __pyx_L1_error) -+ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getNodeCount()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 225, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - -- /* "cylp/cy/CyCbcModel.pyx":221 -+ /* "cylp/cy/CyCbcModel.pyx":224 - * - * property nodeCount: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -6160,7 +6342,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_9nodeCount___get__ - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":225 -+/* "cylp/cy/CyCbcModel.pyx":228 - * - * property objectiveValue: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -6190,7 +6372,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_14objectiveValue__ - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":226 -+ /* "cylp/cy/CyCbcModel.pyx":229 - * property objectiveValue: - * def __get__(self): - * return self.CppSelf.getObjValue() # <<<<<<<<<<<<<< -@@ -6198,13 +6380,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_14objectiveValue__ - * property bestPossibleObjValue: - */ - __Pyx_XDECREF(__pyx_r); -- __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getObjValue()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 226, __pyx_L1_error) -+ __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getObjValue()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 229, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - -- /* "cylp/cy/CyCbcModel.pyx":225 -+ /* "cylp/cy/CyCbcModel.pyx":228 - * - * property objectiveValue: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -6223,7 +6405,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_14objectiveValue__ - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":229 -+/* "cylp/cy/CyCbcModel.pyx":232 - * - * property bestPossibleObjValue: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -6253,7 +6435,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_20bestPossibleObjV - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":230 -+ /* "cylp/cy/CyCbcModel.pyx":233 - * property bestPossibleObjValue: - * def __get__(self): - * return self.CppSelf.getBestPossibleObjValue() # <<<<<<<<<<<<<< -@@ -6261,13 +6443,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_20bestPossibleObjV - * property numberObjects: - */ - __Pyx_XDECREF(__pyx_r); -- __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getBestPossibleObjValue()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 230, __pyx_L1_error) -+ __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getBestPossibleObjValue()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 233, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - -- /* "cylp/cy/CyCbcModel.pyx":229 -+ /* "cylp/cy/CyCbcModel.pyx":232 - * - * property bestPossibleObjValue: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -6286,7 +6468,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_20bestPossibleObjV - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":233 -+/* "cylp/cy/CyCbcModel.pyx":236 - * - * property numberObjects: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -6316,7 +6498,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_13numberObjects___ - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":234 -+ /* "cylp/cy/CyCbcModel.pyx":237 - * property numberObjects: - * def __get__(self): - * return self.CppSelf.numberObjects() # <<<<<<<<<<<<<< -@@ -6324,13 +6506,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_13numberObjects___ - * property integerTolerance: - */ - __Pyx_XDECREF(__pyx_r); -- __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->numberObjects()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 234, __pyx_L1_error) -+ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->numberObjects()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 237, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - -- /* "cylp/cy/CyCbcModel.pyx":233 -+ /* "cylp/cy/CyCbcModel.pyx":236 - * - * property numberObjects: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -6349,7 +6531,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_13numberObjects___ - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":237 -+/* "cylp/cy/CyCbcModel.pyx":240 - * - * property integerTolerance: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -6379,7 +6561,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16integerTolerance - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":238 -+ /* "cylp/cy/CyCbcModel.pyx":241 - * property integerTolerance: - * def __get__(self): - * return self.CppSelf.getIntegerTolerance() # <<<<<<<<<<<<<< -@@ -6387,13 +6569,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16integerTolerance - * def __set__(self, value): - */ - __Pyx_XDECREF(__pyx_r); -- __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getIntegerTolerance()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 238, __pyx_L1_error) -+ __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getIntegerTolerance()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 241, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - -- /* "cylp/cy/CyCbcModel.pyx":237 -+ /* "cylp/cy/CyCbcModel.pyx":240 - * - * property integerTolerance: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -6412,7 +6594,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16integerTolerance - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":240 -+/* "cylp/cy/CyCbcModel.pyx":243 - * return self.CppSelf.getIntegerTolerance() - * - * def __set__(self, value): # <<<<<<<<<<<<<< -@@ -6442,17 +6624,17 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16integerTolerance_2__se - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__set__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":241 -+ /* "cylp/cy/CyCbcModel.pyx":244 - * - * def __set__(self, value): - * self.CppSelf.setIntegerTolerance(value) # <<<<<<<<<<<<<< - * - * property maximumSeconds: - */ -- __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 241, __pyx_L1_error) -+ __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 244, __pyx_L1_error) - (void)(__pyx_v_self->CppSelf->setIntegerTolerance(__pyx_t_1)); - -- /* "cylp/cy/CyCbcModel.pyx":240 -+ /* "cylp/cy/CyCbcModel.pyx":243 - * return self.CppSelf.getIntegerTolerance() - * - * def __set__(self, value): # <<<<<<<<<<<<<< -@@ -6471,7 +6653,7 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16integerTolerance_2__se - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":244 -+/* "cylp/cy/CyCbcModel.pyx":247 - * - * property maximumSeconds: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -6501,7 +6683,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_14maximumSeconds__ - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":245 -+ /* "cylp/cy/CyCbcModel.pyx":248 - * property maximumSeconds: - * def __get__(self): - * return self.CppSelf.getMaximumSeconds() # <<<<<<<<<<<<<< -@@ -6509,13 +6691,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_14maximumSeconds__ - * def __set__(self, value): - */ - __Pyx_XDECREF(__pyx_r); -- __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getMaximumSeconds()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 245, __pyx_L1_error) -+ __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getMaximumSeconds()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 248, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - -- /* "cylp/cy/CyCbcModel.pyx":244 -+ /* "cylp/cy/CyCbcModel.pyx":247 - * - * property maximumSeconds: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -6534,7 +6716,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_14maximumSeconds__ - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":247 -+/* "cylp/cy/CyCbcModel.pyx":250 - * return self.CppSelf.getMaximumSeconds() - * - * def __set__(self, value): # <<<<<<<<<<<<<< -@@ -6564,17 +6746,17 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_14maximumSeconds_2__set_ - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__set__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":248 -+ /* "cylp/cy/CyCbcModel.pyx":251 - * - * def __set__(self, value): - * self.CppSelf.setMaximumSeconds(value) # <<<<<<<<<<<<<< - * - * property maximumNodes: - */ -- __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 248, __pyx_L1_error) -+ __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 251, __pyx_L1_error) - (void)(__pyx_v_self->CppSelf->setMaximumSeconds(__pyx_t_1)); - -- /* "cylp/cy/CyCbcModel.pyx":247 -+ /* "cylp/cy/CyCbcModel.pyx":250 - * return self.CppSelf.getMaximumSeconds() - * - * def __set__(self, value): # <<<<<<<<<<<<<< -@@ -6593,7 +6775,7 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_14maximumSeconds_2__set_ - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":251 -+/* "cylp/cy/CyCbcModel.pyx":254 - * - * property maximumNodes: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -6623,7 +6805,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12maximumNodes___g - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":252 -+ /* "cylp/cy/CyCbcModel.pyx":255 - * property maximumNodes: - * def __get__(self): - * return self.CppSelf.getMaximumNodes() # <<<<<<<<<<<<<< -@@ -6631,13 +6813,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12maximumNodes___g - * def __set__(self, value): - */ - __Pyx_XDECREF(__pyx_r); -- __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getMaximumNodes()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 252, __pyx_L1_error) -+ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getMaximumNodes()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 255, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - -- /* "cylp/cy/CyCbcModel.pyx":251 -+ /* "cylp/cy/CyCbcModel.pyx":254 - * - * property maximumNodes: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -6656,7 +6838,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12maximumNodes___g - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":254 -+/* "cylp/cy/CyCbcModel.pyx":257 - * return self.CppSelf.getMaximumNodes() - * - * def __set__(self, value): # <<<<<<<<<<<<<< -@@ -6686,17 +6868,17 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12maximumNodes_2__set__( - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__set__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":255 -+ /* "cylp/cy/CyCbcModel.pyx":258 - * - * def __set__(self, value): - * self.CppSelf.setMaximumNodes(value) # <<<<<<<<<<<<<< - * - * property numberThreads: - */ -- __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 255, __pyx_L1_error) -+ __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 258, __pyx_L1_error) - (void)(__pyx_v_self->CppSelf->setMaximumNodes(__pyx_t_1)); - -- /* "cylp/cy/CyCbcModel.pyx":254 -+ /* "cylp/cy/CyCbcModel.pyx":257 - * return self.CppSelf.getMaximumNodes() - * - * def __set__(self, value): # <<<<<<<<<<<<<< -@@ -6715,7 +6897,7 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12maximumNodes_2__set__( - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":258 -+/* "cylp/cy/CyCbcModel.pyx":261 - * - * property numberThreads: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -6745,7 +6927,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_13numberThreads___ - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":259 -+ /* "cylp/cy/CyCbcModel.pyx":262 - * property numberThreads: - * def __get__(self): - * return self.CppSelf.getNumberThreads() # <<<<<<<<<<<<<< -@@ -6753,13 +6935,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_13numberThreads___ - * def __set__(self, value): - */ - __Pyx_XDECREF(__pyx_r); -- __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getNumberThreads()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 259, __pyx_L1_error) -+ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getNumberThreads()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 262, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - -- /* "cylp/cy/CyCbcModel.pyx":258 -+ /* "cylp/cy/CyCbcModel.pyx":261 - * - * property numberThreads: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -6778,7 +6960,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_13numberThreads___ - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":261 -+/* "cylp/cy/CyCbcModel.pyx":264 - * return self.CppSelf.getNumberThreads() - * - * def __set__(self, value): # <<<<<<<<<<<<<< -@@ -6808,17 +6990,17 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_13numberThreads_2__set__ - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__set__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":262 -+ /* "cylp/cy/CyCbcModel.pyx":265 - * - * def __set__(self, value): - * self.CppSelf.setNumberThreads(value) # <<<<<<<<<<<<<< - * - * property allowableGap: - */ -- __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 262, __pyx_L1_error) -+ __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 265, __pyx_L1_error) - __pyx_v_self->CppSelf->setNumberThreads(__pyx_t_1); - -- /* "cylp/cy/CyCbcModel.pyx":261 -+ /* "cylp/cy/CyCbcModel.pyx":264 - * return self.CppSelf.getNumberThreads() - * - * def __set__(self, value): # <<<<<<<<<<<<<< -@@ -6837,7 +7019,7 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_13numberThreads_2__set__ - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":265 -+/* "cylp/cy/CyCbcModel.pyx":268 - * - * property allowableGap: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -6867,7 +7049,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12allowableGap___g - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":266 -+ /* "cylp/cy/CyCbcModel.pyx":269 - * property allowableGap: - * def __get__(self): - * return self.CppSelf.getAllowableGap() # <<<<<<<<<<<<<< -@@ -6875,13 +7057,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12allowableGap___g - * def __set__(self, value): - */ - __Pyx_XDECREF(__pyx_r); -- __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getAllowableGap()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 266, __pyx_L1_error) -+ __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getAllowableGap()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 269, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - -- /* "cylp/cy/CyCbcModel.pyx":265 -+ /* "cylp/cy/CyCbcModel.pyx":268 - * - * property allowableGap: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -6900,7 +7082,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12allowableGap___g - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":268 -+/* "cylp/cy/CyCbcModel.pyx":271 - * return self.CppSelf.getAllowableGap() - * - * def __set__(self, value): # <<<<<<<<<<<<<< -@@ -6930,17 +7112,17 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12allowableGap_2__set__( - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__set__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":269 -+ /* "cylp/cy/CyCbcModel.pyx":272 - * - * def __set__(self, value): - * self.CppSelf.setAllowableGap(value) # <<<<<<<<<<<<<< - * - * property allowableFractionGap: - */ -- __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 269, __pyx_L1_error) -+ __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 272, __pyx_L1_error) - __pyx_v_self->CppSelf->setAllowableGap(__pyx_t_1); - -- /* "cylp/cy/CyCbcModel.pyx":268 -+ /* "cylp/cy/CyCbcModel.pyx":271 - * return self.CppSelf.getAllowableGap() - * - * def __set__(self, value): # <<<<<<<<<<<<<< -@@ -6959,7 +7141,7 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12allowableGap_2__set__( - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":272 -+/* "cylp/cy/CyCbcModel.pyx":275 - * - * property allowableFractionGap: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -6989,7 +7171,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_20allowableFractio - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":273 -+ /* "cylp/cy/CyCbcModel.pyx":276 - * property allowableFractionGap: - * def __get__(self): - * return self.CppSelf.getAllowableFractionGap() # <<<<<<<<<<<<<< -@@ -6997,13 +7179,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_20allowableFractio - * def __set__(self, value): - */ - __Pyx_XDECREF(__pyx_r); -- __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getAllowableFractionGap()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 273, __pyx_L1_error) -+ __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getAllowableFractionGap()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 276, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - -- /* "cylp/cy/CyCbcModel.pyx":272 -+ /* "cylp/cy/CyCbcModel.pyx":275 - * - * property allowableFractionGap: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -7022,7 +7204,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_20allowableFractio - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":275 -+/* "cylp/cy/CyCbcModel.pyx":278 - * return self.CppSelf.getAllowableFractionGap() - * - * def __set__(self, value): # <<<<<<<<<<<<<< -@@ -7052,17 +7234,17 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_20allowableFractionGap_2 - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__set__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":276 -+ /* "cylp/cy/CyCbcModel.pyx":279 - * - * def __set__(self, value): - * self.CppSelf.setAllowableFractionGap(value) # <<<<<<<<<<<<<< - * - * property allowablePercentageGap: - */ -- __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 276, __pyx_L1_error) -+ __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 279, __pyx_L1_error) - __pyx_v_self->CppSelf->setAllowableFractionGap(__pyx_t_1); - -- /* "cylp/cy/CyCbcModel.pyx":275 -+ /* "cylp/cy/CyCbcModel.pyx":278 - * return self.CppSelf.getAllowableFractionGap() - * - * def __set__(self, value): # <<<<<<<<<<<<<< -@@ -7081,7 +7263,7 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_20allowableFractionGap_2 - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":279 -+/* "cylp/cy/CyCbcModel.pyx":282 - * - * property allowablePercentageGap: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -7111,7 +7293,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22allowablePercent - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":280 -+ /* "cylp/cy/CyCbcModel.pyx":283 - * property allowablePercentageGap: - * def __get__(self): - * return self.CppSelf.getAllowablePercentageGap() # <<<<<<<<<<<<<< -@@ -7119,13 +7301,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22allowablePercent - * def __set__(self, value): - */ - __Pyx_XDECREF(__pyx_r); -- __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getAllowablePercentageGap()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 280, __pyx_L1_error) -+ __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->CppSelf->getAllowablePercentageGap()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 283, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - -- /* "cylp/cy/CyCbcModel.pyx":279 -+ /* "cylp/cy/CyCbcModel.pyx":282 - * - * property allowablePercentageGap: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -7144,7 +7326,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22allowablePercent - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":282 -+/* "cylp/cy/CyCbcModel.pyx":285 - * return self.CppSelf.getAllowablePercentageGap() - * - * def __set__(self, value): # <<<<<<<<<<<<<< -@@ -7174,17 +7356,17 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22allowablePercentageGap - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__set__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":283 -+ /* "cylp/cy/CyCbcModel.pyx":286 - * - * def __set__(self, value): - * self.CppSelf.setAllowablePercentageGap(value) # <<<<<<<<<<<<<< - * - * property maximumSolutions: - */ -- __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 283, __pyx_L1_error) -+ __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 286, __pyx_L1_error) - __pyx_v_self->CppSelf->setAllowablePercentageGap(__pyx_t_1); - -- /* "cylp/cy/CyCbcModel.pyx":282 -+ /* "cylp/cy/CyCbcModel.pyx":285 - * return self.CppSelf.getAllowablePercentageGap() - * - * def __set__(self, value): # <<<<<<<<<<<<<< -@@ -7203,7 +7385,7 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22allowablePercentageGap - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":286 -+/* "cylp/cy/CyCbcModel.pyx":289 - * - * property maximumSolutions: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -7233,7 +7415,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16maximumSolutions - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__get__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":287 -+ /* "cylp/cy/CyCbcModel.pyx":290 - * property maximumSolutions: - * def __get__(self): - * return self.CppSelf.getMaximumSolutions() # <<<<<<<<<<<<<< -@@ -7241,13 +7423,13 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16maximumSolutions - * def __set__(self, value): - */ - __Pyx_XDECREF(__pyx_r); -- __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getMaximumSolutions()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 287, __pyx_L1_error) -+ __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_self->CppSelf->getMaximumSolutions()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 290, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - -- /* "cylp/cy/CyCbcModel.pyx":286 -+ /* "cylp/cy/CyCbcModel.pyx":289 - * - * property maximumSolutions: - * def __get__(self): # <<<<<<<<<<<<<< -@@ -7266,7 +7448,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16maximumSolutions - return __pyx_r; - } - --/* "cylp/cy/CyCbcModel.pyx":289 -+/* "cylp/cy/CyCbcModel.pyx":292 - * return self.CppSelf.getMaximumSolutions() - * - * def __set__(self, value): # <<<<<<<<<<<<<< -@@ -7296,17 +7478,17 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16maximumSolutions_2__se - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__set__", 0); - -- /* "cylp/cy/CyCbcModel.pyx":290 -+ /* "cylp/cy/CyCbcModel.pyx":293 - * - * def __set__(self, value): - * self.CppSelf.setMaximumSolutions(value) # <<<<<<<<<<<<<< - * - * - */ -- __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 290, __pyx_L1_error) -+ __pyx_t_1 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 293, __pyx_L1_error) - (void)(__pyx_v_self->CppSelf->setMaximumSolutions(__pyx_t_1)); - -- /* "cylp/cy/CyCbcModel.pyx":289 -+ /* "cylp/cy/CyCbcModel.pyx":292 - * return self.CppSelf.getMaximumSolutions() - * - * def __set__(self, value): # <<<<<<<<<<<<<< -@@ -7440,7 +7622,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22__setstate_cytho - return __pyx_r; - } - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":735 - * ctypedef npy_cdouble complex_t - * - * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< -@@ -7457,7 +7639,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 0); - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":736 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":736 - * - * cdef inline object PyArray_MultiIterNew1(a): - * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< -@@ -7471,7 +7653,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - __pyx_t_1 = 0; - goto __pyx_L0; - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":735 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":735 - * ctypedef npy_cdouble complex_t - * - * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< -@@ -7490,7 +7672,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ - return __pyx_r; - } - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":738 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":738 - * return PyArray_MultiIterNew(1, a) - * - * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< -@@ -7507,7 +7689,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 0); - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":739 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":739 - * - * cdef inline object PyArray_MultiIterNew2(a, b): - * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< -@@ -7521,7 +7703,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - __pyx_t_1 = 0; - goto __pyx_L0; - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":738 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":738 - * return PyArray_MultiIterNew(1, a) - * - * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< -@@ -7540,7 +7722,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ - return __pyx_r; - } - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":741 - * return PyArray_MultiIterNew(2, a, b) - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< -@@ -7557,7 +7739,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 0); - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":742 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":742 - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): - * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< -@@ -7571,7 +7753,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - __pyx_t_1 = 0; - goto __pyx_L0; - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":741 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":741 - * return PyArray_MultiIterNew(2, a, b) - * - * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< -@@ -7590,7 +7772,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ - return __pyx_r; - } - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":744 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":744 - * return PyArray_MultiIterNew(3, a, b, c) - * - * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< -@@ -7607,7 +7789,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 0); - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":745 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":745 - * - * cdef inline object PyArray_MultiIterNew4(a, b, c, d): - * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< -@@ -7621,7 +7803,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - __pyx_t_1 = 0; - goto __pyx_L0; - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":744 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":744 - * return PyArray_MultiIterNew(3, a, b, c) - * - * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< -@@ -7640,7 +7822,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ - return __pyx_r; - } - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":747 - * return PyArray_MultiIterNew(4, a, b, c, d) - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -@@ -7657,7 +7839,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 0); - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":748 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/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) # <<<<<<<<<<<<<< -@@ -7671,7 +7853,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - __pyx_t_1 = 0; - goto __pyx_L0; - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":747 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":747 - * return PyArray_MultiIterNew(4, a, b, c, d) - * - * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< -@@ -7690,7 +7872,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ - return __pyx_r; - } - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":750 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -@@ -7704,7 +7886,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - int __pyx_t_1; - __Pyx_RefNannySetupContext("PyDataType_SHAPE", 0); - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":751 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -@@ -7714,7 +7896,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - __pyx_t_1 = (PyDataType_HASSUBARRAY(__pyx_v_d) != 0); - if (__pyx_t_1) { - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":752 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":752 - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): - * return d.subarray.shape # <<<<<<<<<<<<<< -@@ -7726,7 +7908,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); - goto __pyx_L0; - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":751 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":751 - * - * cdef inline tuple PyDataType_SHAPE(dtype d): - * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< -@@ -7735,7 +7917,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - */ - } - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":754 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":754 - * return d.subarray.shape - * else: - * return () # <<<<<<<<<<<<<< -@@ -7749,7 +7931,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - goto __pyx_L0; - } - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":750 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":750 - * return PyArray_MultiIterNew(5, a, b, c, d, e) - * - * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< -@@ -7764,7 +7946,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ - return __pyx_r; - } - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":929 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":929 - * int _import_umath() except -1 - * - * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< -@@ -7776,7 +7958,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("set_array_base", 0); - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":930 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/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! # <<<<<<<<<<<<<< -@@ -7785,7 +7967,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - Py_INCREF(__pyx_v_base); - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":931 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/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) # <<<<<<<<<<<<<< -@@ -7794,7 +7976,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - */ - (void)(PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base)); - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":929 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":929 - * int _import_umath() except -1 - * - * cdef inline void set_array_base(ndarray arr, object base): # <<<<<<<<<<<<<< -@@ -7806,7 +7988,7 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a - __Pyx_RefNannyFinishContext(); - } - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":933 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":933 - * PyArray_SetBaseObject(arr, base) - * - * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< -@@ -7821,7 +8003,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - int __pyx_t_1; - __Pyx_RefNannySetupContext("get_array_base", 0); - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":934 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":934 - * - * cdef inline object get_array_base(ndarray arr): - * base = PyArray_BASE(arr) # <<<<<<<<<<<<<< -@@ -7830,7 +8012,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - __pyx_v_base = PyArray_BASE(__pyx_v_arr); - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":935 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":935 - * cdef inline object get_array_base(ndarray arr): - * base = PyArray_BASE(arr) - * if base is NULL: # <<<<<<<<<<<<<< -@@ -7840,7 +8022,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) { - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":936 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":936 - * base = PyArray_BASE(arr) - * if base is NULL: - * return None # <<<<<<<<<<<<<< -@@ -7851,7 +8033,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = Py_None; __Pyx_INCREF(Py_None); - goto __pyx_L0; - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":935 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":935 - * cdef inline object get_array_base(ndarray arr): - * base = PyArray_BASE(arr) - * if base is NULL: # <<<<<<<<<<<<<< -@@ -7860,7 +8042,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - */ - } - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":937 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":937 - * if base is NULL: - * return None - * return base # <<<<<<<<<<<<<< -@@ -7872,7 +8054,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - __pyx_r = ((PyObject *)__pyx_v_base); - goto __pyx_L0; - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":933 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":933 - * PyArray_SetBaseObject(arr, base) - * - * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< -@@ -7887,7 +8069,7 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py - return __pyx_r; - } - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< -@@ -7911,7 +8093,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_array", 0); - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -@@ -7927,7 +8109,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":943 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":943 - * cdef inline int import_array() except -1: - * try: - * __pyx_import_array() # <<<<<<<<<<<<<< -@@ -7936,7 +8118,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - */ - __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 943, __pyx_L3_error) - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -@@ -7950,7 +8132,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":944 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":944 - * try: - * __pyx_import_array() - * except Exception: # <<<<<<<<<<<<<< -@@ -7965,7 +8147,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":945 - * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< -@@ -7981,7 +8163,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":942 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":942 - * # Cython code. - * cdef inline int import_array() except -1: - * try: # <<<<<<<<<<<<<< -@@ -7996,7 +8178,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - __pyx_L8_try_end:; - } - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":941 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":941 - * # Versions of the import_* functions which are more suitable for - * # Cython code. - * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< -@@ -8019,7 +8201,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { - return __pyx_r; - } - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -8043,7 +8225,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_umath", 0); - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -8059,7 +8241,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":949 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":949 - * cdef inline int import_umath() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< -@@ -8068,7 +8250,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - */ - __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 949, __pyx_L3_error) - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -8082,7 +8264,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":950 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":950 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< -@@ -8097,7 +8279,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< -@@ -8113,7 +8295,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":948 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":948 - * - * cdef inline int import_umath() except -1: - * try: # <<<<<<<<<<<<<< -@@ -8128,7 +8310,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - __pyx_L8_try_end:; - } - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":947 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":947 - * raise ImportError("numpy.core.multiarray failed to import") - * - * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< -@@ -8151,7 +8333,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { - return __pyx_r; - } - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -8175,7 +8357,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("import_ufunc", 0); - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -8191,7 +8373,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_XGOTREF(__pyx_t_3); - /*try:*/ { - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":955 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":955 - * cdef inline int import_ufunc() except -1: - * try: - * _import_umath() # <<<<<<<<<<<<<< -@@ -8200,7 +8382,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - */ - __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 955, __pyx_L3_error) - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -8214,7 +8396,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - goto __pyx_L8_try_end; - __pyx_L3_error:; - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":956 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":956 - * try: - * _import_umath() - * except Exception: # <<<<<<<<<<<<<< -@@ -8229,7 +8411,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GOTREF(__pyx_t_7); - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":957 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":957 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< -@@ -8245,7 +8427,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - goto __pyx_L5_except_error; - __pyx_L5_except_error:; - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":954 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":954 - * - * cdef inline int import_ufunc() except -1: - * try: # <<<<<<<<<<<<<< -@@ -8260,7 +8442,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - __pyx_L8_try_end:; - } - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":953 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":953 - * raise ImportError("numpy.core.umath failed to import") - * - * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< -@@ -8283,7 +8465,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { - return __pyx_r; - } - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":967 - * - * - * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -@@ -8296,7 +8478,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_ - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("is_timedelta64_object", 0); - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":979 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":979 - * bool - * """ - * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<< -@@ -8306,7 +8488,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_ - __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); - goto __pyx_L0; - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":967 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":967 - * - * - * cdef inline bint is_timedelta64_object(object obj): # <<<<<<<<<<<<<< -@@ -8320,7 +8502,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_ - return __pyx_r; - } - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":982 - * - * - * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -@@ -8333,7 +8515,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_o - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("is_datetime64_object", 0); - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":994 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":994 - * bool - * """ - * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<< -@@ -8343,7 +8525,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_o - __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); - goto __pyx_L0; - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":982 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":982 - * - * - * cdef inline bint is_datetime64_object(object obj): # <<<<<<<<<<<<<< -@@ -8357,7 +8539,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_o - return __pyx_r; - } - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":997 - * - * - * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -@@ -8368,7 +8550,7 @@ static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_o - static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { - npy_datetime __pyx_r; - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1004 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":1004 - * also needed. That can be found using `get_datetime64_unit`. - * """ - * return (obj).obval # <<<<<<<<<<<<<< -@@ -8378,7 +8560,7 @@ static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject * - __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; - goto __pyx_L0; - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":997 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":997 - * - * - * cdef inline npy_datetime get_datetime64_value(object obj) nogil: # <<<<<<<<<<<<<< -@@ -8391,7 +8573,7 @@ static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject * - return __pyx_r; - } - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":1007 - * - * - * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -@@ -8402,7 +8584,7 @@ static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject * - static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { - npy_timedelta __pyx_r; - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1011 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":1011 - * returns the int64 value underlying scalar numpy timedelta64 object - * """ - * return (obj).obval # <<<<<<<<<<<<<< -@@ -8412,7 +8594,7 @@ static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject - __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; - goto __pyx_L0; - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1007 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":1007 - * - * - * cdef inline npy_timedelta get_timedelta64_value(object obj) nogil: # <<<<<<<<<<<<<< -@@ -8425,7 +8607,7 @@ static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject - return __pyx_r; - } - --/* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+/* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":1014 - * - * - * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -@@ -8436,7 +8618,7 @@ static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject - static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { - NPY_DATETIMEUNIT __pyx_r; - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1018 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":1018 - * returns the unit part of the dtype for a numpy datetime64 object. - * """ - * return (obj).obmeta.base # <<<<<<<<<<<<<< -@@ -8444,7 +8626,7 @@ static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObjec - __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); - goto __pyx_L0; - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":1014 - * - * - * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< -@@ -8790,14 +8972,14 @@ static PyTypeObject __pyx_type_4cylp_2cy_10CyCbcModel_CyCbcModel = { - #if PY_VERSION_HEX >= 0x030400a1 - 0, /*tp_finalize*/ - #endif -- #if PY_VERSION_HEX >= 0x030800b1 -+ #if PY_VERSION_HEX >= 0x030800b1 && (!CYTHON_COMPILING_IN_PYPY || PYPY_VERSION_NUM >= 0x07030800) - 0, /*tp_vectorcall*/ - #endif - #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 - 0, /*tp_print*/ - #endif -- #if PY_VERSION_HEX >= 0x030B00A2 -- 0, /*tp_inline_values_offset*/ -+ #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX >= 0x03090000 -+ 0, /*tp_pypy_flags*/ - #endif - }; - -@@ -8876,6 +9058,8 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_indices, __pyx_k_indices, sizeof(__pyx_k_indices), 0, 0, 1, 1}, - {&__pyx_n_s_inds, __pyx_k_inds, sizeof(__pyx_k_inds), 0, 0, 1, 1}, - {&__pyx_n_s_infeasible, __pyx_k_infeasible, sizeof(__pyx_k_infeasible), 0, 0, 1, 1}, -+ {&__pyx_n_s_isRelaxationAbondoned, __pyx_k_isRelaxationAbondoned, sizeof(__pyx_k_isRelaxationAbondoned), 0, 0, 1, 1}, -+ {&__pyx_n_s_isRelaxationInfeasible, __pyx_k_isRelaxationInfeasible, sizeof(__pyx_k_isRelaxationInfeasible), 0, 0, 1, 1}, - {&__pyx_n_s_itertools, __pyx_k_itertools, sizeof(__pyx_k_itertools), 0, 0, 1, 1}, - {&__pyx_n_s_izip, __pyx_k_izip, sizeof(__pyx_k_izip), 0, 0, 1, 1}, - {&__pyx_n_s_keys, __pyx_k_keys, sizeof(__pyx_k_keys), 0, 0, 1, 1}, -@@ -8888,6 +9072,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0}, - {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0}, - {&__pyx_n_s_problemStatus, __pyx_k_problemStatus, sizeof(__pyx_k_problemStatus), 0, 0, 1, 1}, -+ {&__pyx_kp_s_problem_proven_infeasible, __pyx_k_problem_proven_infeasible, sizeof(__pyx_k_problem_proven_infeasible), 0, 0, 1, 0}, - {&__pyx_n_s_product, __pyx_k_product, sizeof(__pyx_k_product), 0, 0, 1, 1}, - {&__pyx_n_s_pythonCutGeneratorObject, __pyx_k_pythonCutGeneratorObject, sizeof(__pyx_k_pythonCutGeneratorObject), 0, 0, 1, 1}, - {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, -@@ -8895,6 +9080,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, -+ {&__pyx_kp_s_relaxation_abondoned, __pyx_k_relaxation_abondoned, sizeof(__pyx_k_relaxation_abondoned), 0, 0, 1, 0}, - {&__pyx_kp_s_relaxation_infeasible, __pyx_k_relaxation_infeasible, sizeof(__pyx_k_relaxation_infeasible), 0, 0, 1, 0}, - {&__pyx_kp_s_setNodeCompare_argument_should_b, __pyx_k_setNodeCompare_argument_should_b, sizeof(__pyx_k_setNodeCompare_argument_should_b), 0, 0, 1, 0}, - {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, -@@ -8920,7 +9106,7 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_zip = __Pyx_GetBuiltinName(__pyx_n_s_zip); if (!__pyx_builtin_zip) __PYX_ERR(0, 7, __pyx_L1_error) - __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s_AttributeError); if (!__pyx_builtin_AttributeError) __PYX_ERR(0, 99, __pyx_L1_error) - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 112, __pyx_L1_error) -- __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 199, __pyx_L1_error) -+ __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 202, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -@@ -8949,7 +9135,7 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_GOTREF(__pyx_tuple__3); - __Pyx_GIVEREF(__pyx_tuple__3); - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":945 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":945 - * __pyx_import_array() - * except Exception: - * raise ImportError("numpy.core.multiarray failed to import") # <<<<<<<<<<<<<< -@@ -8960,7 +9146,7 @@ static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_GOTREF(__pyx_tuple__4); - __Pyx_GIVEREF(__pyx_tuple__4); - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":951 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":951 - * _import_umath() - * except Exception: - * raise ImportError("numpy.core.umath failed to import") # <<<<<<<<<<<<<< -@@ -9665,7 +9851,7 @@ if (!__Pyx_RefNanny) { - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_7) < 0) __PYX_ERR(0, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - -- /* "../miniforge3/envs/numpy-dev/lib/python3.10/site-packages/numpy/__init__.pxd":1014 -+ /* "../miniforge3/envs/numpy-devel/lib/python3.9/site-packages/numpy/__init__.pxd":1014 - * - * - * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) nogil: # <<<<<<<<<<<<<< diff --git a/build/pkgs/cylp/patches/02-bc666ccc89a9f6510c8ebf7d54f7a135294dc257.patch b/build/pkgs/cylp/patches/02-bc666ccc89a9f6510c8ebf7d54f7a135294dc257.patch deleted file mode 100644 index 7d6ccfb8002..00000000000 --- a/build/pkgs/cylp/patches/02-bc666ccc89a9f6510c8ebf7d54f7a135294dc257.patch +++ /dev/null @@ -1,280 +0,0 @@ -From bc666ccc89a9f6510c8ebf7d54f7a135294dc257 Mon Sep 17 00:00:00 2001 -From: Ted Ralphs -Date: Tue, 15 Mar 2022 15:37:57 -0400 -Subject: [PATCH] Fixing another typo and clarify menaing of status - ---- - cylp/cy/CyCbcModel.cpp | 87 ++++++++++++++++++++++-------------------- - cylp/cy/CyCbcModel.pyx | 4 +- - 2 files changed, 47 insertions(+), 44 deletions(-) - -diff --git a/cylp/cy/CyCbcModel.cpp b/cylp/cy/CyCbcModel.cpp -index 8192e18..cf3e3b8 100644 ---- a/cylp/cy/CyCbcModel.cpp -+++ b/cylp/cy/CyCbcModel.cpp -@@ -2753,10 +2753,11 @@ static const char __pyx_k_NodeCompareBase[] = "NodeCompareBase"; - static const char __pyx_k_addCutGenerator[] = "addCutGenerator"; - static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; - static const char __pyx_k_stopped_on_time[] = "stopped on time"; -+static const char __pyx_k_search_completed[] = "search completed"; - static const char __pyx_k_stopped_on_nodes[] = "stopped on nodes"; - static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; --static const char __pyx_k_relaxation_abondoned[] = "relaxation abondoned"; --static const char __pyx_k_isRelaxationAbondoned[] = "isRelaxationAbondoned"; -+static const char __pyx_k_relaxation_abandoned[] = "relaxation abandoned"; -+static const char __pyx_k_isRelaxationAbandoned[] = "isRelaxationAbandoned"; - 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_isRelaxationInfeasible[] = "isRelaxationInfeasible"; -@@ -2797,7 +2798,7 @@ static PyObject *__pyx_n_s_import; - static PyObject *__pyx_n_s_indices; - static PyObject *__pyx_n_s_inds; - static PyObject *__pyx_n_s_infeasible; --static PyObject *__pyx_n_s_isRelaxationAbondoned; -+static PyObject *__pyx_n_s_isRelaxationAbandoned; - static PyObject *__pyx_n_s_isRelaxationInfeasible; - static PyObject *__pyx_n_s_itertools; - static PyObject *__pyx_n_s_izip; -@@ -2819,8 +2820,9 @@ static PyObject *__pyx_n_s_range; - static PyObject *__pyx_n_s_reduce; - static PyObject *__pyx_n_s_reduce_cython; - static PyObject *__pyx_n_s_reduce_ex; --static PyObject *__pyx_kp_s_relaxation_abondoned; -+static PyObject *__pyx_kp_s_relaxation_abandoned; - static PyObject *__pyx_kp_s_relaxation_infeasible; -+static PyObject *__pyx_kp_s_search_completed; - static PyObject *__pyx_kp_s_setNodeCompare_argument_should_b; - static PyObject *__pyx_n_s_setstate; - static PyObject *__pyx_n_s_setstate_cython; -@@ -2850,7 +2852,7 @@ static int __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_8logLevel_2__set__(struc - static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_12isRelaxationInfeasible(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_14isRelaxationDualInfeasible(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16isRelaxationOptimal(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_v_self); /* proto */ --static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbondoned(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_v_self); /* proto */ -+static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbandoned(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_17osiSolverInteface___get__(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_22primalVariableSolution___get__(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_v_self); /* proto */ - static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_13solutionCount___get__(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_v_self); /* proto */ -@@ -4821,7 +4823,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_6status___get__(st - * # secondaryStatus() should be used instead of status() (??) - * if self.isRelaxationInfeasible(): # <<<<<<<<<<<<<< - * return problemStatus[1] -- * if self.isRelaxationAbondoned(): -+ * if self.isRelaxationAbandoned(): - */ - __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_isRelaxationInfeasible); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 155, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); -@@ -4848,8 +4850,8 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_6status___get__(st - * # secondaryStatus() should be used instead of status() (??) - * if self.isRelaxationInfeasible(): - * return problemStatus[1] # <<<<<<<<<<<<<< -- * if self.isRelaxationAbondoned(): -- * return 'relaxation abondoned' -+ * if self.isRelaxationAbandoned(): -+ * return 'relaxation abandoned' - */ - __Pyx_XDECREF(__pyx_r); - __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_problemStatus); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 156, __pyx_L1_error) -@@ -4866,18 +4868,18 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_6status___get__(st - * # secondaryStatus() should be used instead of status() (??) - * if self.isRelaxationInfeasible(): # <<<<<<<<<<<<<< - * return problemStatus[1] -- * if self.isRelaxationAbondoned(): -+ * if self.isRelaxationAbandoned(): - */ - } - - /* "cylp/cy/CyCbcModel.pyx":157 - * if self.isRelaxationInfeasible(): - * return problemStatus[1] -- * if self.isRelaxationAbondoned(): # <<<<<<<<<<<<<< -- * return 'relaxation abondoned' -+ * if self.isRelaxationAbandoned(): # <<<<<<<<<<<<<< -+ * return 'relaxation abandoned' - * if self.CppSelf.isProvenInfeasible(): - */ -- __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_isRelaxationAbondoned); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 157, __pyx_L1_error) -+ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_isRelaxationAbandoned); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 157, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_3 = NULL; - if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) { -@@ -4900,28 +4902,28 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_6status___get__(st - - /* "cylp/cy/CyCbcModel.pyx":158 - * return problemStatus[1] -- * if self.isRelaxationAbondoned(): -- * return 'relaxation abondoned' # <<<<<<<<<<<<<< -+ * if self.isRelaxationAbandoned(): -+ * return 'relaxation abandoned' # <<<<<<<<<<<<<< - * if self.CppSelf.isProvenInfeasible(): - * return 'problem proven infeasible' - */ - __Pyx_XDECREF(__pyx_r); -- __Pyx_INCREF(__pyx_kp_s_relaxation_abondoned); -- __pyx_r = __pyx_kp_s_relaxation_abondoned; -+ __Pyx_INCREF(__pyx_kp_s_relaxation_abandoned); -+ __pyx_r = __pyx_kp_s_relaxation_abandoned; - goto __pyx_L0; - - /* "cylp/cy/CyCbcModel.pyx":157 - * if self.isRelaxationInfeasible(): - * return problemStatus[1] -- * if self.isRelaxationAbondoned(): # <<<<<<<<<<<<<< -- * return 'relaxation abondoned' -+ * if self.isRelaxationAbandoned(): # <<<<<<<<<<<<<< -+ * return 'relaxation abandoned' - * if self.CppSelf.isProvenInfeasible(): - */ - } - - /* "cylp/cy/CyCbcModel.pyx":159 -- * if self.isRelaxationAbondoned(): -- * return 'relaxation abondoned' -+ * if self.isRelaxationAbandoned(): -+ * return 'relaxation abandoned' - * if self.CppSelf.isProvenInfeasible(): # <<<<<<<<<<<<<< - * return 'problem proven infeasible' - * if self.CppSelf.isProvenOptimal(): -@@ -4930,7 +4932,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_6status___get__(st - if (__pyx_t_4) { - - /* "cylp/cy/CyCbcModel.pyx":160 -- * return 'relaxation abondoned' -+ * return 'relaxation abandoned' - * if self.CppSelf.isProvenInfeasible(): - * return 'problem proven infeasible' # <<<<<<<<<<<<<< - * if self.CppSelf.isProvenOptimal(): -@@ -4942,8 +4944,8 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_6status___get__(st - goto __pyx_L0; - - /* "cylp/cy/CyCbcModel.pyx":159 -- * if self.isRelaxationAbondoned(): -- * return 'relaxation abondoned' -+ * if self.isRelaxationAbandoned(): -+ * return 'relaxation abandoned' - * if self.CppSelf.isProvenInfeasible(): # <<<<<<<<<<<<<< - * return 'problem proven infeasible' - * if self.CppSelf.isProvenOptimal(): -@@ -5306,7 +5308,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16isRelaxationOpti - * def isRelaxationOptimal(self): - * return self.CppSelf.isInitialSolveProvenOptimal() # <<<<<<<<<<<<<< - * -- * def isRelaxationAbondoned(self): -+ * def isRelaxationAbandoned(self): - */ - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_v_self->CppSelf->isInitialSolveProvenOptimal()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 179, __pyx_L1_error) -@@ -5337,37 +5339,37 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_16isRelaxationOpti - /* "cylp/cy/CyCbcModel.pyx":181 - * return self.CppSelf.isInitialSolveProvenOptimal() - * -- * def isRelaxationAbondoned(self): # <<<<<<<<<<<<<< -+ * def isRelaxationAbandoned(self): # <<<<<<<<<<<<<< - * return self.CppSelf.isInitialSolveAbandoned() - * - */ - - /* Python wrapper */ --static PyObject *__pyx_pw_4cylp_2cy_10CyCbcModel_10CyCbcModel_19isRelaxationAbondoned(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ --static char __pyx_doc_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbondoned[] = "CyCbcModel.isRelaxationAbondoned(self)"; --static PyObject *__pyx_pw_4cylp_2cy_10CyCbcModel_10CyCbcModel_19isRelaxationAbondoned(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { -+static PyObject *__pyx_pw_4cylp_2cy_10CyCbcModel_10CyCbcModel_19isRelaxationAbandoned(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ -+static char __pyx_doc_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbandoned[] = "CyCbcModel.isRelaxationAbandoned(self)"; -+static PyObject *__pyx_pw_4cylp_2cy_10CyCbcModel_10CyCbcModel_19isRelaxationAbandoned(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations -- __Pyx_RefNannySetupContext("isRelaxationAbondoned (wrapper)", 0); -- __pyx_r = __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbondoned(((struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *)__pyx_v_self)); -+ __Pyx_RefNannySetupContext("isRelaxationAbandoned (wrapper)", 0); -+ __pyx_r = __pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbandoned(((struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *)__pyx_v_self)); - - /* function exit code */ - __Pyx_RefNannyFinishContext(); - return __pyx_r; - } - --static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbondoned(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_v_self) { -+static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbandoned(struct __pyx_obj_4cylp_2cy_10CyCbcModel_CyCbcModel *__pyx_v_self) { - 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("isRelaxationAbondoned", 0); -+ __Pyx_RefNannySetupContext("isRelaxationAbandoned", 0); - - /* "cylp/cy/CyCbcModel.pyx":182 - * -- * def isRelaxationAbondoned(self): -+ * def isRelaxationAbandoned(self): - * return self.CppSelf.isInitialSolveAbandoned() # <<<<<<<<<<<<<< - * - * property osiSolverInteface: -@@ -5382,7 +5384,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbon - /* "cylp/cy/CyCbcModel.pyx":181 - * return self.CppSelf.isInitialSolveProvenOptimal() - * -- * def isRelaxationAbondoned(self): # <<<<<<<<<<<<<< -+ * def isRelaxationAbandoned(self): # <<<<<<<<<<<<<< - * return self.CppSelf.isInitialSolveAbandoned() - * - */ -@@ -5390,7 +5392,7 @@ static PyObject *__pyx_pf_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbon - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); -- __Pyx_AddTraceback("cylp.cy.CyCbcModel.CyCbcModel.isRelaxationAbondoned", __pyx_clineno, __pyx_lineno, __pyx_filename); -+ __Pyx_AddTraceback("cylp.cy.CyCbcModel.CyCbcModel.isRelaxationAbandoned", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XGIVEREF(__pyx_r); -@@ -8883,7 +8885,7 @@ static PyMethodDef __pyx_methods_4cylp_2cy_10CyCbcModel_CyCbcModel[] = { - {"isRelaxationInfeasible", (PyCFunction)__pyx_pw_4cylp_2cy_10CyCbcModel_10CyCbcModel_13isRelaxationInfeasible, METH_NOARGS, __pyx_doc_4cylp_2cy_10CyCbcModel_10CyCbcModel_12isRelaxationInfeasible}, - {"isRelaxationDualInfeasible", (PyCFunction)__pyx_pw_4cylp_2cy_10CyCbcModel_10CyCbcModel_15isRelaxationDualInfeasible, METH_NOARGS, __pyx_doc_4cylp_2cy_10CyCbcModel_10CyCbcModel_14isRelaxationDualInfeasible}, - {"isRelaxationOptimal", (PyCFunction)__pyx_pw_4cylp_2cy_10CyCbcModel_10CyCbcModel_17isRelaxationOptimal, METH_NOARGS, __pyx_doc_4cylp_2cy_10CyCbcModel_10CyCbcModel_16isRelaxationOptimal}, -- {"isRelaxationAbondoned", (PyCFunction)__pyx_pw_4cylp_2cy_10CyCbcModel_10CyCbcModel_19isRelaxationAbondoned, METH_NOARGS, __pyx_doc_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbondoned}, -+ {"isRelaxationAbandoned", (PyCFunction)__pyx_pw_4cylp_2cy_10CyCbcModel_10CyCbcModel_19isRelaxationAbandoned, METH_NOARGS, __pyx_doc_4cylp_2cy_10CyCbcModel_10CyCbcModel_18isRelaxationAbandoned}, - {"__reduce_cython__", (PyCFunction)__pyx_pw_4cylp_2cy_10CyCbcModel_10CyCbcModel_21__reduce_cython__, METH_NOARGS, __pyx_doc_4cylp_2cy_10CyCbcModel_10CyCbcModel_20__reduce_cython__}, - {"__setstate_cython__", (PyCFunction)__pyx_pw_4cylp_2cy_10CyCbcModel_10CyCbcModel_23__setstate_cython__, METH_O, __pyx_doc_4cylp_2cy_10CyCbcModel_10CyCbcModel_22__setstate_cython__}, - {0, 0, 0, 0} -@@ -9058,7 +9060,7 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_indices, __pyx_k_indices, sizeof(__pyx_k_indices), 0, 0, 1, 1}, - {&__pyx_n_s_inds, __pyx_k_inds, sizeof(__pyx_k_inds), 0, 0, 1, 1}, - {&__pyx_n_s_infeasible, __pyx_k_infeasible, sizeof(__pyx_k_infeasible), 0, 0, 1, 1}, -- {&__pyx_n_s_isRelaxationAbondoned, __pyx_k_isRelaxationAbondoned, sizeof(__pyx_k_isRelaxationAbondoned), 0, 0, 1, 1}, -+ {&__pyx_n_s_isRelaxationAbandoned, __pyx_k_isRelaxationAbandoned, sizeof(__pyx_k_isRelaxationAbandoned), 0, 0, 1, 1}, - {&__pyx_n_s_isRelaxationInfeasible, __pyx_k_isRelaxationInfeasible, sizeof(__pyx_k_isRelaxationInfeasible), 0, 0, 1, 1}, - {&__pyx_n_s_itertools, __pyx_k_itertools, sizeof(__pyx_k_itertools), 0, 0, 1, 1}, - {&__pyx_n_s_izip, __pyx_k_izip, sizeof(__pyx_k_izip), 0, 0, 1, 1}, -@@ -9080,8 +9082,9 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, - {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, -- {&__pyx_kp_s_relaxation_abondoned, __pyx_k_relaxation_abondoned, sizeof(__pyx_k_relaxation_abondoned), 0, 0, 1, 0}, -+ {&__pyx_kp_s_relaxation_abandoned, __pyx_k_relaxation_abandoned, sizeof(__pyx_k_relaxation_abandoned), 0, 0, 1, 0}, - {&__pyx_kp_s_relaxation_infeasible, __pyx_k_relaxation_infeasible, sizeof(__pyx_k_relaxation_infeasible), 0, 0, 1, 0}, -+ {&__pyx_kp_s_search_completed, __pyx_k_search_completed, sizeof(__pyx_k_search_completed), 0, 0, 1, 0}, - {&__pyx_kp_s_setNodeCompare_argument_should_b, __pyx_k_setNodeCompare_argument_should_b, sizeof(__pyx_k_setNodeCompare_argument_should_b), 0, 0, 1, 0}, - {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, - {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, -@@ -9808,15 +9811,15 @@ if (!__Pyx_RefNanny) { - /* "cylp/cy/CyCbcModel.pyx":33 - * - * # Understandable messages to translate what branchAndBound() returns -- * problemStatus = ['solution', 'relaxation infeasible', # <<<<<<<<<<<<<< -+ * problemStatus = ['search completed', 'relaxation infeasible', # <<<<<<<<<<<<<< - * 'stopped on gap', 'stopped on nodes', 'stopped on time', - * 'stopped on user event', 'stopped on solutions' - */ - __pyx_t_7 = PyList_New(8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 33, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); -- __Pyx_INCREF(__pyx_n_s_solution); -- __Pyx_GIVEREF(__pyx_n_s_solution); -- PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_s_solution); -+ __Pyx_INCREF(__pyx_kp_s_search_completed); -+ __Pyx_GIVEREF(__pyx_kp_s_search_completed); -+ PyList_SET_ITEM(__pyx_t_7, 0, __pyx_kp_s_search_completed); - __Pyx_INCREF(__pyx_kp_s_relaxation_infeasible); - __Pyx_GIVEREF(__pyx_kp_s_relaxation_infeasible); - PyList_SET_ITEM(__pyx_t_7, 1, __pyx_kp_s_relaxation_infeasible); From 7a763916150284255e007f1b22750301ba2d91ee Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 26 Mar 2022 19:22:38 -0700 Subject: [PATCH 021/249] build/pkgs/cvxpy/requirements.txt: Update git ref --- build/pkgs/cvxpy/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/pkgs/cvxpy/requirements.txt b/build/pkgs/cvxpy/requirements.txt index 4882cefe710..1c90646f7cd 100644 --- a/build/pkgs/cvxpy/requirements.txt +++ b/build/pkgs/cvxpy/requirements.txt @@ -1 +1 @@ -cvxpy @ git+https://github.com/cvxpy/cvxpy.git@refs/pull/1707/head +cvxpy @ git+https://github.com/cvxpy/cvxpy.git@30f8e04aa00d0bcdd759bdb8e1b72cdbd9f51c4f From 7cf3d6f5a427b6165ea251845fdf82d49c89ebfe Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 30 Jul 2022 11:26:27 -0700 Subject: [PATCH 022/249] build/pkgs/cvxpy: Make it a normal package, add dependencies qdldl_python, osqp, scs, ecos --- build/pkgs/cvxpy/checksums.ini | 5 +++++ build/pkgs/cvxpy/dependencies | 2 +- build/pkgs/cvxpy/install-requires.txt | 1 + build/pkgs/cvxpy/package-version.txt | 1 + build/pkgs/cvxpy/requirements.txt | 1 - build/pkgs/cvxpy/spkg-install.in | 3 +++ build/pkgs/ecos/SPKG.rst | 18 ++++++++++++++++++ build/pkgs/ecos/checksums.ini | 5 +++++ build/pkgs/ecos/dependencies | 4 ++++ build/pkgs/ecos/install-requires.txt | 1 + build/pkgs/ecos/package-version.txt | 1 + build/pkgs/ecos/spkg-install.in | 2 ++ build/pkgs/ecos/type | 1 + build/pkgs/osqp/SPKG.rst | 18 ++++++++++++++++++ build/pkgs/osqp/checksums.ini | 5 +++++ build/pkgs/osqp/dependencies | 4 ++++ build/pkgs/osqp/install-requires.txt | 1 + build/pkgs/osqp/package-version.txt | 1 + build/pkgs/osqp/spkg-install.in | 2 ++ build/pkgs/osqp/type | 1 + build/pkgs/qdldl_python/SPKG.rst | 18 ++++++++++++++++++ build/pkgs/qdldl_python/checksums.ini | 5 +++++ build/pkgs/qdldl_python/dependencies | 4 ++++ build/pkgs/qdldl_python/install-requires.txt | 1 + build/pkgs/qdldl_python/package-version.txt | 1 + build/pkgs/qdldl_python/spkg-install.in | 2 ++ build/pkgs/qdldl_python/type | 1 + build/pkgs/scs/SPKG.rst | 18 ++++++++++++++++++ build/pkgs/scs/checksums.ini | 5 +++++ build/pkgs/scs/dependencies | 4 ++++ build/pkgs/scs/install-requires.txt | 1 + build/pkgs/scs/package-version.txt | 1 + build/pkgs/scs/spkg-install.in | 2 ++ build/pkgs/scs/type | 1 + 34 files changed, 139 insertions(+), 2 deletions(-) create mode 100644 build/pkgs/cvxpy/checksums.ini create mode 100644 build/pkgs/cvxpy/install-requires.txt create mode 100644 build/pkgs/cvxpy/package-version.txt delete mode 100644 build/pkgs/cvxpy/requirements.txt create mode 100644 build/pkgs/cvxpy/spkg-install.in create mode 100644 build/pkgs/ecos/SPKG.rst create mode 100644 build/pkgs/ecos/checksums.ini create mode 100644 build/pkgs/ecos/dependencies create mode 100644 build/pkgs/ecos/install-requires.txt create mode 100644 build/pkgs/ecos/package-version.txt create mode 100644 build/pkgs/ecos/spkg-install.in create mode 100644 build/pkgs/ecos/type create mode 100644 build/pkgs/osqp/SPKG.rst create mode 100644 build/pkgs/osqp/checksums.ini create mode 100644 build/pkgs/osqp/dependencies create mode 100644 build/pkgs/osqp/install-requires.txt create mode 100644 build/pkgs/osqp/package-version.txt create mode 100644 build/pkgs/osqp/spkg-install.in create mode 100644 build/pkgs/osqp/type create mode 100644 build/pkgs/qdldl_python/SPKG.rst create mode 100644 build/pkgs/qdldl_python/checksums.ini create mode 100644 build/pkgs/qdldl_python/dependencies create mode 100644 build/pkgs/qdldl_python/install-requires.txt create mode 100644 build/pkgs/qdldl_python/package-version.txt create mode 100644 build/pkgs/qdldl_python/spkg-install.in create mode 100644 build/pkgs/qdldl_python/type create mode 100644 build/pkgs/scs/SPKG.rst create mode 100644 build/pkgs/scs/checksums.ini create mode 100644 build/pkgs/scs/dependencies create mode 100644 build/pkgs/scs/install-requires.txt create mode 100644 build/pkgs/scs/package-version.txt create mode 100644 build/pkgs/scs/spkg-install.in create mode 100644 build/pkgs/scs/type diff --git a/build/pkgs/cvxpy/checksums.ini b/build/pkgs/cvxpy/checksums.ini new file mode 100644 index 00000000000..dc48984b115 --- /dev/null +++ b/build/pkgs/cvxpy/checksums.ini @@ -0,0 +1,5 @@ +tarball=cvxpy-VERSION.tar.gz +sha1=03d4c4cbe3161771d3978135d44c06a868e69988 +md5=893c1fd38be2b847c389f785555d8f59 +cksum=1338249214 +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 index 888fc3e4481..2e1f6cc3357 100644 --- a/build/pkgs/cvxpy/dependencies +++ b/build/pkgs/cvxpy/dependencies @@ -1,4 +1,4 @@ -$(PYTHON) numpy scipy pybind11 glpk cvxopt | $(PYTHON_TOOLCHAIN) +$(PYTHON) numpy scipy glpk cvxopt osqp ecos scs | $(PYTHON_TOOLCHAIN) ---------- All lines of this file are ignored except the first. 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..6085e946503 --- /dev/null +++ b/build/pkgs/cvxpy/package-version.txt @@ -0,0 +1 @@ +1.2.1 diff --git a/build/pkgs/cvxpy/requirements.txt b/build/pkgs/cvxpy/requirements.txt deleted file mode 100644 index 1c90646f7cd..00000000000 --- a/build/pkgs/cvxpy/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -cvxpy @ git+https://github.com/cvxpy/cvxpy.git@30f8e04aa00d0bcdd759bdb8e1b72cdbd9f51c4f 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/ecos/SPKG.rst b/build/pkgs/ecos/SPKG.rst new file mode 100644 index 00000000000..75828ea9c37 --- /dev/null +++ b/build/pkgs/ecos/SPKG.rst @@ -0,0 +1,18 @@ +ecos: This is the Python package for ECOS: Embedded Cone Solver. See Github page for more information. +====================================================================================================== + +Description +----------- + +This is the Python package for ECOS: Embedded Cone Solver. See Github page for more information. + +License +------- + +GPLv3 + +Upstream Contact +---------------- + +https://pypi.org/project/ecos/ + diff --git a/build/pkgs/ecos/checksums.ini b/build/pkgs/ecos/checksums.ini new file mode 100644 index 00000000000..1d660c0b9a5 --- /dev/null +++ b/build/pkgs/ecos/checksums.ini @@ -0,0 +1,5 @@ +tarball=ecos-VERSION.tar.gz +sha1=6d980399f0b7fe0aab243a0cc8e4578b3a7bbd2c +md5=2d8cd61259dfd47fedb0bf23ab31520a +cksum=4227060546 +upstream_url=https://pypi.io/packages/source/e/ecos/ecos-VERSION.tar.gz diff --git a/build/pkgs/ecos/dependencies b/build/pkgs/ecos/dependencies new file mode 100644 index 00000000000..ecd3af7675b --- /dev/null +++ b/build/pkgs/ecos/dependencies @@ -0,0 +1,4 @@ +$(PYTHON) numpy scipy | $(PYTHON_TOOLCHAIN) + +---------- +All lines of this file are ignored except the first. diff --git a/build/pkgs/ecos/install-requires.txt b/build/pkgs/ecos/install-requires.txt new file mode 100644 index 00000000000..d75c5988ca8 --- /dev/null +++ b/build/pkgs/ecos/install-requires.txt @@ -0,0 +1 @@ +ecos diff --git a/build/pkgs/ecos/package-version.txt b/build/pkgs/ecos/package-version.txt new file mode 100644 index 00000000000..0a692060f9b --- /dev/null +++ b/build/pkgs/ecos/package-version.txt @@ -0,0 +1 @@ +2.0.10 diff --git a/build/pkgs/ecos/spkg-install.in b/build/pkgs/ecos/spkg-install.in new file mode 100644 index 00000000000..37ac1a53437 --- /dev/null +++ b/build/pkgs/ecos/spkg-install.in @@ -0,0 +1,2 @@ +cd src +sdh_pip_install . diff --git a/build/pkgs/ecos/type b/build/pkgs/ecos/type new file mode 100644 index 00000000000..134d9bc32d5 --- /dev/null +++ b/build/pkgs/ecos/type @@ -0,0 +1 @@ +optional diff --git a/build/pkgs/osqp/SPKG.rst b/build/pkgs/osqp/SPKG.rst new file mode 100644 index 00000000000..f97c2120160 --- /dev/null +++ b/build/pkgs/osqp/SPKG.rst @@ -0,0 +1,18 @@ +osqp: OSQP: The Operator Splitting QP Solver +============================================ + +Description +----------- + +OSQP: The Operator Splitting QP Solver + +License +------- + +Apache 2.0 + +Upstream Contact +---------------- + +https://pypi.org/project/osqp/ + diff --git a/build/pkgs/osqp/checksums.ini b/build/pkgs/osqp/checksums.ini new file mode 100644 index 00000000000..1fbb958ee11 --- /dev/null +++ b/build/pkgs/osqp/checksums.ini @@ -0,0 +1,5 @@ +tarball=osqp-VERSION.tar.gz +sha1=2f6493ecb34dd129531ac955abdd7ed03af8f78f +md5=2e7491f53e4825515db6db4e97d2ef45 +cksum=1539597175 +upstream_url=https://pypi.io/packages/source/o/osqp/osqp-VERSION.tar.gz diff --git a/build/pkgs/osqp/dependencies b/build/pkgs/osqp/dependencies new file mode 100644 index 00000000000..138a24dc010 --- /dev/null +++ b/build/pkgs/osqp/dependencies @@ -0,0 +1,4 @@ +$(PYTHON) qdldl_python numpy scipy | $(PYTHON_TOOLCHAIN) + +---------- +All lines of this file are ignored except the first. diff --git a/build/pkgs/osqp/install-requires.txt b/build/pkgs/osqp/install-requires.txt new file mode 100644 index 00000000000..c2c8a965707 --- /dev/null +++ b/build/pkgs/osqp/install-requires.txt @@ -0,0 +1 @@ +osqp diff --git a/build/pkgs/osqp/package-version.txt b/build/pkgs/osqp/package-version.txt new file mode 100644 index 00000000000..8c6bbf4a781 --- /dev/null +++ b/build/pkgs/osqp/package-version.txt @@ -0,0 +1 @@ +0.6.2.post5 diff --git a/build/pkgs/osqp/spkg-install.in b/build/pkgs/osqp/spkg-install.in new file mode 100644 index 00000000000..37ac1a53437 --- /dev/null +++ b/build/pkgs/osqp/spkg-install.in @@ -0,0 +1,2 @@ +cd src +sdh_pip_install . diff --git a/build/pkgs/osqp/type b/build/pkgs/osqp/type new file mode 100644 index 00000000000..134d9bc32d5 --- /dev/null +++ b/build/pkgs/osqp/type @@ -0,0 +1 @@ +optional diff --git a/build/pkgs/qdldl_python/SPKG.rst b/build/pkgs/qdldl_python/SPKG.rst new file mode 100644 index 00000000000..f2ddd73224a --- /dev/null +++ b/build/pkgs/qdldl_python/SPKG.rst @@ -0,0 +1,18 @@ +qdldl_python: QDLDL, a free LDL factorization routine (Python wrapper) +====================================================================== + +Description +----------- + +QDLDL, a free LDL factorization routine. + +License +------- + +Apache 2.0 + +Upstream Contact +---------------- + +https://pypi.org/project/qdldl/ + diff --git a/build/pkgs/qdldl_python/checksums.ini b/build/pkgs/qdldl_python/checksums.ini new file mode 100644 index 00000000000..6a9e416028c --- /dev/null +++ b/build/pkgs/qdldl_python/checksums.ini @@ -0,0 +1,5 @@ +tarball=qdldl-VERSION.tar.gz +sha1=ccecff38b06eef36a38e91635464b9f357a6f198 +md5=a7ca53ba719a12e4303a1274506c55a8 +cksum=3447836333 +upstream_url=https://pypi.io/packages/source/q/qdldl/qdldl-VERSION.tar.gz diff --git a/build/pkgs/qdldl_python/dependencies b/build/pkgs/qdldl_python/dependencies new file mode 100644 index 00000000000..48c2586b9f4 --- /dev/null +++ b/build/pkgs/qdldl_python/dependencies @@ -0,0 +1,4 @@ +$(PYTHON) pybind11 numpy scipy | $(PYTHON_TOOLCHAIN) cmake + +---------- +All lines of this file are ignored except the first. diff --git a/build/pkgs/qdldl_python/install-requires.txt b/build/pkgs/qdldl_python/install-requires.txt new file mode 100644 index 00000000000..19334259738 --- /dev/null +++ b/build/pkgs/qdldl_python/install-requires.txt @@ -0,0 +1 @@ +qdldl diff --git a/build/pkgs/qdldl_python/package-version.txt b/build/pkgs/qdldl_python/package-version.txt new file mode 100644 index 00000000000..d5b60a259f6 --- /dev/null +++ b/build/pkgs/qdldl_python/package-version.txt @@ -0,0 +1 @@ +0.1.5.post2 diff --git a/build/pkgs/qdldl_python/spkg-install.in b/build/pkgs/qdldl_python/spkg-install.in new file mode 100644 index 00000000000..37ac1a53437 --- /dev/null +++ b/build/pkgs/qdldl_python/spkg-install.in @@ -0,0 +1,2 @@ +cd src +sdh_pip_install . diff --git a/build/pkgs/qdldl_python/type b/build/pkgs/qdldl_python/type new file mode 100644 index 00000000000..134d9bc32d5 --- /dev/null +++ b/build/pkgs/qdldl_python/type @@ -0,0 +1 @@ +optional diff --git a/build/pkgs/scs/SPKG.rst b/build/pkgs/scs/SPKG.rst new file mode 100644 index 00000000000..e98a19d199e --- /dev/null +++ b/build/pkgs/scs/SPKG.rst @@ -0,0 +1,18 @@ +scs: scs: splitting conic solver +================================ + +Description +----------- + +scs: splitting conic solver + +License +------- + +MIT + +Upstream Contact +---------------- + +https://pypi.org/project/scs/ + diff --git a/build/pkgs/scs/checksums.ini b/build/pkgs/scs/checksums.ini new file mode 100644 index 00000000000..f92f46b9f2c --- /dev/null +++ b/build/pkgs/scs/checksums.ini @@ -0,0 +1,5 @@ +tarball=scs-VERSION.tar.gz +sha1=938174ef98ba1b92d108a47abcbf12b1d2119dcb +md5=336840dd28db0fd90d2b0570c8372291 +cksum=3980097253 +upstream_url=https://pypi.io/packages/source/s/scs/scs-VERSION.tar.gz diff --git a/build/pkgs/scs/dependencies b/build/pkgs/scs/dependencies new file mode 100644 index 00000000000..56c3c7a111c --- /dev/null +++ b/build/pkgs/scs/dependencies @@ -0,0 +1,4 @@ +$(PYTHON) numpy | $(PYTHON_TOOLCHAIN) cmake + +---------- +All lines of this file are ignored except the first. diff --git a/build/pkgs/scs/install-requires.txt b/build/pkgs/scs/install-requires.txt new file mode 100644 index 00000000000..846d47b8e24 --- /dev/null +++ b/build/pkgs/scs/install-requires.txt @@ -0,0 +1 @@ +scs diff --git a/build/pkgs/scs/package-version.txt b/build/pkgs/scs/package-version.txt new file mode 100644 index 00000000000..944880fa15e --- /dev/null +++ b/build/pkgs/scs/package-version.txt @@ -0,0 +1 @@ +3.2.0 diff --git a/build/pkgs/scs/spkg-install.in b/build/pkgs/scs/spkg-install.in new file mode 100644 index 00000000000..37ac1a53437 --- /dev/null +++ b/build/pkgs/scs/spkg-install.in @@ -0,0 +1,2 @@ +cd src +sdh_pip_install . diff --git a/build/pkgs/scs/type b/build/pkgs/scs/type new file mode 100644 index 00000000000..134d9bc32d5 --- /dev/null +++ b/build/pkgs/scs/type @@ -0,0 +1 @@ +optional From f6396e10513da1f261bf0c299fb24fa3164b326f Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 30 Jul 2022 12:01:52 -0700 Subject: [PATCH 023/249] build/pkgs/{ecos,osqp}_python: Renamed from ecos, osqp --- build/pkgs/cvxpy/dependencies | 2 +- build/pkgs/ecos/SPKG.rst | 18 ----------------- build/pkgs/ecos_python/SPKG.rst | 20 +++++++++++++++++++ .../pkgs/{ecos => ecos_python}/checksums.ini | 0 build/pkgs/{ecos => ecos_python}/dependencies | 0 .../install-requires.txt | 0 .../{ecos => ecos_python}/package-version.txt | 0 .../{ecos => ecos_python}/spkg-install.in | 0 build/pkgs/{ecos => ecos_python}/type | 0 build/pkgs/osqp/SPKG.rst | 18 ----------------- build/pkgs/osqp_python/SPKG.rst | 20 +++++++++++++++++++ .../pkgs/{osqp => osqp_python}/checksums.ini | 0 build/pkgs/{osqp => osqp_python}/dependencies | 0 .../install-requires.txt | 0 .../{osqp => osqp_python}/package-version.txt | 0 .../{osqp => osqp_python}/spkg-install.in | 0 build/pkgs/{osqp => osqp_python}/type | 0 build/pkgs/scs/SPKG.rst | 4 ++-- 18 files changed, 43 insertions(+), 39 deletions(-) delete mode 100644 build/pkgs/ecos/SPKG.rst create mode 100644 build/pkgs/ecos_python/SPKG.rst rename build/pkgs/{ecos => ecos_python}/checksums.ini (100%) rename build/pkgs/{ecos => ecos_python}/dependencies (100%) rename build/pkgs/{ecos => ecos_python}/install-requires.txt (100%) rename build/pkgs/{ecos => ecos_python}/package-version.txt (100%) rename build/pkgs/{ecos => ecos_python}/spkg-install.in (100%) rename build/pkgs/{ecos => ecos_python}/type (100%) delete mode 100644 build/pkgs/osqp/SPKG.rst create mode 100644 build/pkgs/osqp_python/SPKG.rst rename build/pkgs/{osqp => osqp_python}/checksums.ini (100%) rename build/pkgs/{osqp => osqp_python}/dependencies (100%) rename build/pkgs/{osqp => osqp_python}/install-requires.txt (100%) rename build/pkgs/{osqp => osqp_python}/package-version.txt (100%) rename build/pkgs/{osqp => osqp_python}/spkg-install.in (100%) rename build/pkgs/{osqp => osqp_python}/type (100%) diff --git a/build/pkgs/cvxpy/dependencies b/build/pkgs/cvxpy/dependencies index 2e1f6cc3357..540b44ff0f2 100644 --- a/build/pkgs/cvxpy/dependencies +++ b/build/pkgs/cvxpy/dependencies @@ -1,4 +1,4 @@ -$(PYTHON) numpy scipy glpk cvxopt osqp ecos scs | $(PYTHON_TOOLCHAIN) +$(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/ecos/SPKG.rst b/build/pkgs/ecos/SPKG.rst deleted file mode 100644 index 75828ea9c37..00000000000 --- a/build/pkgs/ecos/SPKG.rst +++ /dev/null @@ -1,18 +0,0 @@ -ecos: This is the Python package for ECOS: Embedded Cone Solver. See Github page for more information. -====================================================================================================== - -Description ------------ - -This is the Python package for ECOS: Embedded Cone Solver. See Github page for more information. - -License -------- - -GPLv3 - -Upstream Contact ----------------- - -https://pypi.org/project/ecos/ - diff --git a/build/pkgs/ecos_python/SPKG.rst b/build/pkgs/ecos_python/SPKG.rst new file mode 100644 index 00000000000..5c7bb0d9a22 --- /dev/null +++ b/build/pkgs/ecos_python/SPKG.rst @@ -0,0 +1,20 @@ +ecos_python: Embedded Cone Solver (Python wrapper) +================================================== + +Description +----------- + +This is the Python package for ECOS: Embedded Cone Solver. + +It vendors ECOS. + +License +------- + +GPLv3 + +Upstream Contact +---------------- + +https://pypi.org/project/ecos/ + diff --git a/build/pkgs/ecos/checksums.ini b/build/pkgs/ecos_python/checksums.ini similarity index 100% rename from build/pkgs/ecos/checksums.ini rename to build/pkgs/ecos_python/checksums.ini diff --git a/build/pkgs/ecos/dependencies b/build/pkgs/ecos_python/dependencies similarity index 100% rename from build/pkgs/ecos/dependencies rename to build/pkgs/ecos_python/dependencies diff --git a/build/pkgs/ecos/install-requires.txt b/build/pkgs/ecos_python/install-requires.txt similarity index 100% rename from build/pkgs/ecos/install-requires.txt rename to build/pkgs/ecos_python/install-requires.txt diff --git a/build/pkgs/ecos/package-version.txt b/build/pkgs/ecos_python/package-version.txt similarity index 100% rename from build/pkgs/ecos/package-version.txt rename to build/pkgs/ecos_python/package-version.txt diff --git a/build/pkgs/ecos/spkg-install.in b/build/pkgs/ecos_python/spkg-install.in similarity index 100% rename from build/pkgs/ecos/spkg-install.in rename to build/pkgs/ecos_python/spkg-install.in diff --git a/build/pkgs/ecos/type b/build/pkgs/ecos_python/type similarity index 100% rename from build/pkgs/ecos/type rename to build/pkgs/ecos_python/type diff --git a/build/pkgs/osqp/SPKG.rst b/build/pkgs/osqp/SPKG.rst deleted file mode 100644 index f97c2120160..00000000000 --- a/build/pkgs/osqp/SPKG.rst +++ /dev/null @@ -1,18 +0,0 @@ -osqp: OSQP: The Operator Splitting QP Solver -============================================ - -Description ------------ - -OSQP: The Operator Splitting QP Solver - -License -------- - -Apache 2.0 - -Upstream Contact ----------------- - -https://pypi.org/project/osqp/ - diff --git a/build/pkgs/osqp_python/SPKG.rst b/build/pkgs/osqp_python/SPKG.rst new file mode 100644 index 00000000000..7672b270ec9 --- /dev/null +++ b/build/pkgs/osqp_python/SPKG.rst @@ -0,0 +1,20 @@ +osqp_python: The Operator Splitting QP Solver (Python wrapper) +============================================================== + +Description +----------- + +This is the Python wrapper for OSQP: The Operator Splitting QP Solver. + +It vendors OSQP. + +License +------- + +Apache 2.0 + +Upstream Contact +---------------- + +https://pypi.org/project/osqp/ + diff --git a/build/pkgs/osqp/checksums.ini b/build/pkgs/osqp_python/checksums.ini similarity index 100% rename from build/pkgs/osqp/checksums.ini rename to build/pkgs/osqp_python/checksums.ini diff --git a/build/pkgs/osqp/dependencies b/build/pkgs/osqp_python/dependencies similarity index 100% rename from build/pkgs/osqp/dependencies rename to build/pkgs/osqp_python/dependencies diff --git a/build/pkgs/osqp/install-requires.txt b/build/pkgs/osqp_python/install-requires.txt similarity index 100% rename from build/pkgs/osqp/install-requires.txt rename to build/pkgs/osqp_python/install-requires.txt diff --git a/build/pkgs/osqp/package-version.txt b/build/pkgs/osqp_python/package-version.txt similarity index 100% rename from build/pkgs/osqp/package-version.txt rename to build/pkgs/osqp_python/package-version.txt diff --git a/build/pkgs/osqp/spkg-install.in b/build/pkgs/osqp_python/spkg-install.in similarity index 100% rename from build/pkgs/osqp/spkg-install.in rename to build/pkgs/osqp_python/spkg-install.in diff --git a/build/pkgs/osqp/type b/build/pkgs/osqp_python/type similarity index 100% rename from build/pkgs/osqp/type rename to build/pkgs/osqp_python/type diff --git a/build/pkgs/scs/SPKG.rst b/build/pkgs/scs/SPKG.rst index e98a19d199e..5d8430bfd6a 100644 --- a/build/pkgs/scs/SPKG.rst +++ b/build/pkgs/scs/SPKG.rst @@ -1,5 +1,5 @@ -scs: scs: splitting conic solver -================================ +scs: Splitting conic solver +=========================== Description ----------- From a4fc1d54575e31613a421093469e2187e41f8c9a Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 30 Jul 2022 12:09:36 -0700 Subject: [PATCH 024/249] build/pkgs/ecos_python/dependencies: Add suitesparse --- build/pkgs/ecos_python/dependencies | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/pkgs/ecos_python/dependencies b/build/pkgs/ecos_python/dependencies index ecd3af7675b..ecda51b7d05 100644 --- a/build/pkgs/ecos_python/dependencies +++ b/build/pkgs/ecos_python/dependencies @@ -1,4 +1,4 @@ -$(PYTHON) numpy scipy | $(PYTHON_TOOLCHAIN) +$(PYTHON) numpy scipy suitesparse | $(PYTHON_TOOLCHAIN) ---------- All lines of this file are ignored except the first. From dc9ed47753ea4da7be3a1d4bf769d9fde694dcc4 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 30 Jul 2022 12:09:58 -0700 Subject: [PATCH 025/249] build/pkgs/{ecos,osqp}_python: Use --no-build-isolation --- build/pkgs/ecos_python/spkg-install.in | 3 ++- build/pkgs/osqp_python/spkg-install.in | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/build/pkgs/ecos_python/spkg-install.in b/build/pkgs/ecos_python/spkg-install.in index 37ac1a53437..a143d1eff96 100644 --- a/build/pkgs/ecos_python/spkg-install.in +++ b/build/pkgs/ecos_python/spkg-install.in @@ -1,2 +1,3 @@ cd src -sdh_pip_install . +# --no-build-isolation to ignore the numpy version pin in pyproject.toml +sdh_pip_install --no-build-isolation . diff --git a/build/pkgs/osqp_python/spkg-install.in b/build/pkgs/osqp_python/spkg-install.in index 37ac1a53437..a143d1eff96 100644 --- a/build/pkgs/osqp_python/spkg-install.in +++ b/build/pkgs/osqp_python/spkg-install.in @@ -1,2 +1,3 @@ cd src -sdh_pip_install . +# --no-build-isolation to ignore the numpy version pin in pyproject.toml +sdh_pip_install --no-build-isolation . From 532ab013a1875270c2f9bdcdd220ab39584587df Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 30 Jul 2022 13:26:47 -0700 Subject: [PATCH 026/249] src/sage/numerical/backends/cvxpy_backend.pyx: Make doctests pass --- src/sage/numerical/backends/cvxpy_backend.pyx | 55 +++++++++++-------- 1 file changed, 33 insertions(+), 22 deletions(-) diff --git a/src/sage/numerical/backends/cvxpy_backend.pyx b/src/sage/numerical/backends/cvxpy_backend.pyx index d7651bd568b..6069a0d5adc 100644 --- a/src/sage/numerical/backends/cvxpy_backend.pyx +++ b/src/sage/numerical/backends/cvxpy_backend.pyx @@ -163,6 +163,9 @@ cdef class CVXPYBackend: cpdef cvxpy_problem(self): return self.problem + def cvxpy_variables(self): + return self.variables + cpdef int add_variable(self, lower_bound=0, upper_bound=None, binary=False, continuous=True, integer=False, obj=None, name=None, coefficients=None) except -1: @@ -215,7 +218,7 @@ cdef class CVXPYBackend: sage: p.col_name(1) 'x' sage: p.objective_coefficient(1) - 1 + 1.0 """ cdef int vtype = int(binary) + int(continuous) + int(integer) if vtype == 0: @@ -224,9 +227,13 @@ cdef class CVXPYBackend: raise ValueError("Exactly one parameter of 'binary', 'integer' and 'continuous' must be 'True'.") for i in range(len(self.Matrix)): - self.Matrix[i].append(0) + self.Matrix[i].append(0.0) self.col_lower_bound.append(lower_bound) self.col_upper_bound.append(upper_bound) + if obj is None: + obj = 0.0 + else: + obj = float(obj) self.objective_coefficients.append(obj) if binary: @@ -245,7 +252,7 @@ cdef class CVXPYBackend: if not isinstance(constraints[i], Equality): raise NotImplementedError('adding coefficients to inequalities is ambiguous ' 'because cvxpy rewrites all inequalities as <=') - constraints[i] = type(constraints[i])(constraints[i].args[0] + v * variable, + constraints[i] = type(constraints[i])(constraints[i].args[0] + float(v) * variable, constraints[i].args[1]) self.problem = cvxpy.Problem(self.problem.objective, constraints) @@ -298,19 +305,20 @@ cdef class CVXPYBackend: sage: p = get_solver(solver="CVXPY") sage: p.add_variables(5) 4 + sage: index = p.nrows() sage: p.add_linear_constraint( zip(range(5), range(5)), 2, 2) - sage: p.row(0) + sage: p.row(index) ([1, 2, 3, 4], [1, 2, 3, 4]) - sage: p.row_bounds(0) + sage: p.row_bounds(index) (2, 2) sage: p.add_linear_constraint( zip(range(5), range(5)), 1, 1, name='foo') sage: p.row_name(1) - 'foo' + 'constraint_1' """ last = len(self.Matrix) self.Matrix.append([]) for i in range(len(self.objective_coefficients)): - self.Matrix[last].append(0) + self.Matrix[last].append(0.0) for a in coefficients: self.Matrix[last][a[0]] = a[1] @@ -362,6 +370,9 @@ cdef class CVXPYBackend: 0 sage: p.add_linear_constraints(5, 0, None) sage: p.add_col(list(range(5)), list(range(5))) + Traceback (most recent call last): + ... + NotImplementedError: adding coefficients to inequalities is ambiguous because cvxpy rewrites all inequalities as <= sage: p.nrows() 5 """ @@ -399,7 +410,7 @@ cdef class CVXPYBackend: if self.variables: expr = AddExpression([c * x for c, x in zip(coeff, self.variables)]) for i in range(len(coeff)): - self.objective_coefficients[i] = coeff[i] + self.objective_coefficients[i] = float(coeff[i]) else: expr = Constant(0) objective = type(self.problem.objective)(expr) @@ -454,9 +465,9 @@ cdef class CVXPYBackend: 0 sage: p.objective_coefficient(0) 0.0 - sage: p.objective_coefficient(0,2) + sage: p.objective_coefficient(0, 2) sage: p.objective_coefficient(0) - 2.0 + 2 """ if coeff is not None: self.objective_coefficients[variable] = coeff @@ -486,6 +497,9 @@ cdef class CVXPYBackend: sage: p = get_solver(solver="CVXPY") sage: p.add_linear_constraints(5, 0, None) sage: p.add_col(list(range(5)), list(range(5))) + Traceback (most recent call last): + ... + NotImplementedError: adding coefficients to inequalities is ambiguous because cvxpy rewrites all inequalities as <= sage: p.solve() 0 sage: p.objective_coefficient(0,1) @@ -656,10 +670,11 @@ cdef class CVXPYBackend: sage: p = get_solver(solver="CVXPY") sage: p.add_variables(5) 4 + sage: index = p.nrows() sage: p.add_linear_constraint(zip(range(5), range(5)), 2, 2) - sage: p.row(0) + sage: p.row(index) ([1, 2, 3, 4], [1, 2, 3, 4]) - sage: p.row_bounds(0) + sage: p.row_bounds(index) (2, 2) """ idx = [] @@ -690,10 +705,11 @@ cdef class CVXPYBackend: sage: p = get_solver(solver="CVXPY") sage: p.add_variables(5) 4 + sage: index = p.nrows() sage: p.add_linear_constraint(zip(range(5), range(5)), 2, 2) - sage: p.row(0) + sage: p.row(index) ([1, 2, 3, 4], [1, 2, 3, 4]) - sage: p.row_bounds(0) + sage: p.row_bounds(index) (2, 2) """ return (self.row_lower_bound[index], self.row_upper_bound[index]) @@ -726,7 +742,6 @@ cdef class CVXPYBackend: """ return (self.col_lower_bound[index], self.col_upper_bound[index]) - cpdef bint is_variable_binary(self, int index): """ Test whether the given variable is of binary type. @@ -803,10 +818,8 @@ cdef class CVXPYBackend: sage: from sage.numerical.backends.generic_backend import get_solver sage: p = get_solver(solver="CVXPY") sage: p.row_name(0) - 'Empty constraint 1' + 'constraint_0' """ - #if self.row_name_var[index] is not None: - # return self.row_name_var[index] return "constraint_" + repr(index) cpdef col_name(self, int index): @@ -827,11 +840,9 @@ cdef class CVXPYBackend: sage: p.add_variable() 0 sage: p.col_name(0) - 'I am a variable' + 'var458' """ - #if self.col_name_var[index] is not None: - # return self.col_name_var[index] - return "x_" + repr(index) + return self.variables[index].name() cpdef variable_upper_bound(self, int index, value = False): """ From 260eed0324ce8878344478030ecaea0bd19fc3df Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 30 Jul 2022 13:56:59 -0700 Subject: [PATCH 027/249] build/pkgs/cylp/spkg-install.in: Use --no-build-isolation --- build/pkgs/cylp/spkg-install.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/pkgs/cylp/spkg-install.in b/build/pkgs/cylp/spkg-install.in index 26ae9ae59f7..e840732a8e5 100644 --- a/build/pkgs/cylp/spkg-install.in +++ b/build/pkgs/cylp/spkg-install.in @@ -1,5 +1,5 @@ cd src -#export CYLP_USE_CYTHON=1 # use pkg-config to discover coin installation unset COIN_INSTALL_DIR -sdh_pip_install . +# --no-build-isolation to ignore the numpy version pin in pyproject.toml +sdh_pip_install --no-build-isolation . From e6803330a690cd3afdf4872988be82825cecb06b Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 30 Jul 2022 14:12:11 -0700 Subject: [PATCH 028/249] src/sage/numerical/backends/cvxpy_backend.pyx: Store constraint names --- src/sage/numerical/backends/cvxpy_backend.pxd | 1 + src/sage/numerical/backends/cvxpy_backend.pyx | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/sage/numerical/backends/cvxpy_backend.pxd b/src/sage/numerical/backends/cvxpy_backend.pxd index c311f51b885..ed4d63ccc63 100644 --- a/src/sage/numerical/backends/cvxpy_backend.pxd +++ b/src/sage/numerical/backends/cvxpy_backend.pxd @@ -13,6 +13,7 @@ cdef class CVXPYBackend(GenericBackend): cdef object variables cdef object problem cdef object prob_name + cdef object constraint_names cdef object _cvxpy_solver cdef object _cvxpy_solver_args diff --git a/src/sage/numerical/backends/cvxpy_backend.pyx b/src/sage/numerical/backends/cvxpy_backend.pyx index 6069a0d5adc..6c54e070d9c 100644 --- a/src/sage/numerical/backends/cvxpy_backend.pyx +++ b/src/sage/numerical/backends/cvxpy_backend.pyx @@ -118,6 +118,7 @@ cdef class CVXPYBackend: self.set_verbosity(0) self.variables = [] + self.constraint_names = [] self.Matrix = [] self.row_lower_bound = [] self.row_upper_bound = [] @@ -151,6 +152,7 @@ cdef class CVXPYBackend: cdef CVXPYBackend cp = type(self)(base_ring=self.base_ring()) cp.problem = self.problem # it's considered immutable; so no need to copy. cp.variables = copy(self.variables) + cp.constraint_names = copy(self.constraint_names) cp.Matrix = [row[:] for row in self.Matrix] cp.row_lower_bound = self.row_lower_bound[:] cp.row_upper_bound = self.row_upper_bound[:] @@ -337,6 +339,7 @@ cdef class CVXPYBackend: constraints.append(lower_bound <= expr) elif upper_bound is not None: constraints.append(expr <= upper_bound) + self.constraint_names.append(name) self.problem = cvxpy.Problem(self.problem.objective, constraints) cpdef add_col(self, indices, coeffs): @@ -817,10 +820,11 @@ cdef class CVXPYBackend: sage: from sage.numerical.backends.generic_backend import get_solver sage: p = get_solver(solver="CVXPY") + sage: p.add_linear_constraint([], 2, 2) sage: p.row_name(0) 'constraint_0' """ - return "constraint_" + repr(index) + return self.constraint_names[index] or ("constraint_" + repr(index)) cpdef col_name(self, int index): """ @@ -840,7 +844,7 @@ cdef class CVXPYBackend: sage: p.add_variable() 0 sage: p.col_name(0) - 'var458' + 'var...' """ return self.variables[index].name() From 5c0291dd042a0f9d9b07000a41f387d1204b4fcb Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 30 Jul 2022 14:18:32 -0700 Subject: [PATCH 029/249] src/sage/numerical/backends/cvxpy_backend.pyx: Use our column names when no name is given --- src/sage/numerical/backends/cvxpy_backend.pyx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/sage/numerical/backends/cvxpy_backend.pyx b/src/sage/numerical/backends/cvxpy_backend.pyx index 6c54e070d9c..da63c7445a3 100644 --- a/src/sage/numerical/backends/cvxpy_backend.pyx +++ b/src/sage/numerical/backends/cvxpy_backend.pyx @@ -238,6 +238,9 @@ cdef class CVXPYBackend: obj = float(obj) self.objective_coefficients.append(obj) + if name is None: + name = f'x_{self.ncols()}' + if binary: variable = cvxpy.Variable(name=name, boolean=True) elif integer: @@ -844,7 +847,7 @@ cdef class CVXPYBackend: sage: p.add_variable() 0 sage: p.col_name(0) - 'var...' + 'x_0' """ return self.variables[index].name() From 2dd0c0679c032edc6db855105d2c34d19f992304 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 30 Jul 2022 14:21:27 -0700 Subject: [PATCH 030/249] src/sage/numerical/backends/cvxpy_backend.pyx: Convert lower, upper variable bounds to float --- src/sage/numerical/backends/cvxpy_backend.pyx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/sage/numerical/backends/cvxpy_backend.pyx b/src/sage/numerical/backends/cvxpy_backend.pyx index da63c7445a3..a43eaa56c05 100644 --- a/src/sage/numerical/backends/cvxpy_backend.pyx +++ b/src/sage/numerical/backends/cvxpy_backend.pyx @@ -230,7 +230,11 @@ cdef class CVXPYBackend: for i in range(len(self.Matrix)): self.Matrix[i].append(0.0) + if lower_bound is not None: + lower_bound = float(lower_bound) self.col_lower_bound.append(lower_bound) + if upper_bound is not None: + upper_bound = float(upper_bound) self.col_upper_bound.append(upper_bound) if obj is None: obj = 0.0 From 188a840c5c033af951804a8a462fa5617d490c80 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 30 Jul 2022 14:21:44 -0700 Subject: [PATCH 031/249] src/sage/combinat/matrices/dancing_links.pyx: Make doctest more flexible --- src/sage/combinat/matrices/dancing_links.pyx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sage/combinat/matrices/dancing_links.pyx b/src/sage/combinat/matrices/dancing_links.pyx index 9b5ee82aa81..c468c83231f 100644 --- a/src/sage/combinat/matrices/dancing_links.pyx +++ b/src/sage/combinat/matrices/dancing_links.pyx @@ -1030,7 +1030,7 @@ cdef class dancing_linksWrapper: sage: d = dlx_solver(rows) sage: p,x = d.to_milp() sage: p - Boolean Program (no objective, 4 variables, 4 constraints) + Boolean Program (no objective, 4 variables, ... constraints) sage: x MIPVariable with 4 binary components @@ -1041,7 +1041,7 @@ cdef class dancing_linksWrapper: Maximization: - Constraints: + Constraints:... one 1 in 0-th column: 1.0 <= x_0 + x_1 <= 1.0 one 1 in 1-th column: 1.0 <= x_0 + x_2 <= 1.0 one 1 in 2-th column: 1.0 <= x_0 + x_1 <= 1.0 From 55fc4fbbcbaf437977a87b55829c406c7a6ffd02 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Fri, 5 Aug 2022 15:04:04 -0700 Subject: [PATCH 032/249] build/pkgs/{cvxpy,scs,osqp_python,ecos_python,qdldl_python}: Add distros/conda.txt --- build/pkgs/cvxpy/distros/conda.txt | 1 + build/pkgs/ecos_python/distros/conda.txt | 1 + build/pkgs/osqp_python/distros/conda.txt | 1 + build/pkgs/qdldl_python/distros/conda.txt | 1 + build/pkgs/scs/distros/conda.txt | 1 + 5 files changed, 5 insertions(+) create mode 100644 build/pkgs/cvxpy/distros/conda.txt create mode 100644 build/pkgs/ecos_python/distros/conda.txt create mode 100644 build/pkgs/osqp_python/distros/conda.txt create mode 100644 build/pkgs/qdldl_python/distros/conda.txt create mode 100644 build/pkgs/scs/distros/conda.txt 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/ecos_python/distros/conda.txt b/build/pkgs/ecos_python/distros/conda.txt new file mode 100644 index 00000000000..d75c5988ca8 --- /dev/null +++ b/build/pkgs/ecos_python/distros/conda.txt @@ -0,0 +1 @@ +ecos diff --git a/build/pkgs/osqp_python/distros/conda.txt b/build/pkgs/osqp_python/distros/conda.txt new file mode 100644 index 00000000000..c2c8a965707 --- /dev/null +++ b/build/pkgs/osqp_python/distros/conda.txt @@ -0,0 +1 @@ +osqp diff --git a/build/pkgs/qdldl_python/distros/conda.txt b/build/pkgs/qdldl_python/distros/conda.txt new file mode 100644 index 00000000000..a540df83800 --- /dev/null +++ b/build/pkgs/qdldl_python/distros/conda.txt @@ -0,0 +1 @@ +qdldl-python diff --git a/build/pkgs/scs/distros/conda.txt b/build/pkgs/scs/distros/conda.txt new file mode 100644 index 00000000000..846d47b8e24 --- /dev/null +++ b/build/pkgs/scs/distros/conda.txt @@ -0,0 +1 @@ +scs From 18e7434763226568a693d0702924bd47ab7c8b60 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 6 Aug 2022 05:39:33 -0700 Subject: [PATCH 033/249] build/pkgs/osqp_python/dependencies: Add cmake --- build/pkgs/osqp_python/dependencies | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/pkgs/osqp_python/dependencies b/build/pkgs/osqp_python/dependencies index 138a24dc010..4f344bba626 100644 --- a/build/pkgs/osqp_python/dependencies +++ b/build/pkgs/osqp_python/dependencies @@ -1,4 +1,4 @@ -$(PYTHON) qdldl_python numpy scipy | $(PYTHON_TOOLCHAIN) +$(PYTHON) qdldl_python numpy scipy | $(PYTHON_TOOLCHAIN) cmake ---------- All lines of this file are ignored except the first. From 11e4de8d045ee27cfdb8439fe84f5a5de67d1fd9 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 6 Aug 2022 05:40:25 -0700 Subject: [PATCH 034/249] build/pkgs/ecos_python/dependencies: Remove suitesparse --- build/pkgs/ecos_python/dependencies | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/pkgs/ecos_python/dependencies b/build/pkgs/ecos_python/dependencies index ecda51b7d05..ecd3af7675b 100644 --- a/build/pkgs/ecos_python/dependencies +++ b/build/pkgs/ecos_python/dependencies @@ -1,4 +1,4 @@ -$(PYTHON) numpy scipy suitesparse | $(PYTHON_TOOLCHAIN) +$(PYTHON) numpy scipy | $(PYTHON_TOOLCHAIN) ---------- All lines of this file are ignored except the first. From 9a1eeec2c8cef1f1e7daf41e7b1f21aff92591e7 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 20 Sep 2022 12:42:33 -0700 Subject: [PATCH 035/249] build/pkgs/cylp/SPKG.rst: Add more detailed license info --- build/pkgs/cylp/SPKG.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/build/pkgs/cylp/SPKG.rst b/build/pkgs/cylp/SPKG.rst index 1bb0c61738d..f7906322538 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 ---------------- From b9c92aec7237099e0b31120cc06bb3335c4e523c Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 24 Sep 2022 15:42:01 -0700 Subject: [PATCH 036/249] src/sage/numerical/backends/cvxpy_backend.pyx: Add doc for init args --- src/sage/numerical/backends/cvxpy_backend.pyx | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/sage/numerical/backends/cvxpy_backend.pyx b/src/sage/numerical/backends/cvxpy_backend.pyx index a43eaa56c05..a628dd5e79f 100644 --- a/src/sage/numerical/backends/cvxpy_backend.pyx +++ b/src/sage/numerical/backends/cvxpy_backend.pyx @@ -93,6 +93,19 @@ cdef class CVXPYBackend: """ Cython constructor + INPUT: + + - ``maximization`` (boolean, default: ``True``) -- Whether this is a + maximization or minimization problem. + + - ``base_ring`` (optional): Must be ``RDF`` if provided. + + - ``cvxpy_solver (optional): Passed to :meth:`cvxpy.Problem.solve` as the + parameter ``solver``. + + - ``cvxpy_solver_args`` (optional dict): Passed to :meth:`cvxpy.Problem.solve` + as additional keyword arguments. + EXAMPLES:: sage: from sage.numerical.backends.generic_backend import get_solver From 5b840bddd970e89247a6f17625cdd59c959a2c69 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 24 Sep 2022 15:42:41 -0700 Subject: [PATCH 037/249] src/sage/numerical/backends: Remove unnecessary imports, muffle unused variable warnings --- src/sage/numerical/backends/cvxpy_backend.pyx | 3 +-- src/sage/numerical/backends/generic_backend.pyx | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/sage/numerical/backends/cvxpy_backend.pyx b/src/sage/numerical/backends/cvxpy_backend.pyx index a628dd5e79f..bf81ca6ae48 100644 --- a/src/sage/numerical/backends/cvxpy_backend.pyx +++ b/src/sage/numerical/backends/cvxpy_backend.pyx @@ -124,8 +124,7 @@ cdef class CVXPYBackend: if cvxpy_solver.startswith("SCIPY/"): cvxpy_solver_args['scipy_options'] = {"method": cvxpy_solver[len("SCIPY/"):]} cvxpy_solver = "SCIPY" - import cvxpy as cp - cvxpy_solver = getattr(cp, cvxpy_solver) + cvxpy_solver = getattr(cvxpy, cvxpy_solver) self._cvxpy_solver = cvxpy_solver self._cvxpy_solver_args = cvxpy_solver_args diff --git a/src/sage/numerical/backends/generic_backend.pyx b/src/sage/numerical/backends/generic_backend.pyx index d709402b150..1a2217857d5 100644 --- a/src/sage/numerical/backends/generic_backend.pyx +++ b/src/sage/numerical/backends/generic_backend.pyx @@ -1651,6 +1651,7 @@ def default_mip_solver(solver=None): except ImportError: raise ValueError("CVXPY is not available. Please refer to the documentation to install it.") else: + assert CVXPYBackend default_solver = solver elif solver.startswith("Cvxpy"): @@ -1821,7 +1822,6 @@ cpdef GenericBackend get_solver(constraint_generation = False, solver = None, ba elif solver.startswith("Cvxpy"): from sage.numerical.backends.cvxpy_backend import CVXPYBackend - from functools import partial if solver == "Cvxpy": return CVXPYBackend() if solver.startswith("Cvxpy/"): From 7132302e349532f02a7eb174114c3dcac5808250 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 24 Sep 2022 15:46:15 -0700 Subject: [PATCH 038/249] src/sage/numerical/backends: Fix copy-pasted typos in documentation (binary/continuous/integer) --- src/sage/numerical/backends/cvxpy_backend.pyx | 4 ++-- src/sage/numerical/backends/generic_backend.pyx | 4 ++-- src/sage/numerical/backends/glpk_backend.pyx | 4 ++-- src/sage/numerical/backends/interactivelp_backend.pyx | 4 ++-- src/sage/numerical/backends/ppl_backend.pyx | 8 ++++---- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/sage/numerical/backends/cvxpy_backend.pyx b/src/sage/numerical/backends/cvxpy_backend.pyx index bf81ca6ae48..81bdef121ff 100644 --- a/src/sage/numerical/backends/cvxpy_backend.pyx +++ b/src/sage/numerical/backends/cvxpy_backend.pyx @@ -199,9 +199,9 @@ cdef class CVXPYBackend: - ``binary`` - ``True`` if the variable is binary (default: ``False``). - - ``continuous`` - ``True`` if the variable is binary (default: ``True``). + - ``continuous`` - ``True`` if the variable is continuous (default: ``True``). - - ``integer`` - ``True`` if the variable is binary (default: ``False``). + - ``integer`` - ``True`` if the variable is integral (default: ``False``). - ``obj`` - (optional) coefficient of this variable in the objective function (default: 0) diff --git a/src/sage/numerical/backends/generic_backend.pyx b/src/sage/numerical/backends/generic_backend.pyx index 1a2217857d5..50b66bc8a7d 100644 --- a/src/sage/numerical/backends/generic_backend.pyx +++ b/src/sage/numerical/backends/generic_backend.pyx @@ -57,9 +57,9 @@ cdef class GenericBackend: - ``binary`` - ``True`` if the variable is binary (default: ``False``). - - ``continuous`` - ``True`` if the variable is binary (default: ``True``). + - ``continuous`` - ``True`` if the variable is continuous (default: ``True``). - - ``integer`` - ``True`` if the variable is binary (default: ``False``). + - ``integer`` - ``True`` if the variable is integral (default: ``False``). - ``obj`` - (optional) coefficient of this variable in the objective function (default: 0.0) diff --git a/src/sage/numerical/backends/glpk_backend.pyx b/src/sage/numerical/backends/glpk_backend.pyx index 58595389f3c..c42b1e95aa6 100644 --- a/src/sage/numerical/backends/glpk_backend.pyx +++ b/src/sage/numerical/backends/glpk_backend.pyx @@ -80,9 +80,9 @@ cdef class GLPKBackend(GenericBackend): - ``binary`` - ``True`` if the variable is binary (default: ``False``). - - ``continuous`` - ``True`` if the variable is binary (default: ``True``). + - ``continuous`` - ``True`` if the variable is continuous (default: ``True``). - - ``integer`` - ``True`` if the variable is binary (default: ``False``). + - ``integer`` - ``True`` if the variable is integral (default: ``False``). - ``obj`` - (optional) coefficient of this variable in the objective function (default: 0.0) diff --git a/src/sage/numerical/backends/interactivelp_backend.pyx b/src/sage/numerical/backends/interactivelp_backend.pyx index 89b823f2491..4a4e257596f 100644 --- a/src/sage/numerical/backends/interactivelp_backend.pyx +++ b/src/sage/numerical/backends/interactivelp_backend.pyx @@ -191,9 +191,9 @@ cdef class InteractiveLPBackend: - ``binary`` - ``True`` if the variable is binary (default: ``False``). - - ``continuous`` - ``True`` if the variable is binary (default: ``True``). + - ``continuous`` - ``True`` if the variable is continuous (default: ``True``). - - ``integer`` - ``True`` if the variable is binary (default: ``False``). + - ``integer`` - ``True`` if the variable is integral (default: ``False``). - ``obj`` - (optional) coefficient of this variable in the objective function (default: 0) diff --git a/src/sage/numerical/backends/ppl_backend.pyx b/src/sage/numerical/backends/ppl_backend.pyx index 9d59c226743..f4884fbe6b1 100644 --- a/src/sage/numerical/backends/ppl_backend.pyx +++ b/src/sage/numerical/backends/ppl_backend.pyx @@ -257,9 +257,9 @@ cdef class PPLBackend(GenericBackend): - ``binary`` -- ``True`` if the variable is binary (default: ``False``). - - ``continuous`` -- ``True`` if the variable is binary (default: ``True``). + - ``continuous`` -- ``True`` if the variable is continuous (default: ``True``). - - ``integer`` -- ``True`` if the variable is binary (default: ``False``). + - ``integer`` -- ``True`` if the variable is integral (default: ``False``). - ``obj`` -- (optional) coefficient of this variable in the objective function (default: 0) @@ -328,9 +328,9 @@ cdef class PPLBackend(GenericBackend): - ``binary`` -- ``True`` if the variable is binary (default: ``False``). - - ``continuous`` -- ``True`` if the variable is binary (default: ``True``). + - ``continuous`` -- ``True`` if the variable is continuous (default: ``True``). - - ``integer`` -- ``True`` if the variable is binary (default: ``False``). + - ``integer`` -- ``True`` if the variable is integral (default: ``False``). - ``obj`` -- (optional) coefficient of all variables in the objective function (default: 0) From b5cbc5acda3505f8aa31b53052d6b21391a35498 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 24 Sep 2022 16:27:08 -0700 Subject: [PATCH 039/249] src/sage/numerical/backends/cvxpy_backend.pyx: Add to doc --- src/sage/numerical/backends/cvxpy_backend.pyx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/sage/numerical/backends/cvxpy_backend.pyx b/src/sage/numerical/backends/cvxpy_backend.pyx index 81bdef121ff..ade10d3a941 100644 --- a/src/sage/numerical/backends/cvxpy_backend.pyx +++ b/src/sage/numerical/backends/cvxpy_backend.pyx @@ -290,6 +290,8 @@ cdef class CVXPYBackend: """ Set the log (verbosity) level + This is currently ignored. + INPUT: - ``level`` (integer) -- From 0 (no verbosity) to 3. From 83ce468ea3d852f4f3b1131c512d3380a82ab27b Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 24 Sep 2022 20:12:39 -0700 Subject: [PATCH 040/249] build/pkgs/scs/spkg-install.in: Use --no-build-isolation --- build/pkgs/scs/spkg-install.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build/pkgs/scs/spkg-install.in b/build/pkgs/scs/spkg-install.in index 37ac1a53437..a143d1eff96 100644 --- a/build/pkgs/scs/spkg-install.in +++ b/build/pkgs/scs/spkg-install.in @@ -1,2 +1,3 @@ cd src -sdh_pip_install . +# --no-build-isolation to ignore the numpy version pin in pyproject.toml +sdh_pip_install --no-build-isolation . From 539c9705baef065d773f8a5349096679e6248e48 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 24 Sep 2022 20:15:06 -0700 Subject: [PATCH 041/249] src/sage/numerical/backends/cvxpy_backend.pyx: Update doctest output for bounds methods --- src/sage/numerical/backends/cvxpy_backend.pyx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/sage/numerical/backends/cvxpy_backend.pyx b/src/sage/numerical/backends/cvxpy_backend.pyx index ade10d3a941..f3f9da82c93 100644 --- a/src/sage/numerical/backends/cvxpy_backend.pyx +++ b/src/sage/numerical/backends/cvxpy_backend.pyx @@ -759,10 +759,10 @@ cdef class CVXPYBackend: sage: p.add_variable() 0 sage: p.col_bounds(0) - (0, None) + (0.0, None) sage: p.variable_upper_bound(0, 5) sage: p.col_bounds(0) - (0, 5) + (0.0, 5) """ return (self.col_lower_bound[index], self.col_upper_bound[index]) @@ -888,13 +888,13 @@ cdef class CVXPYBackend: sage: p.add_variable() 0 sage: p.col_bounds(0) - (0, None) + (0.0, None) sage: p.variable_upper_bound(0, 5) sage: p.col_bounds(0) - (0, 5) + (0.0, 5) sage: p.variable_upper_bound(0, None) sage: p.col_bounds(0) - (0, None) + (0.0, None) """ if value is not False: self.col_upper_bound[index] = value @@ -920,7 +920,7 @@ cdef class CVXPYBackend: sage: p.add_variable() 0 sage: p.col_bounds(0) - (0, None) + (0.0, None) sage: p.variable_lower_bound(0, 5) sage: p.col_bounds(0) (5, None) From 9eed85bc95c28581493cf3632cd26f85ff5ac397 Mon Sep 17 00:00:00 2001 From: dcoudert Date: Sat, 15 Oct 2022 18:42:36 +0200 Subject: [PATCH 042/249] trac #32136: add iterator over full subgraphs --- src/sage/graphs/base/static_dense_graph.pyx | 225 ++++++++++++++++++++ 1 file changed, 225 insertions(+) diff --git a/src/sage/graphs/base/static_dense_graph.pyx b/src/sage/graphs/base/static_dense_graph.pyx index f14ebf789cc..98fd38c1118 100644 --- a/src/sage/graphs/base/static_dense_graph.pyx +++ b/src/sage/graphs/base/static_dense_graph.pyx @@ -49,6 +49,7 @@ Functions """ from sage.data_structures.binary_matrix cimport * from cysignals.signals cimport sig_on, sig_off, sig_check +from memory_allocator cimport MemoryAllocator cdef dict dense_graph_init(binary_matrix_t m, g, translation=None, force_undirected=False): @@ -378,6 +379,230 @@ def triangles_count(G): return ans +def connected_full_subgraphs(G, edges_only=False, labels=False): + r""" + Iterator over the connected subgraphs of `G` with same vertex set. + + This method implements a iterator over the connected subgraphs of the input + (di)graph with the same ground set of vertices. That is, it iterates over + every subgraph `H = (V_H, E_H)` of `G = (V, E)` such that `V_H = V`, + `E_H \subseteq E` and `H` is connected. Hence, this method may yield a huge + number of graphs. + + When the input (di)graph `D` is not connected, this method returns nothing. + + As for method :meth:`sage.graphs.generic_graph.connected_components`, edge + orientation is ignored. Hence, the directed graph with a single arc `0 \to + 1` is considered connected. + + INPUT: + + - ``G`` -- a :class:`Graph` or a :class:`DiGraph`; loops and multiple edges + are *not* allowed + + - ``edges_only`` -- boolean (default: ``False``); whether to return + (Di)Graph or list of vertices + + - ``labels`` -- boolean (default: ``False``); whether to return labeled + edges or not. This parameter is used only when ``edges_only`` is ``True``. + + .. NOTE:: + + Roughly, this method explores all possible subsets of neighbors of each + vertex, which represents a huge number of subsets. We have thus chosen + to limit the degree of the vertices of the graphs that can be + considered, even if the graph has a single connected subgraph (e.g., a + tree). This can certainly be improved using a decomposition into + biconnected components. + + EXAMPLES: + + The complete graph of order 3 has 4 connected subgraphs:: + + sage: from sage.graphs.base.static_dense_graph import connected_full_subgraphs + sage: G = graphs.CompleteGraph(3) + sage: len(list(connected_full_subgraphs(G))) + 4 + + A cycle of order 5 has 6 connected subgraphs:: + + sage: from sage.graphs.base.static_dense_graph import connected_full_subgraphs + sage: G = graphs.CycleGraph(5) + sage: len(list(connected_full_subgraphs(G))) + 6 + + The House graph has 18 connected subgraphs of order 5:: + + sage: from sage.graphs.base.static_dense_graph import connected_full_subgraphs + sage: G = graphs.HouseGraph() + sage: L = list(connected_full_subgraphs(G)) + sage: len(L) + 18 + sage: all(g.order() == 5 for g in L) + True + sage: all(g.is_connected() for g in L) + True + sage: F = frozenset(frozenset(g.edges(sort=False, labels=False)) for g in L) + sage: len(F) + 18 + + Asking for edges only:: + + sage: from sage.graphs.base.static_dense_graph import connected_full_subgraphs + sage: G = Graph([(0, 1, "01"), (0, 2, "02"), (1, 2, "12")]) + sage: it = connected_full_subgraphs(G, edges_only=True) + sage: next(it) + [(0, 1), (0, 2), (1, 2)] + sage: next(it) + [(0, 1), (0, 2)] + sage: it = connected_full_subgraphs(G, edges_only=True, labels=True) + sage: next(it) + [(0, 1, '01'), (0, 2, '02'), (1, 2, '12')] + sage: next(it) + [(0, 1, '01'), (0, 2, '02')] + + TESTS: + + Non connected input graph:: + + sage: from sage.graphs.base.static_dense_graph import connected_full_subgraphs + sage: list(connected_full_subgraphs(Graph(2))) + Traceback (most recent call last) + ... + ValueError: the input (di)graph is not connected + + Too large degree:: + + sage: from sage.graphs.base.static_dense_graph import connected_full_subgraphs + sage: G = graphs.StarGraph(100) + sage: list(connected_full_subgraphs(G)) + Traceback (most recent call last) + ... + ValueError: the degree of the graph is too large for this method + """ + G._scream_if_not_simple() + if not G.is_connected(): + raise ValueError("the input (di)graph is not connected") + + for d in G.degree(): + if d >= 8 * sizeof(unsigned long) - 1: + raise ValueError("the degree of the graph is too large for this method") + + cdef Py_ssize_t n = G.order() + if n <= 2: + if edges_only: + return list(G.edges(sort=False, labels=labels)) + else: + return G.copy() + + # We map vertices to integers. We sort them by degree as a heuristic to + # reduce the number of operations. + cdef list int_to_vertex = sorted(G, key=G.degree) + cdef binary_matrix_t DG + sig_on() + dense_graph_init(DG, G, translation=int_to_vertex, force_undirected=True) + + cdef MemoryAllocator mem = MemoryAllocator() + cdef int * order = mem.calloc(n, sizeof(int)) + cdef unsigned long * n_cpt = mem.calloc(n, sizeof(unsigned long)) + + # We use a several bitsets to store the current boundary and active neighbors. + # We also need another bitset that we create at the same time + cdef binary_matrix_t boundaries + binary_matrix_init(boundaries, n + 1, n) + cdef binary_matrix_t neighborhoods + binary_matrix_init(neighborhoods, n, n) + sig_off() + + cdef bitset_t active = boundaries.rows[n] # remaining vertices to consider + cdef bitset_t boundary # neighbors of the current subset + + # Initialize the process + cdef Py_ssize_t i = 0 + order[0] = 0 + bitset_complement(active, active) + bitset_discard(active, 0) + bitset_copy(neighborhoods.rows[0], DG.rows[0]) + n_cpt[0] = 1 << bitset_len(DG.rows[0]) + + cdef long u, v, j + cdef unsigned long c + cdef list E = [] + cdef list edges + + while i >= 0: + sig_check() + if i == n - 1: + # yield the current solution + edges = [(int_to_vertex[u], int_to_vertex[v]) for le in E for u, v in le] + if edges_only: + if labels: + yield [(u, v, G.edge_label(u, v)) for u, v in edges] + else: + yield edges + else: + yield G.subgraph(vertices=int_to_vertex, edges=edges) + + if n_cpt[i] > 1: + # Consider the next neighborhood of the current vertex. + # If vertex u has k active neighbors, we have 2^k possibilities. We + # use the binary representation of n_cpt[i] to indicate which of the + # k neighbors are selected. We omit the empty neighborhood which is + # considered else where. + boundary = boundaries.rows[i + 1] + bitset_copy(boundary, boundaries.rows[i]) + n_cpt[i] -= 1 + c = n_cpt[i] + edges = [] + j = bitset_first(neighborhoods.rows[i]) + while c and j != -1: + if c & 1: + bitset_add(boundary, j) + edges.append((order[i], j)) + c >>= 1 + j = bitset_next(neighborhoods.rows[i], j + 1) + + if not bitset_len(boundary): + # We cannot extend + print("cannot extend") + continue + E.append(edges) + # otherwise, we select a vertex from the boundary and extend the order + + elif bitset_len(boundaries.rows[i]): + # We prepare the boundary for the selection of the next vertex. + # This is equivalalnt to consider an empty neighborhood. + bitset_copy(boundaries.rows[i + 1], boundaries.rows[i]) + bitset_clear(boundaries.rows[i]) # to prevent doing twice this operation + E.append([]) + + else: + # We have considered all possible extensions + bitset_add(active, order[i]) + i -= 1 + if E: + E.pop() + continue + + # We select a vertex from the boundary to add to the order + i += 1 + boundary = boundaries.rows[i] + u = bitset_first(boundary) + order[i] = u + bitset_discard(boundary, u) + bitset_discard(active, u) + # prepare neighborhood of u + bitset_and(neighborhoods.rows[i], active, DG.rows[u]) + j = bitset_len(neighborhoods.rows[i]) + n_cpt[i] = bool(j) << j # 0 if not j else 2^j + + sig_on() + binary_matrix_free(boundaries) + binary_matrix_free(neighborhoods) + binary_matrix_free(DG) + sig_off() + + def connected_subgraph_iterator(G, k=None, bint vertices_only=False): r""" Iterator over the induced connected subgraphs of order at most `k`. From f6136613085e0c9a8b74a9c3c4c8a4b44a87c3b7 Mon Sep 17 00:00:00 2001 From: dcoudert Date: Sat, 15 Oct 2022 19:33:04 +0200 Subject: [PATCH 043/249] trac #32136: extend method connected_subgraph_iterator to non-induced subgraphs --- src/sage/graphs/base/static_dense_graph.pyx | 66 +++++++++++++++++---- 1 file changed, 54 insertions(+), 12 deletions(-) diff --git a/src/sage/graphs/base/static_dense_graph.pyx b/src/sage/graphs/base/static_dense_graph.pyx index 98fd38c1118..dbb0dfdc06f 100644 --- a/src/sage/graphs/base/static_dense_graph.pyx +++ b/src/sage/graphs/base/static_dense_graph.pyx @@ -403,7 +403,7 @@ def connected_full_subgraphs(G, edges_only=False, labels=False): - ``edges_only`` -- boolean (default: ``False``); whether to return (Di)Graph or list of vertices - - ``labels`` -- boolean (default: ``False``); whether to return labeled + - ``labels`` -- boolean (default: ``False``); whether to return labelled edges or not. This parameter is used only when ``edges_only`` is ``True``. .. NOTE:: @@ -491,9 +491,10 @@ def connected_full_subgraphs(G, edges_only=False, labels=False): cdef Py_ssize_t n = G.order() if n <= 2: if edges_only: - return list(G.edges(sort=False, labels=labels)) + yield list(G.edges(sort=False, labels=labels)) else: - return G.copy() + yield G.copy() + return # We map vertices to integers. We sort them by degree as a heuristic to # reduce the number of operations. @@ -564,8 +565,8 @@ def connected_full_subgraphs(G, edges_only=False, labels=False): if not bitset_len(boundary): # We cannot extend - print("cannot extend") continue + E.append(edges) # otherwise, we select a vertex from the boundary and extend the order @@ -603,7 +604,8 @@ def connected_full_subgraphs(G, edges_only=False, labels=False): sig_off() -def connected_subgraph_iterator(G, k=None, bint vertices_only=False): +def connected_subgraph_iterator(G, k=None, bint vertices_only=False, + edges_only=False, labels=False, induced=True): r""" Iterator over the induced connected subgraphs of order at most `k`. @@ -626,7 +628,20 @@ def connected_subgraph_iterator(G, k=None, bint vertices_only=False): (equivalent to ``k == n``) - ``vertices_only`` -- boolean (default: ``False``); whether to return - (Di)Graph or list of vertices + (Di)Graph or list of vertices. This parameter is ignored when ``induced`` + is ``True``. + + - ``edges_only`` -- boolean (default: ``False``); whether to + return (Di)Graph or list of edges. When ``vertices_only`` is + ``True``, this parameter is ignored. + + - ``labels`` -- boolean (default: ``False``); whether to return labelled + edges or not. This parameter is used only when ``vertices_only`` is + ``False`` and ``edges_only`` is ``True``. + + - ``induced`` -- boolean (default: ``True``); whether to return induced + connected sub(di)graph only or also non-induced sub(di)graphs. + This parameter can be set to ``False`` for simple (di)graphs only. EXAMPLES:: @@ -667,6 +682,15 @@ def connected_subgraph_iterator(G, k=None, bint vertices_only=False): sage: list(G.connected_subgraph_iterator(vertices_only=True)) [[1], [1, 2], [2]] + sage: G = graphs.CompleteGraph(3) + sage: len(list(G.connected_subgraph_iterator())) + 7 + sage: len(list(G.connected_subgraph_iterator(vertices_only=True))) + 7 + sage: len(list(G.connected_subgraph_iterator(edges_only=True))) + 7 + sage: len(list(G.connected_subgraph_iterator(induced=False))) + TESTS: The Path Graph of order `n` has `n (n + 1) / 2` connected subgraphs:: @@ -707,6 +731,10 @@ def connected_subgraph_iterator(G, k=None, bint vertices_only=False): sage: len(list(G.connected_subgraph_iterator(vertices_only=True))) 3 """ + if not induced: + G._scream_if_not_simple() + vertices_only = False + cdef Py_ssize_t mk = G.order() if k is None else k cdef Py_ssize_t n = G.order() if not n or mk < 1: @@ -733,6 +761,7 @@ def connected_subgraph_iterator(G, k=None, bint vertices_only=False): cdef Py_ssize_t level cdef Py_ssize_t u, v, a + cdef list vertices # We first generate subsets containing vertex 0, then the subsets containing # vertex 1 but not vertex 0 since we have already generated all subsets @@ -740,10 +769,15 @@ def connected_subgraph_iterator(G, k=None, bint vertices_only=False): for u in range(n): sig_check() + vertices = [int_to_vertex[u]] if vertices_only: - yield [int_to_vertex[u]] + yield vertices else: - yield G.subgraph([int_to_vertex[u]]) + H = G.subgraph(vertices) + if edges_only: + yield H.edges(sort=False, labels=labels) + else: + yield H # We initialize the loop with vertices u in current, {u+1, ..., n-1} # in left, and N(u) in boundary @@ -783,12 +817,20 @@ def connected_subgraph_iterator(G, k=None, bint vertices_only=False): bitset_union(stack.rows[level + 2], boundary, DG.rows[v]) # We yield that new subset + vertices = [int_to_vertex[a] for a in range(u, n) + if bitset_in(stack.rows[level], a)] if vertices_only: - yield [int_to_vertex[a] for a in range(u, n) - if bitset_in(stack.rows[level], a)] + yield vertices else: - yield G.subgraph([int_to_vertex[a] for a in range(u, n) - if bitset_in(stack.rows[level], a)]) + H = G.subgraph(vertices) + if induced: + if edges_only: + yield H.edges(sort=False, labels=labels) + else: + yield H + else: + yield from connected_full_subgraphs(H, edges_only=edges_only, + labels=labels) else: # We cannot extend the current subset, either due to a lack of From 78d9d93f8cd2d70bb0328980b9895d14cda52fb7 Mon Sep 17 00:00:00 2001 From: dcoudert Date: Sat, 15 Oct 2022 19:59:28 +0200 Subject: [PATCH 044/249] trac #32136: fix doctests --- src/sage/graphs/base/static_dense_graph.pyx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/sage/graphs/base/static_dense_graph.pyx b/src/sage/graphs/base/static_dense_graph.pyx index dbb0dfdc06f..a953a2b7a5e 100644 --- a/src/sage/graphs/base/static_dense_graph.pyx +++ b/src/sage/graphs/base/static_dense_graph.pyx @@ -467,7 +467,7 @@ def connected_full_subgraphs(G, edges_only=False, labels=False): sage: from sage.graphs.base.static_dense_graph import connected_full_subgraphs sage: list(connected_full_subgraphs(Graph(2))) - Traceback (most recent call last) + Traceback (most recent call last): ... ValueError: the input (di)graph is not connected @@ -476,7 +476,7 @@ def connected_full_subgraphs(G, edges_only=False, labels=False): sage: from sage.graphs.base.static_dense_graph import connected_full_subgraphs sage: G = graphs.StarGraph(100) sage: list(connected_full_subgraphs(G)) - Traceback (most recent call last) + Traceback (most recent call last): ... ValueError: the degree of the graph is too large for this method """ @@ -690,6 +690,7 @@ def connected_subgraph_iterator(G, k=None, bint vertices_only=False, sage: len(list(G.connected_subgraph_iterator(edges_only=True))) 7 sage: len(list(G.connected_subgraph_iterator(induced=False))) + 10 TESTS: From 9c3e732c201e7ab5a767f732a42ad034042583c4 Mon Sep 17 00:00:00 2001 From: dcoudert Date: Sun, 16 Oct 2022 15:05:05 +0200 Subject: [PATCH 045/249] trac #32136: fix typos --- src/sage/graphs/base/static_dense_graph.pyx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sage/graphs/base/static_dense_graph.pyx b/src/sage/graphs/base/static_dense_graph.pyx index a953a2b7a5e..feee4df958e 100644 --- a/src/sage/graphs/base/static_dense_graph.pyx +++ b/src/sage/graphs/base/static_dense_graph.pyx @@ -389,7 +389,7 @@ def connected_full_subgraphs(G, edges_only=False, labels=False): `E_H \subseteq E` and `H` is connected. Hence, this method may yield a huge number of graphs. - When the input (di)graph `D` is not connected, this method returns nothing. + When the input (di)graph `G` is not connected, this method returns nothing. As for method :meth:`sage.graphs.generic_graph.connected_components`, edge orientation is ignored. Hence, the directed graph with a single arc `0 \to @@ -572,7 +572,7 @@ def connected_full_subgraphs(G, edges_only=False, labels=False): elif bitset_len(boundaries.rows[i]): # We prepare the boundary for the selection of the next vertex. - # This is equivalalnt to consider an empty neighborhood. + # This is equivalant to consider an empty neighborhood. bitset_copy(boundaries.rows[i + 1], boundaries.rows[i]) bitset_clear(boundaries.rows[i]) # to prevent doing twice this operation E.append([]) From 720368f24ab533c3d00903980528039ed0cb888c Mon Sep 17 00:00:00 2001 From: dcoudert Date: Fri, 28 Oct 2022 10:18:59 +0200 Subject: [PATCH 046/249] trac #32136: add bounds on the number of edges --- src/sage/graphs/base/static_dense_graph.pyx | 64 ++++++++++++++++++--- 1 file changed, 57 insertions(+), 7 deletions(-) diff --git a/src/sage/graphs/base/static_dense_graph.pyx b/src/sage/graphs/base/static_dense_graph.pyx index feee4df958e..c300740d906 100644 --- a/src/sage/graphs/base/static_dense_graph.pyx +++ b/src/sage/graphs/base/static_dense_graph.pyx @@ -379,7 +379,8 @@ def triangles_count(G): return ans -def connected_full_subgraphs(G, edges_only=False, labels=False): +def connected_full_subgraphs(G, edges_only=False, labels=False, + min_edges=None, max_edges=None): r""" Iterator over the connected subgraphs of `G` with same vertex set. @@ -406,6 +407,14 @@ def connected_full_subgraphs(G, edges_only=False, labels=False): - ``labels`` -- boolean (default: ``False``); whether to return labelled edges or not. This parameter is used only when ``edges_only`` is ``True``. + - ``min_edges`` -- integer (default: ``None``); minimum number of edges of + reported subgraphs. By default (``None``), this lower bound will be set to + `n - 1`. + + - ``max_edges`` -- integer (default: ``None``); maximum number of edges of + reported subgraphs. By default (``None``), this lower bound will be set to + the number of edges of the input (di)graph. + .. NOTE:: Roughly, this method explores all possible subsets of neighbors of each @@ -446,6 +455,19 @@ def connected_full_subgraphs(G, edges_only=False, labels=False): sage: len(F) 18 + Specifying bounds on the number of edges:: + + sage: from sage.graphs.base.static_dense_graph import connected_full_subgraphs + sage: G = graphs.HouseGraph() + sage: [g.size() for g in connected_full_subgraphs(G)] + [6, 5, 5, 5, 4, 4, 5, 4, 4, 4, 5, 4, 4, 4, 5, 4, 4, 4] + sage: [g.size() for g in connected_full_subgraphs(G, max_edges=4)] + [4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4] + sage: [g.size() for g in connected_full_subgraphs(G, min_edges=6)] + [6] + sage: [g.size() for g in connected_full_subgraphs(G, min_edges=5, max_edges=5)] + [5, 5, 5, 5, 5, 5] + Asking for edges only:: sage: from sage.graphs.base.static_dense_graph import connected_full_subgraphs @@ -479,6 +501,19 @@ def connected_full_subgraphs(G, edges_only=False, labels=False): Traceback (most recent call last): ... ValueError: the degree of the graph is too large for this method + + Wrong bounds on the number of edges:: + + sage: from sage.graphs.base.static_dense_graph import connected_full_subgraphs + sage: G = graphs.HouseGraph() + sage: [g.size() for g in connected_full_subgraphs(G, min_edges=G.size() + 1)] + Traceback (most recent call last): + ... + ValueError: we must have 4 <= min_edges <= max_edges <= 6 + sage: [g.size() for g in connected_full_subgraphs(G, max_edges=G.order() - 2)] + Traceback (most recent call last): + ... + ValueError: we must have 4 <= min_edges <= max_edges <= 6 """ G._scream_if_not_simple() if not G.is_connected(): @@ -489,7 +524,15 @@ def connected_full_subgraphs(G, edges_only=False, labels=False): raise ValueError("the degree of the graph is too large for this method") cdef Py_ssize_t n = G.order() - if n <= 2: + cdef Py_ssize_t m = G.size() + if min_edges is None or min_edges < n - 1: + min_edges = n - 1 + if max_edges is None or max_edges > m: + max_edges = m + if min_edges > max_edges: + raise ValueError("we must have {} <= min_edges <= max_edges <= {}".format(n -1, m)) + + if n <= 2 or min_edges == m: if edges_only: yield list(G.edges(sort=False, labels=labels)) else: @@ -505,7 +548,7 @@ def connected_full_subgraphs(G, edges_only=False, labels=False): cdef MemoryAllocator mem = MemoryAllocator() cdef int * order = mem.calloc(n, sizeof(int)) - cdef unsigned long * n_cpt = mem.calloc(n, sizeof(unsigned long)) + cdef mp_bitcnt_t * n_cpt = mem.calloc(n, sizeof(mp_bitcnt_t)) # We use a several bitsets to store the current boundary and active neighbors. # We also need another bitset that we create at the same time @@ -527,13 +570,14 @@ def connected_full_subgraphs(G, edges_only=False, labels=False): n_cpt[0] = 1 << bitset_len(DG.rows[0]) cdef long u, v, j - cdef unsigned long c + cdef mp_bitcnt_t c + cdef Py_ssize_t num_edges = 0 cdef list E = [] cdef list edges while i >= 0: sig_check() - if i == n - 1: + if i == n - 1 and num_edges >= min_edges: # yield the current solution edges = [(int_to_vertex[u], int_to_vertex[v]) for le in E for u, v in le] if edges_only: @@ -550,10 +594,14 @@ def connected_full_subgraphs(G, edges_only=False, labels=False): # use the binary representation of n_cpt[i] to indicate which of the # k neighbors are selected. We omit the empty neighborhood which is # considered else where. - boundary = boundaries.rows[i + 1] - bitset_copy(boundary, boundaries.rows[i]) n_cpt[i] -= 1 c = n_cpt[i] + if num_edges + _bitset_len(&c, 1) > max_edges: + # Too many edges + continue + + boundary = boundaries.rows[i + 1] + bitset_copy(boundary, boundaries.rows[i]) edges = [] j = bitset_first(neighborhoods.rows[i]) while c and j != -1: @@ -568,6 +616,7 @@ def connected_full_subgraphs(G, edges_only=False, labels=False): continue E.append(edges) + num_edges += len(edges) # otherwise, we select a vertex from the boundary and extend the order elif bitset_len(boundaries.rows[i]): @@ -582,6 +631,7 @@ def connected_full_subgraphs(G, edges_only=False, labels=False): bitset_add(active, order[i]) i -= 1 if E: + num_edges -= len(E[-1]) E.pop() continue From e87054681e1aa4a2d72f5027ffdb031abb5b0535 Mon Sep 17 00:00:00 2001 From: dcoudert Date: Fri, 28 Oct 2022 12:42:35 +0200 Subject: [PATCH 047/249] trac #32136: fix result for digraphs --- src/sage/graphs/base/static_dense_graph.pyx | 104 ++++++++++++++++++-- 1 file changed, 96 insertions(+), 8 deletions(-) diff --git a/src/sage/graphs/base/static_dense_graph.pyx b/src/sage/graphs/base/static_dense_graph.pyx index c300740d906..fb211d5337f 100644 --- a/src/sage/graphs/base/static_dense_graph.pyx +++ b/src/sage/graphs/base/static_dense_graph.pyx @@ -50,7 +50,7 @@ Functions from sage.data_structures.binary_matrix cimport * from cysignals.signals cimport sig_on, sig_off, sig_check from memory_allocator cimport MemoryAllocator - +from itertools import product cdef dict dense_graph_init(binary_matrix_t m, g, translation=None, force_undirected=False): r""" @@ -379,6 +379,90 @@ def triangles_count(G): return ans +def _format_result(G, edges, edges_only, labels): + r""" + Helper method for ``connected_full_subgraphs`` to return a result. + + INPUT: + + - ``G`` -- a :class:`DiGraph` + + - ``edges`` -- list of edges ignoring the orientation + + - ``edges_only`` -- boolean; whether to return DiGraph or list of vertices + + - ``labels`` -- boolean; whether to return labelled edges or not. This + parameter is used only when ``edges_only`` is ``True``. + + EXAMPLES: + + The complete graph of order 3 has 4 connected subgraphs:: + + sage: from sage.graphs.base.static_dense_graph import connected_full_subgraphs + sage: G = graphs.CompleteGraph(3) + sage: len(list(connected_full_subgraphs(G))) + 4 + """ + if edges_only: + if labels: + return [(u, v, G.edge_label(u, v)) for u, v in edges] + else: + return edges + else: + return G.subgraph(vertices=G, edges=edges) + + +def _yield_results_for_digraph(G, edges, edges_only, labels, min_edges, max_edges): + r""" + Helper method for ``connected_full_subgraphs`` to yield all subdigraphs. + + INPUT: + + - ``G`` -- a :class:`DiGraph` + + - ``edges`` -- list of edges ignoring the orientation + + - ``edges_only`` -- boolean; whether to return DiGraph or list of vertices + + - ``labels`` -- boolean; whether to return labelled edges or not. This + parameter is used only when ``edges_only`` is ``True``. + + - ``min_edges`` -- integer; minimum number of edges of reported subgraphs + + - ``max_edges`` -- integer; maximum number of edges of reported subgraphs + + EXAMPLES:: + + sage: from sage.graphs.base.static_dense_graph import connected_full_subgraphs + sage: G = digraphs.Complete(3) + sage: len(list(connected_full_subgraphs(G))) + 54 + """ + if not edges: + return + L = [] + for u, v in edges: + tmp = [] + if G.has_edge(u, v): + tmp.append([(u, v)]) + if G.has_edge(v, u): + tmp.append([(v, u)]) + if G.has_edge(u, v): + tmp.append([(u, v), (v, u)]) + L.append(tmp) + + if len(L) == 1: + for F in L[0]: + if min_edges <= len(F) and len(F) <= max_edges: + yield _format_result(G, F, edges_only, labels) + else: + for E in product(*L): + F = [e for le in E for e in le] + if min_edges <= len(F) and len(F) <= max_edges: + yield _format_result(G, F, edges_only, labels) + return + + def connected_full_subgraphs(G, edges_only=False, labels=False, min_edges=None, max_edges=None): r""" @@ -483,6 +567,13 @@ def connected_full_subgraphs(G, edges_only=False, labels=False, sage: next(it) [(0, 1, '01'), (0, 2, '02')] + Subgraphs of a digraph:: + + sage: from sage.graphs.base.static_dense_graph import connected_full_subgraphs + sage: G = digraphs.Complete(2) + sage: list(connected_full_subgraphs(G, edges_only=True)) + [[(0, 1)], [(1, 0)], [(0, 1), (1, 0)]] + TESTS: Non connected input graph:: @@ -532,7 +623,7 @@ def connected_full_subgraphs(G, edges_only=False, labels=False, if min_edges > max_edges: raise ValueError("we must have {} <= min_edges <= max_edges <= {}".format(n -1, m)) - if n <= 2 or min_edges == m: + if n <= 1 or (not G.is_directed() and n == 2) or min_edges == m: if edges_only: yield list(G.edges(sort=False, labels=labels)) else: @@ -580,13 +671,10 @@ def connected_full_subgraphs(G, edges_only=False, labels=False, if i == n - 1 and num_edges >= min_edges: # yield the current solution edges = [(int_to_vertex[u], int_to_vertex[v]) for le in E for u, v in le] - if edges_only: - if labels: - yield [(u, v, G.edge_label(u, v)) for u, v in edges] - else: - yield edges + if G.is_directed(): + yield from _yield_results_for_digraph(G, edges, edges_only, labels, min_edges, max_edges) else: - yield G.subgraph(vertices=int_to_vertex, edges=edges) + yield _format_result(G, edges, edges_only, labels) if n_cpt[i] > 1: # Consider the next neighborhood of the current vertex. From e49602d2a4cf2bf2eda0dbeff47ba787aeed8156 Mon Sep 17 00:00:00 2001 From: Bruno-TT Date: Mon, 31 Oct 2022 17:58:21 +0000 Subject: [PATCH 048/249] forgot to actually put something in the commit lol --- src/sage/graphs/bipartite_graph.py | 35 +++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/src/sage/graphs/bipartite_graph.py b/src/sage/graphs/bipartite_graph.py index 1040419c32e..fc0626a44d9 100644 --- a/src/sage/graphs/bipartite_graph.py +++ b/src/sage/graphs/bipartite_graph.py @@ -94,6 +94,10 @@ class BipartiteGraph(Graph): - ``weighted`` -- boolean (default: ``None``); whether graph thinks of itself as weighted or not. See ``self.weighted()`` + - ``hash_labels`` - boolean (default: ``None``); whether to include labels + / weights during hashing. Will raise a warning when __hash__ is invoked + and default to true. + .. NOTE:: All remaining arguments are passed to the ``Graph`` constructor @@ -345,7 +349,7 @@ class BipartiteGraph(Graph): """ - def __init__(self, data=None, partition=None, check=True, *args, **kwds): + def __init__(self, data=None, partition=None, check=True, hash_labels=None, *args, **kwds): """ Create a bipartite graph. @@ -407,6 +411,9 @@ def __init__(self, data=None, partition=None, check=True, *args, **kwds): self.add_edges = MethodType(Graph.add_edges, self) alist_file = True + # if None, then will default to true after the user is warned + self.hash_labels=hash_labels + from sage.structure.element import is_Matrix if isinstance(data, BipartiteGraph): Graph.__init__(self, data, *args, **kwds) @@ -544,6 +551,32 @@ def __init__(self, data=None, partition=None, check=True, *args, **kwds): return + # check whether the user has specified hash_labels parameter, and warn if not + # then default it to true + def _use_hash_labels(self): + if self.hash_labels is not None: + return self.hash_labels + else: + print("WARNING: hash_labels not set in graph constructor.\nIncluding edge labels in hash calculation if present.\nPass parameter hash_labels to BipartiteGraph constructor to stop this warning.") + self.hash_labels=True + + + def __hash__(self): + + left=tuple(sorted(list(self.left))) + right=tuple(sorted(list(self.right))) + + data_to_hash=[left, right] + + # warning logic to determine whether to use labels in hash + use_labels=self._use_hash_labels() + tuple_depth = 3 if use_labels else 2 + + for edge in self.edges(sort=True): + data_to_hash.append(edge[:tuple_depth]) + + return hash(tuple(data_to_hash)) + def _upgrade_from_graph(self): """ Set the left and right sets of vertices from the input graph. From 13f7f552f0e66cce119404781e23d0a872ae9c7f Mon Sep 17 00:00:00 2001 From: Bruno-TT Date: Tue, 1 Nov 2022 16:02:28 +0000 Subject: [PATCH 049/249] tweaks --- src/sage/graphs/bipartite_graph.py | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/src/sage/graphs/bipartite_graph.py b/src/sage/graphs/bipartite_graph.py index fc0626a44d9..4de0423db30 100644 --- a/src/sage/graphs/bipartite_graph.py +++ b/src/sage/graphs/bipartite_graph.py @@ -94,7 +94,7 @@ class BipartiteGraph(Graph): - ``weighted`` -- boolean (default: ``None``); whether graph thinks of itself as weighted or not. See ``self.weighted()`` - - ``hash_labels`` - boolean (default: ``None``); whether to include labels + - ``hash_labels`` - boolean (default: ``False``); whether to include labels / weights during hashing. Will raise a warning when __hash__ is invoked and default to true. @@ -349,7 +349,7 @@ class BipartiteGraph(Graph): """ - def __init__(self, data=None, partition=None, check=True, hash_labels=None, *args, **kwds): + def __init__(self, data=None, partition=None, check=True, hash_labels=False, *args, **kwds): """ Create a bipartite graph. @@ -411,7 +411,6 @@ def __init__(self, data=None, partition=None, check=True, hash_labels=None, *arg self.add_edges = MethodType(Graph.add_edges, self) alist_file = True - # if None, then will default to true after the user is warned self.hash_labels=hash_labels from sage.structure.element import is_Matrix @@ -551,24 +550,19 @@ def __init__(self, data=None, partition=None, check=True, hash_labels=None, *arg return - # check whether the user has specified hash_labels parameter, and warn if not - # then default it to true + # true if specified by user, or if graph is weighted def _use_hash_labels(self): - if self.hash_labels is not None: - return self.hash_labels - else: - print("WARNING: hash_labels not set in graph constructor.\nIncluding edge labels in hash calculation if present.\nPass parameter hash_labels to BipartiteGraph constructor to stop this warning.") - self.hash_labels=True + return self.weighted() or self.hash_labels def __hash__(self): - left=tuple(sorted(list(self.left))) - right=tuple(sorted(list(self.right))) + left=frozenset(self.left) + right=frozenset(self.right) data_to_hash=[left, right] - # warning logic to determine whether to use labels in hash + # determine whether to hash labels use_labels=self._use_hash_labels() tuple_depth = 3 if use_labels else 2 From 33206afda26e6e74bbf434eeaceef31be65ed014 Mon Sep 17 00:00:00 2001 From: Bruno-TT Date: Tue, 1 Nov 2022 16:02:56 +0000 Subject: [PATCH 050/249] pep8 formatting --- src/sage/graphs/bipartite_graph.py | 96 +++++++++++++++++++----------- 1 file changed, 61 insertions(+), 35 deletions(-) diff --git a/src/sage/graphs/bipartite_graph.py b/src/sage/graphs/bipartite_graph.py index 4de0423db30..ccce4d5cdbd 100644 --- a/src/sage/graphs/bipartite_graph.py +++ b/src/sage/graphs/bipartite_graph.py @@ -411,7 +411,7 @@ def __init__(self, data=None, partition=None, check=True, hash_labels=False, *ar self.add_edges = MethodType(Graph.add_edges, self) alist_file = True - self.hash_labels=hash_labels + self.hash_labels = hash_labels from sage.structure.element import is_Matrix if isinstance(data, BipartiteGraph): @@ -421,7 +421,8 @@ def __init__(self, data=None, partition=None, check=True, hash_labels=False, *ar elif isinstance(data, str): import os alist_file = os.path.exists(data) - Graph.__init__(self, data=None if alist_file else data, *args, **kwds) + Graph.__init__( + self, data=None if alist_file else data, *args, **kwds) # methods; initialize left and right attributes self.left = set() @@ -436,7 +437,8 @@ def __init__(self, data=None, partition=None, check=True, hash_labels=False, *ar if left & right: raise ValueError("the parts are not disjoint") if len(left) + len(right) != self.num_verts(): - raise ValueError("not all vertices appear in partition") + raise ValueError( + "not all vertices appear in partition") if check: if (any(left.intersection(self.neighbor_iterator(a)) for a in left) or @@ -445,11 +447,13 @@ def __init__(self, data=None, partition=None, check=True, hash_labels=False, *ar "respect to the given partition") else: for a in left: - a_nbrs = left.intersection(self.neighbor_iterator(a)) + a_nbrs = left.intersection( + self.neighbor_iterator(a)) if a_nbrs: self.delete_edges((a, b) for b in a_nbrs) for a in right: - a_nbrs = right.intersection(self.neighbor_iterator(a)) + a_nbrs = right.intersection( + self.neighbor_iterator(a)) if a_nbrs: self.delete_edges((a, b) for b in a_nbrs) self.left, self.right = left, right @@ -554,22 +558,21 @@ def __init__(self, data=None, partition=None, check=True, hash_labels=False, *ar def _use_hash_labels(self): return self.weighted() or self.hash_labels - def __hash__(self): - - left=frozenset(self.left) - right=frozenset(self.right) - data_to_hash=[left, right] + left = frozenset(self.left) + right = frozenset(self.right) + + data_to_hash = [left, right] # determine whether to hash labels - use_labels=self._use_hash_labels() + use_labels = self._use_hash_labels() tuple_depth = 3 if use_labels else 2 for edge in self.edges(sort=True): data_to_hash.append(edge[:tuple_depth]) - return hash(tuple(data_to_hash)) + return hash(tuple(data_to_hash)) def _upgrade_from_graph(self): """ @@ -700,7 +703,8 @@ def add_vertex(self, name=None, left=False, right=False): (right and name in self.right)): return else: - raise RuntimeError("cannot add duplicate vertex to other partition") + raise RuntimeError( + "cannot add duplicate vertex to other partition") # add the vertex retval = Graph.add_vertex(self, name) @@ -799,7 +803,8 @@ def add_vertices(self, vertices, left=False, right=False): if ((new_left & self.right) or (new_right & self.left) or (new_right & new_left)): - raise RuntimeError("cannot add duplicate vertex to other partition") + raise RuntimeError( + "cannot add duplicate vertex to other partition") # add vertices Graph.add_vertices(self, vertices) @@ -915,7 +920,8 @@ def delete_vertices(self, vertices): elif vertex in self.right: self.right.remove(vertex) else: - raise RuntimeError("vertex (%s) not found in partitions" % vertex) + raise RuntimeError( + "vertex (%s) not found in partitions" % vertex) def add_edge(self, u, v=None, label=None): r""" @@ -975,11 +981,13 @@ def add_edge(self, u, v=None, label=None): # check for endpoints in different partitions if self.left.issuperset((u, v)) or self.right.issuperset((u, v)): - raise RuntimeError("edge vertices must lie in different partitions") + raise RuntimeError( + "edge vertices must lie in different partitions") # automatically decide partitions for the newly created vertices if u not in self: - self.add_vertex(u, left=(v in self.right or v not in self), right=(v in self.left)) + self.add_vertex( + u, left=(v in self.right or v not in self), right=(v in self.left)) if v not in self: self.add_vertex(v, left=(u in self.right), right=(u in self.left)) @@ -1030,17 +1038,21 @@ def add_edges(self, edges, loops=True): u, v = edge label = None except Exception: - raise TypeError("cannot interpret {!r} as graph edge".format(edge)) + raise TypeError( + "cannot interpret {!r} as graph edge".format(edge)) # check for endpoints in different partitions if self.left.issuperset((u, v)) or self.right.issuperset((u, v)): - raise RuntimeError("edge vertices must lie in different partitions") + raise RuntimeError( + "edge vertices must lie in different partitions") # automatically decide partitions for the newly created vertices if u not in self: - self.add_vertex(u, left=(v in self.right or v not in self), right=(v in self.left)) + self.add_vertex( + u, left=(v in self.right or v not in self), right=(v in self.left)) if v not in self: - self.add_vertex(v, left=(u in self.right), right=(u in self.left)) + self.add_vertex(v, left=(u in self.right), + right=(u in self.left)) self._backend.add_edge(u, v, label, self._directed) @@ -1175,8 +1187,10 @@ def complement_bipartite(self): """ self._scream_if_not_simple() - E = [e for e in itertools.product(self.left, self.right) if not self.has_edge(e)] - H = BipartiteGraph([self, E], format='vertices_and_edges', partition=[self.left, self.right]) + E = [e for e in itertools.product( + self.left, self.right) if not self.has_edge(e)] + H = BipartiteGraph([self, E], format='vertices_and_edges', partition=[ + self.left, self.right]) if self.name(): H.name("complement-bipartite({})".format(self.name())) @@ -1223,7 +1237,8 @@ def project_left(self): G.add_vertices(self.left) for v in G: for u in self.neighbor_iterator(v): - G.add_edges(((v, w) for w in self.neighbor_iterator(u)), loops=False) + G.add_edges(((v, w) + for w in self.neighbor_iterator(u)), loops=False) return G def project_right(self): @@ -1251,7 +1266,8 @@ def project_right(self): G.add_vertices(self.right) for v in G: for u in self.neighbor_iterator(v): - G.add_edges(((v, w) for w in self.neighbor_iterator(u)), loops=False) + G.add_edges(((v, w) + for w in self.neighbor_iterator(u)), loops=False) return G def plot(self, *args, **kwds): @@ -1269,12 +1285,14 @@ def plot(self, *args, **kwds): if kwds["pos"] is None: if self.left: y = 0 if len(self.left) == 1 else 1 - pos = self._line_embedding(sorted(self.left), first=(-1, y), last=(-1, -y), return_dict=True) + pos = self._line_embedding( + sorted(self.left), first=(-1, y), last=(-1, -y), return_dict=True) else: pos = {} if self.right: y = 0 if len(self.right) == 1 else 1 - pos.update(self._line_embedding(sorted(self.right), first=(1, y), last=(1, -y), return_dict=True)) + pos.update(self._line_embedding(sorted(self.right), + first=(1, y), last=(1, -y), return_dict=True)) kwds["pos"] = pos return Graph.plot(self, *args, **kwds) @@ -1818,7 +1836,8 @@ def reduced_adjacency_matrix(self, sparse=True, *, base_ring=None, **kwds): else: # if we're normal or multi-edge, just create the matrix over ZZ for v1, v2, name in self.edge_iterator(): - idx = (right[v2], left[v1]) if v1 in left else (right[v1], left[v2]) + idx = (right[v2], left[v1]) if v1 in left else ( + right[v1], left[v2]) if idx in D: D[idx] += 1 else: @@ -1982,7 +2001,8 @@ class :class:`MixedIntegerLinearProgram # NetworkX matching algorithms for bipartite graphs may fail # when the graph is not connected if not self.is_connected(): - CC = [g for g in self.connected_components_subgraphs() if g.size()] + CC = [g for g in self.connected_components_subgraphs() + if g.size()] else: CC = [self] v2int = {v: i for i, v in enumerate(self)} @@ -2305,7 +2325,8 @@ def _subgraph_by_deleting(self, vertices=None, edges=None, inplace=False, B = self else: # We make a copy of the graph - B = BipartiteGraph(data=self.edges(sort=True), partition=[self.left, self.right]) + B = BipartiteGraph(data=self.edges(sort=True), + partition=[self.left, self.right]) attributes_to_update = ('_pos', '_assoc') for attr in attributes_to_update: if hasattr(self, attr) and getattr(self, attr) is not None: @@ -2315,7 +2336,8 @@ def _subgraph_by_deleting(self, vertices=None, edges=None, inplace=False, B.name("Subgraph of ({})".format(self.name())) vertices = set(vertices) - B.delete_vertices([v for v in B.vertex_iterator() if v not in vertices]) + B.delete_vertices( + [v for v in B.vertex_iterator() if v not in vertices]) edges_to_delete = [] if edges is not None: @@ -2330,7 +2352,8 @@ def _subgraph_by_deleting(self, vertices=None, edges=None, inplace=False, if edge_property is not None: # We might get duplicate edges, but this does handle the case of # multiple edges. - edges_to_delete.extend(e for e in B.edge_iterator() if not edge_property(e)) + edges_to_delete.extend( + e for e in B.edge_iterator() if not edge_property(e)) B.delete_edges(edges_to_delete) return B @@ -2439,7 +2462,8 @@ class by some canonization function `c`. If `G` and `H` are graphs, cert = {} if edge_labels or self.has_multiple_edges(): - G, partition, relabeling = graph_isom_equivalent_non_edge_labeled_graph(self, partition, return_relabeling=True) + G, partition, relabeling = graph_isom_equivalent_non_edge_labeled_graph( + self, partition, return_relabeling=True) G_vertices = list(chain(*partition)) G_to = {u: i for i, u in enumerate(G_vertices)} H = Graph(len(G_vertices)) @@ -2448,7 +2472,8 @@ class by some canonization function `c`. If `G` and `H` are graphs, HB.add_edge(G_to[u], G_to[v], None, False) GC = HB.c_graph()[0] partition = [[G_to[vv] for vv in cell] for cell in partition] - a, b, c = search_tree(GC, partition, certificate=True, dig=False) + a, b, c = search_tree( + GC, partition, certificate=True, dig=False) # c is a permutation to the canonical label of G, # which depends only on isomorphism class of self. cert = {v: c[G_to[relabeling[v]]] for v in self} @@ -2462,7 +2487,8 @@ class by some canonization function `c`. If `G` and `H` are graphs, HB.add_edge(G_to[u], G_to[v], None, False) GC = HB.c_graph()[0] partition = [[G_to[vv] for vv in cell] for cell in partition] - a, b, c = search_tree(GC, partition, certificate=True, dig=False) + a, b, c = search_tree( + GC, partition, certificate=True, dig=False) cert = {v: c[G_to[v]] for v in G_to} C = self.relabel(perm=cert, inplace=False) From aca2b6366fdc174aa0f17d327731748dea9f1952 Mon Sep 17 00:00:00 2001 From: Bruno-TT Date: Tue, 1 Nov 2022 17:16:59 +0000 Subject: [PATCH 051/249] Revert "pep8 formatting" This reverts commit 33206afda26e6e74bbf434eeaceef31be65ed014. --- src/sage/graphs/bipartite_graph.py | 96 +++++++++++------------------- 1 file changed, 35 insertions(+), 61 deletions(-) diff --git a/src/sage/graphs/bipartite_graph.py b/src/sage/graphs/bipartite_graph.py index ccce4d5cdbd..4de0423db30 100644 --- a/src/sage/graphs/bipartite_graph.py +++ b/src/sage/graphs/bipartite_graph.py @@ -411,7 +411,7 @@ def __init__(self, data=None, partition=None, check=True, hash_labels=False, *ar self.add_edges = MethodType(Graph.add_edges, self) alist_file = True - self.hash_labels = hash_labels + self.hash_labels=hash_labels from sage.structure.element import is_Matrix if isinstance(data, BipartiteGraph): @@ -421,8 +421,7 @@ def __init__(self, data=None, partition=None, check=True, hash_labels=False, *ar elif isinstance(data, str): import os alist_file = os.path.exists(data) - Graph.__init__( - self, data=None if alist_file else data, *args, **kwds) + Graph.__init__(self, data=None if alist_file else data, *args, **kwds) # methods; initialize left and right attributes self.left = set() @@ -437,8 +436,7 @@ def __init__(self, data=None, partition=None, check=True, hash_labels=False, *ar if left & right: raise ValueError("the parts are not disjoint") if len(left) + len(right) != self.num_verts(): - raise ValueError( - "not all vertices appear in partition") + raise ValueError("not all vertices appear in partition") if check: if (any(left.intersection(self.neighbor_iterator(a)) for a in left) or @@ -447,13 +445,11 @@ def __init__(self, data=None, partition=None, check=True, hash_labels=False, *ar "respect to the given partition") else: for a in left: - a_nbrs = left.intersection( - self.neighbor_iterator(a)) + a_nbrs = left.intersection(self.neighbor_iterator(a)) if a_nbrs: self.delete_edges((a, b) for b in a_nbrs) for a in right: - a_nbrs = right.intersection( - self.neighbor_iterator(a)) + a_nbrs = right.intersection(self.neighbor_iterator(a)) if a_nbrs: self.delete_edges((a, b) for b in a_nbrs) self.left, self.right = left, right @@ -558,21 +554,22 @@ def __init__(self, data=None, partition=None, check=True, hash_labels=False, *ar def _use_hash_labels(self): return self.weighted() or self.hash_labels - def __hash__(self): - left = frozenset(self.left) - right = frozenset(self.right) + def __hash__(self): + + left=frozenset(self.left) + right=frozenset(self.right) - data_to_hash = [left, right] + data_to_hash=[left, right] # determine whether to hash labels - use_labels = self._use_hash_labels() + use_labels=self._use_hash_labels() tuple_depth = 3 if use_labels else 2 for edge in self.edges(sort=True): data_to_hash.append(edge[:tuple_depth]) - return hash(tuple(data_to_hash)) + return hash(tuple(data_to_hash)) def _upgrade_from_graph(self): """ @@ -703,8 +700,7 @@ def add_vertex(self, name=None, left=False, right=False): (right and name in self.right)): return else: - raise RuntimeError( - "cannot add duplicate vertex to other partition") + raise RuntimeError("cannot add duplicate vertex to other partition") # add the vertex retval = Graph.add_vertex(self, name) @@ -803,8 +799,7 @@ def add_vertices(self, vertices, left=False, right=False): if ((new_left & self.right) or (new_right & self.left) or (new_right & new_left)): - raise RuntimeError( - "cannot add duplicate vertex to other partition") + raise RuntimeError("cannot add duplicate vertex to other partition") # add vertices Graph.add_vertices(self, vertices) @@ -920,8 +915,7 @@ def delete_vertices(self, vertices): elif vertex in self.right: self.right.remove(vertex) else: - raise RuntimeError( - "vertex (%s) not found in partitions" % vertex) + raise RuntimeError("vertex (%s) not found in partitions" % vertex) def add_edge(self, u, v=None, label=None): r""" @@ -981,13 +975,11 @@ def add_edge(self, u, v=None, label=None): # check for endpoints in different partitions if self.left.issuperset((u, v)) or self.right.issuperset((u, v)): - raise RuntimeError( - "edge vertices must lie in different partitions") + raise RuntimeError("edge vertices must lie in different partitions") # automatically decide partitions for the newly created vertices if u not in self: - self.add_vertex( - u, left=(v in self.right or v not in self), right=(v in self.left)) + self.add_vertex(u, left=(v in self.right or v not in self), right=(v in self.left)) if v not in self: self.add_vertex(v, left=(u in self.right), right=(u in self.left)) @@ -1038,21 +1030,17 @@ def add_edges(self, edges, loops=True): u, v = edge label = None except Exception: - raise TypeError( - "cannot interpret {!r} as graph edge".format(edge)) + raise TypeError("cannot interpret {!r} as graph edge".format(edge)) # check for endpoints in different partitions if self.left.issuperset((u, v)) or self.right.issuperset((u, v)): - raise RuntimeError( - "edge vertices must lie in different partitions") + raise RuntimeError("edge vertices must lie in different partitions") # automatically decide partitions for the newly created vertices if u not in self: - self.add_vertex( - u, left=(v in self.right or v not in self), right=(v in self.left)) + self.add_vertex(u, left=(v in self.right or v not in self), right=(v in self.left)) if v not in self: - self.add_vertex(v, left=(u in self.right), - right=(u in self.left)) + self.add_vertex(v, left=(u in self.right), right=(u in self.left)) self._backend.add_edge(u, v, label, self._directed) @@ -1187,10 +1175,8 @@ def complement_bipartite(self): """ self._scream_if_not_simple() - E = [e for e in itertools.product( - self.left, self.right) if not self.has_edge(e)] - H = BipartiteGraph([self, E], format='vertices_and_edges', partition=[ - self.left, self.right]) + E = [e for e in itertools.product(self.left, self.right) if not self.has_edge(e)] + H = BipartiteGraph([self, E], format='vertices_and_edges', partition=[self.left, self.right]) if self.name(): H.name("complement-bipartite({})".format(self.name())) @@ -1237,8 +1223,7 @@ def project_left(self): G.add_vertices(self.left) for v in G: for u in self.neighbor_iterator(v): - G.add_edges(((v, w) - for w in self.neighbor_iterator(u)), loops=False) + G.add_edges(((v, w) for w in self.neighbor_iterator(u)), loops=False) return G def project_right(self): @@ -1266,8 +1251,7 @@ def project_right(self): G.add_vertices(self.right) for v in G: for u in self.neighbor_iterator(v): - G.add_edges(((v, w) - for w in self.neighbor_iterator(u)), loops=False) + G.add_edges(((v, w) for w in self.neighbor_iterator(u)), loops=False) return G def plot(self, *args, **kwds): @@ -1285,14 +1269,12 @@ def plot(self, *args, **kwds): if kwds["pos"] is None: if self.left: y = 0 if len(self.left) == 1 else 1 - pos = self._line_embedding( - sorted(self.left), first=(-1, y), last=(-1, -y), return_dict=True) + pos = self._line_embedding(sorted(self.left), first=(-1, y), last=(-1, -y), return_dict=True) else: pos = {} if self.right: y = 0 if len(self.right) == 1 else 1 - pos.update(self._line_embedding(sorted(self.right), - first=(1, y), last=(1, -y), return_dict=True)) + pos.update(self._line_embedding(sorted(self.right), first=(1, y), last=(1, -y), return_dict=True)) kwds["pos"] = pos return Graph.plot(self, *args, **kwds) @@ -1836,8 +1818,7 @@ def reduced_adjacency_matrix(self, sparse=True, *, base_ring=None, **kwds): else: # if we're normal or multi-edge, just create the matrix over ZZ for v1, v2, name in self.edge_iterator(): - idx = (right[v2], left[v1]) if v1 in left else ( - right[v1], left[v2]) + idx = (right[v2], left[v1]) if v1 in left else (right[v1], left[v2]) if idx in D: D[idx] += 1 else: @@ -2001,8 +1982,7 @@ class :class:`MixedIntegerLinearProgram # NetworkX matching algorithms for bipartite graphs may fail # when the graph is not connected if not self.is_connected(): - CC = [g for g in self.connected_components_subgraphs() - if g.size()] + CC = [g for g in self.connected_components_subgraphs() if g.size()] else: CC = [self] v2int = {v: i for i, v in enumerate(self)} @@ -2325,8 +2305,7 @@ def _subgraph_by_deleting(self, vertices=None, edges=None, inplace=False, B = self else: # We make a copy of the graph - B = BipartiteGraph(data=self.edges(sort=True), - partition=[self.left, self.right]) + B = BipartiteGraph(data=self.edges(sort=True), partition=[self.left, self.right]) attributes_to_update = ('_pos', '_assoc') for attr in attributes_to_update: if hasattr(self, attr) and getattr(self, attr) is not None: @@ -2336,8 +2315,7 @@ def _subgraph_by_deleting(self, vertices=None, edges=None, inplace=False, B.name("Subgraph of ({})".format(self.name())) vertices = set(vertices) - B.delete_vertices( - [v for v in B.vertex_iterator() if v not in vertices]) + B.delete_vertices([v for v in B.vertex_iterator() if v not in vertices]) edges_to_delete = [] if edges is not None: @@ -2352,8 +2330,7 @@ def _subgraph_by_deleting(self, vertices=None, edges=None, inplace=False, if edge_property is not None: # We might get duplicate edges, but this does handle the case of # multiple edges. - edges_to_delete.extend( - e for e in B.edge_iterator() if not edge_property(e)) + edges_to_delete.extend(e for e in B.edge_iterator() if not edge_property(e)) B.delete_edges(edges_to_delete) return B @@ -2462,8 +2439,7 @@ class by some canonization function `c`. If `G` and `H` are graphs, cert = {} if edge_labels or self.has_multiple_edges(): - G, partition, relabeling = graph_isom_equivalent_non_edge_labeled_graph( - self, partition, return_relabeling=True) + G, partition, relabeling = graph_isom_equivalent_non_edge_labeled_graph(self, partition, return_relabeling=True) G_vertices = list(chain(*partition)) G_to = {u: i for i, u in enumerate(G_vertices)} H = Graph(len(G_vertices)) @@ -2472,8 +2448,7 @@ class by some canonization function `c`. If `G` and `H` are graphs, HB.add_edge(G_to[u], G_to[v], None, False) GC = HB.c_graph()[0] partition = [[G_to[vv] for vv in cell] for cell in partition] - a, b, c = search_tree( - GC, partition, certificate=True, dig=False) + a, b, c = search_tree(GC, partition, certificate=True, dig=False) # c is a permutation to the canonical label of G, # which depends only on isomorphism class of self. cert = {v: c[G_to[relabeling[v]]] for v in self} @@ -2487,8 +2462,7 @@ class by some canonization function `c`. If `G` and `H` are graphs, HB.add_edge(G_to[u], G_to[v], None, False) GC = HB.c_graph()[0] partition = [[G_to[vv] for vv in cell] for cell in partition] - a, b, c = search_tree( - GC, partition, certificate=True, dig=False) + a, b, c = search_tree(GC, partition, certificate=True, dig=False) cert = {v: c[G_to[v]] for v in G_to} C = self.relabel(perm=cert, inplace=False) From eafaf288bf0b6fc26a81f290aa93080f185d356c Mon Sep 17 00:00:00 2001 From: Bruno Edwards Date: Tue, 8 Nov 2022 16:54:47 +0000 Subject: [PATCH 052/249] prevent mutable graph hashing + label warnings --- src/sage/graphs/bipartite_graph.py | 44 ++++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 11 deletions(-) diff --git a/src/sage/graphs/bipartite_graph.py b/src/sage/graphs/bipartite_graph.py index 4de0423db30..ef5696ee790 100644 --- a/src/sage/graphs/bipartite_graph.py +++ b/src/sage/graphs/bipartite_graph.py @@ -349,7 +349,7 @@ class BipartiteGraph(Graph): """ - def __init__(self, data=None, partition=None, check=True, hash_labels=False, *args, **kwds): + def __init__(self, data=None, partition=None, check=True, hash_labels=None, *args, **kwds): """ Create a bipartite graph. @@ -552,24 +552,46 @@ def __init__(self, data=None, partition=None, check=True, hash_labels=False, *ar # true if specified by user, or if graph is weighted def _use_hash_labels(self): - return self.weighted() or self.hash_labels + if self.hash_labels is None: + import warnings + fallback=self.weighted() + warnings.warn(f"Warning - hash_labels parameter not passed to BipartiteGraph constructor.\nDefaulting to {fallback} [aka self.weighted()]") + self.hash_labels=fallback + return self.hash_labels def __hash__(self): + + """ + Compute a hash for ``self``, if ``self`` is immutable. + """ + if self.is_immutable(): - left=frozenset(self.left) - right=frozenset(self.right) + left=frozenset(self.left) + right=frozenset(self.right) + + data_to_hash=[left, right] - data_to_hash=[left, right] + # determine whether to hash labels + # warn user if not manually specified + use_labels=self._use_hash_labels() + tuple_depth = 3 if use_labels else 2 - # determine whether to hash labels - use_labels=self._use_hash_labels() - tuple_depth = 3 if use_labels else 2 + for edge in self.edges(sort=True): + data_to_hash.append(edge[:tuple_depth]) - for edge in self.edges(sort=True): - data_to_hash.append(edge[:tuple_depth]) + + # edge_iter = self.edge_iterator(labels=use_labels) + + # if self.allows_multiple_edges(): + # from collections import Counter + # edge_items = Counter(edge_iter).items() + # else: + # edge_items = edge_iter - return hash(tuple(data_to_hash)) + return hash(tuple(data_to_hash)) + else: + raise TypeError("This graph is mutable, and thus not hashable. Create an immutable copy by `g.copy(immutable=True)`") def _upgrade_from_graph(self): """ From 7211f4208965f7dd2c775be7fbf89e589f21fecd Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 15 Nov 2022 00:33:12 -0800 Subject: [PATCH 053/249] build/pkgs/cvxpy: Update to 1.2.2 --- build/pkgs/cvxpy/checksums.ini | 6 +++--- build/pkgs/cvxpy/package-version.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/pkgs/cvxpy/checksums.ini b/build/pkgs/cvxpy/checksums.ini index dc48984b115..0e9043f458c 100644 --- a/build/pkgs/cvxpy/checksums.ini +++ b/build/pkgs/cvxpy/checksums.ini @@ -1,5 +1,5 @@ tarball=cvxpy-VERSION.tar.gz -sha1=03d4c4cbe3161771d3978135d44c06a868e69988 -md5=893c1fd38be2b847c389f785555d8f59 -cksum=1338249214 +sha1=4cb95d1844ecd10b82f944e101ceb95829ee68d9 +md5=c5115e246e45dfcb0bde69c257b90a56 +cksum=3292234281 upstream_url=https://pypi.io/packages/source/c/cvxpy/cvxpy-VERSION.tar.gz diff --git a/build/pkgs/cvxpy/package-version.txt b/build/pkgs/cvxpy/package-version.txt index 6085e946503..23aa8390630 100644 --- a/build/pkgs/cvxpy/package-version.txt +++ b/build/pkgs/cvxpy/package-version.txt @@ -1 +1 @@ -1.2.1 +1.2.2 From 7346fd1e3c2f7ebf4c6b01090dd14bc87b1641c5 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 15 Nov 2022 00:34:20 -0800 Subject: [PATCH 054/249] build/pkgs/scs: Update to 3.2.2 --- build/pkgs/scs/checksums.ini | 6 +++--- build/pkgs/scs/package-version.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/pkgs/scs/checksums.ini b/build/pkgs/scs/checksums.ini index f92f46b9f2c..1e2e269bf71 100644 --- a/build/pkgs/scs/checksums.ini +++ b/build/pkgs/scs/checksums.ini @@ -1,5 +1,5 @@ tarball=scs-VERSION.tar.gz -sha1=938174ef98ba1b92d108a47abcbf12b1d2119dcb -md5=336840dd28db0fd90d2b0570c8372291 -cksum=3980097253 +sha1=309a035e5031f7a51c4992d5ad6c9236a406adc2 +md5=c984027aea923fa88e2f73c61bc06dd0 +cksum=1688898932 upstream_url=https://pypi.io/packages/source/s/scs/scs-VERSION.tar.gz diff --git a/build/pkgs/scs/package-version.txt b/build/pkgs/scs/package-version.txt index 944880fa15e..be94e6f53db 100644 --- a/build/pkgs/scs/package-version.txt +++ b/build/pkgs/scs/package-version.txt @@ -1 +1 @@ -3.2.0 +3.2.2 From f801dbd83f20e88b27f2c428488b40978733ccfd Mon Sep 17 00:00:00 2001 From: Bruno Edwards Date: Thu, 24 Nov 2022 14:45:37 +0000 Subject: [PATCH 055/249] generic_graph supports hash_labels + tests --- src/sage/graphs/bipartite_graph.py | 32 ++------- src/sage/graphs/digraph.py | 4 +- src/sage/graphs/generic_graph.py | 110 +++++++++++++++++++++++++---- src/sage/graphs/graph.py | 4 +- 4 files changed, 111 insertions(+), 39 deletions(-) diff --git a/src/sage/graphs/bipartite_graph.py b/src/sage/graphs/bipartite_graph.py index ef5696ee790..aa6eea5dc95 100644 --- a/src/sage/graphs/bipartite_graph.py +++ b/src/sage/graphs/bipartite_graph.py @@ -550,46 +550,28 @@ def __init__(self, data=None, partition=None, check=True, hash_labels=None, *arg return - # true if specified by user, or if graph is weighted - def _use_hash_labels(self): - if self.hash_labels is None: - import warnings - fallback=self.weighted() - warnings.warn(f"Warning - hash_labels parameter not passed to BipartiteGraph constructor.\nDefaulting to {fallback} [aka self.weighted()]") - self.hash_labels=fallback - return self.hash_labels - - def __hash__(self): """ Compute a hash for ``self``, if ``self`` is immutable. """ if self.is_immutable(): - - left=frozenset(self.left) - right=frozenset(self.right) - - data_to_hash=[left, right] # determine whether to hash labels # warn user if not manually specified use_labels=self._use_hash_labels() - tuple_depth = 3 if use_labels else 2 - for edge in self.edges(sort=True): - data_to_hash.append(edge[:tuple_depth]) - # edge_iter = self.edge_iterator(labels=use_labels) + edge_iter = self.edge_iterator(labels=use_labels) - # if self.allows_multiple_edges(): - # from collections import Counter - # edge_items = Counter(edge_iter).items() - # else: - # edge_items = edge_iter + if self.allows_multiple_edges(): + from collections import Counter + edge_items = Counter(edge_iter).items() + else: + edge_items = edge_iter - return hash(tuple(data_to_hash)) + return hash((frozenset(self.left), frozenset(self.right), frozenset(edge_items))) else: raise TypeError("This graph is mutable, and thus not hashable. Create an immutable copy by `g.copy(immutable=True)`") diff --git a/src/sage/graphs/digraph.py b/src/sage/graphs/digraph.py index 3cccf81c956..44152b8c79d 100644 --- a/src/sage/graphs/digraph.py +++ b/src/sage/graphs/digraph.py @@ -517,7 +517,7 @@ def __init__(self, data=None, pos=None, loops=None, format=None, weighted=None, data_structure="sparse", vertex_labels=True, name=None, multiedges=None, convert_empty_dict_labels_to_None=None, - sparse=True, immutable=False): + sparse=True, immutable=False, hash_labels=None): """ TESTS:: @@ -855,6 +855,8 @@ def __init__(self, data=None, pos=None, loops=None, format=None, self._backend = ib self._immutable = True + self.hash_labels=hash_labels + # Formats def dig6_string(self): r""" diff --git a/src/sage/graphs/generic_graph.py b/src/sage/graphs/generic_graph.py index 218612d145f..b04b5e4b195 100644 --- a/src/sage/graphs/generic_graph.py +++ b/src/sage/graphs/generic_graph.py @@ -614,6 +614,13 @@ def __eq__(self, other): return self._backend.is_subgraph(other._backend, self, ignore_labels=not self.weighted()) + # check if specified by the user, if not then fallback + def _use_labels_for_hash(self): + if not hasattr(self, "hash_labels") or self.hash_labels is None: + fallback=self.weighted() + self.hash_labels=fallback + return self.hash_labels + @cached_method def __hash__(self): """ @@ -684,9 +691,13 @@ def __hash__(self): sage: G1.__hash__() == G2.__hash__() True + Make sure hash_labels parameter behaves as expected: + + """ if self.is_immutable(): - edge_items = self.edge_iterator(labels=self._weighted) + use_labels=self._use_labels_for_hash() + edge_items = self.edge_iterator(labels=use_labels) if self.allows_multiple_edges(): from collections import Counter edge_items = Counter(edge_items).items() @@ -947,7 +958,7 @@ def is_immutable(self): ### Formats - def copy(self, weighted=None, data_structure=None, sparse=None, immutable=None): + def copy(self, weighted=None, data_structure=None, sparse=None, immutable=None, hash_labels=None): """ Change the graph implementation @@ -1133,7 +1144,86 @@ def copy(self, weighted=None, data_structure=None, sparse=None, immutable=None): sage: G._immutable = True sage: G.copy()._backend - """ + + Copying and changing hash_labels parameter:: + + sage: G1 = Graph({0: {1: 'edge label A'}}, immutable=True, hash_labels=False) + sage: G1c = G1.copy(hash_labels=True, immutable=True) + sage: hash(G1)==hash(G1c) + False + + sage: G1 = Graph({0: {1: 'edge label A'}}, immutable=True, hash_labels=False) + sage: G2 = Graph({0: {1: 'edge label B'}}, immutable=True, hash_labels=False) + sage: hash(G1)==hash(G2) + True + sage: G1c = G1.copy(hash_labels=True) + sage: G2c = G2.copy(hash_labels=True) + sage: hash(G1c)==hash(G2c) + False + + Making sure the .copy behaviour works correctly with hash_labels and immutable in all 54 cases:: + sage: for old_immutable in [True, False]: + ....: for new_immutable in [True, False, None]: + ....: for old_hash_labels in [True, False, None]: + ....: for new_hash_labels in [True, False, None]: + ....: + ....: # make a graph with old_immutable, old_hash_labels + ....: G = Graph({0: {1: 'edge label A'}}, immutable=old_immutable, hash_labels=old_hash_labels) + ....: old_immutable=G.is_immutable() + ....: old_hash_labels=G.hash_labels + ....: + ....: # copy the graph, passing the overrides + ....: G2 = G.copy(immutable=new_immutable, hash_labels=new_hash_labels) + ....: + ....: if new_immutable is None: + ....: # make sure immutability is preserved if we don't update it + ....: assert G2.is_immutable() == old_immutable, [old_immutable, new_immutable, old_hash_labels, new_hash_labels] + ....: else: + ....: # make sure that updating immutability works + ....: assert G2.is_immutable() == new_immutable, [old_immutable, new_immutable, old_hash_labels, new_hash_labels] + ....: + ....: if new_hash_labels is None: + ....: # make sure hash_labels is preserved if we don't update it + ....: assert G2.hash_labels == old_hash_labels, [old_immutable, new_immutable, old_hash_labels, new_hash_labels] + ....: else: + ....: # make sure updating hash labels works + ....: assert G2.hash_labels == new_hash_labels, [old_immutable, new_immutable, old_hash_labels, new_hash_labels] + + """ + + # This is an ugly hack but it works. + # This function contains some fairly complex logic + # There is a comment further down that says + + ### Immutable copy of an immutable graph ? return self ! + + # The issue being that if we want to change the hash_labels behaviour, then + # returning self is no longer a good option. I'd argue that a copy function + # returning self is always bad behaviour, but that's out of the scope for this ticket. + # Trying to weaken the if statement to include something like + + ### and (hash_labels is None or (hash_labels==self._use_labels_for_hash())) + + # doesn't work, since there is no fallback logic for making + # an immutable copy of an immutable graph, and my attempts at + # implementing one caused other tests to break in different + # bits of the code + + # the hack I've used creates a mutable copy of the graph + # and then makes an immutable copy of that one. I think this is a fairly + # inobtrusive implementation, since the function still runs as normally, + # assuming that they pass nothing into hash_labels, and seems to behave + # correctly otherwise. + + # However, this is obviously not optimal, and could definitely be improved upon + # by someone who understands the logic better. + if hash_labels is not None: + desired_immutable = self.is_immutable() if immutable is None else immutable + forced_mutable_copy = self.copy(weighted=weighted, data_structure=data_structure, sparse=sparse, immutable=False) + fresh_copy = forced_mutable_copy.copy(weighted=weighted, data_structure=data_structure, sparse=sparse, immutable=desired_immutable) + fresh_copy.hash_labels=hash_labels + return fresh_copy + # Which data structure should be used ? if data_structure is not None: # data_structure is already defined so there is nothing left to do @@ -1166,19 +1256,19 @@ def copy(self, weighted=None, data_structure=None, sparse=None, immutable=None): if (isinstance(self._backend, StaticSparseBackend) and (data_structure=='static_sparse' or data_structure is None)): return self - + if data_structure is None: from sage.graphs.base.dense_graph import DenseGraphBackend if isinstance(self._backend, DenseGraphBackend): data_structure = "dense" else: data_structure = "sparse" - + G = self.__class__(self, name=self.name(), pos=copy(self._pos), - weighted=weighted, - data_structure=data_structure) + weighted=weighted, + data_structure=data_structure) - attributes_to_copy = ('_assoc', '_embedding') + attributes_to_copy = ('_assoc', '_embedding', 'hash_labels') for attr in attributes_to_copy: if hasattr(self, attr): copy_attr = {} @@ -3989,7 +4079,6 @@ def is_bipartite(self, certificate=False): else: return True - def is_eulerian(self, path=False): r""" Check whether the graph is Eulerian. @@ -7228,7 +7317,6 @@ def vertex_cut(self, s, t, value_only=True, vertices=False, solver=None, verbose answer.append([l0, l1]) return tuple(answer) - def multiway_cut(self, vertices, value_only=False, use_edge_labels=False, solver=None, verbose=0, *, integrality_tolerance=1e-3): r""" @@ -7372,7 +7460,6 @@ def weight(l): return [e for e in self.edge_iterator() if cut[good_edge((e[0], e[1]))]] - def max_cut(self, value_only=True, use_edge_labels=False, vertices=False, solver=None, verbose=0, *, integrality_tolerance=1e-3): r""" @@ -8163,7 +8250,6 @@ def hamiltonian_path(self, s=None, t=None, use_edge_labels=False, weight = lambda l: 1 if l is None else l return (sum(map(weight,tsp.edge_labels())), tsp) if use_edge_labels else tsp - def traveling_salesman_problem(self, use_edge_labels=False, maximize=False, solver=None, constraint_generation=None, verbose=0, verbose_constraints=False, diff --git a/src/sage/graphs/graph.py b/src/sage/graphs/graph.py index 3bd3983579e..a81cc7339b3 100644 --- a/src/sage/graphs/graph.py +++ b/src/sage/graphs/graph.py @@ -910,7 +910,7 @@ def __init__(self, data=None, pos=None, loops=None, format=None, weighted=None, data_structure="sparse", vertex_labels=True, name=None, multiedges=None, convert_empty_dict_labels_to_None=None, - sparse=True, immutable=False): + sparse=True, immutable=False, hash_labels=None): """ TESTS:: @@ -1266,6 +1266,8 @@ def __init__(self, data=None, pos=None, loops=None, format=None, self._backend = ib self._immutable = True + self.hash_labels = hash_labels + # Formats @doc_index("Basic methods") From 837a8c7ef856c0c080c894de0789e5d66f956b3c Mon Sep 17 00:00:00 2001 From: dcoudert Date: Sun, 8 Jan 2023 13:25:25 +0100 Subject: [PATCH 056/249] trac #33255: review commit --- src/sage/graphs/bipartite_graph.py | 55 ++++++++++++++--------- src/sage/graphs/digraph.py | 7 ++- src/sage/graphs/generic_graph.py | 71 +++++++++++++++++++++++++----- src/sage/graphs/graph.py | 6 ++- 4 files changed, 105 insertions(+), 34 deletions(-) diff --git a/src/sage/graphs/bipartite_graph.py b/src/sage/graphs/bipartite_graph.py index aa6eea5dc95..a333096cde8 100644 --- a/src/sage/graphs/bipartite_graph.py +++ b/src/sage/graphs/bipartite_graph.py @@ -94,9 +94,9 @@ class BipartiteGraph(Graph): - ``weighted`` -- boolean (default: ``None``); whether graph thinks of itself as weighted or not. See ``self.weighted()`` - - ``hash_labels`` - boolean (default: ``False``); whether to include labels - / weights during hashing. Will raise a warning when __hash__ is invoked - and default to true. + - ``hash_labels`` -- boolean (default: ``None``); whether to include edge + labels during hashing. This parameter defaults to ``True`` if the graph is + weighted. This parameter is ignored if the graph is mutable. .. NOTE:: @@ -411,7 +411,7 @@ def __init__(self, data=None, partition=None, check=True, hash_labels=None, *arg self.add_edges = MethodType(Graph.add_edges, self) alist_file = True - self.hash_labels=hash_labels + self._hash_labels = hash_labels from sage.structure.element import is_Matrix if isinstance(data, BipartiteGraph): @@ -550,30 +550,45 @@ def __init__(self, data=None, partition=None, check=True, hash_labels=None, *arg return + @cached_method def __hash__(self): - """ Compute a hash for ``self``, if ``self`` is immutable. - """ - if self.is_immutable(): - # determine whether to hash labels - # warn user if not manually specified - use_labels=self._use_hash_labels() + EXAMPLES:: + sage: A = BipartiteGraph([(0, 1, 1), (1, 2, 1)], immutable=True) + sage: B = BipartiteGraph([(0, 1, 1), (1, 2, 33)], immutable=True) + sage: A.__hash__() == B.__hash__() + True + sage: A = BipartiteGraph([(0, 1, 1), (1, 2, 1)], immutable=True, hash_labels=True) + sage: B = BipartiteGraph([(0, 1, 1), (1, 2, 33)], immutable=True, hash_labels=True) + sage: A.__hash__() == B.__hash__() + False + sage: A = BipartiteGraph([(0, 1, 1), (1, 2, 1)], immutable=True, weighted=True) + sage: B = BipartiteGraph([(0, 1, 1), (1, 2, 33)], immutable=True, weighted=True) + sage: A.__hash__() == B.__hash__() + False - - edge_iter = self.edge_iterator(labels=use_labels) - + TESTS:: + + sage: A = BipartiteGraph([(0, 1, 1), (1, 2, 1)], immutable=False) + sage: A.__hash__() + Traceback (most recent call last): + ... + TypeError: This graph is mutable, and thus not hashable. Create an immutable copy by `g.copy(immutable=True)` + """ + if self.is_immutable(): + # Determine whether to hash edge labels + use_labels = self._use_hash_labels() + edge_items = self.edge_iterator(labels=use_labels) if self.allows_multiple_edges(): - from collections import Counter - edge_items = Counter(edge_iter).items() - else: - edge_items = edge_iter + from collections import Counter + edge_items = Counter(edge_items).items() + return hash((frozenset(self.left), frozenset(self.right), frozenset(edge_items))) - return hash((frozenset(self.left), frozenset(self.right), frozenset(edge_items))) - else: - raise TypeError("This graph is mutable, and thus not hashable. Create an immutable copy by `g.copy(immutable=True)`") + raise TypeError("This graph is mutable, and thus not hashable. " + "Create an immutable copy by `g.copy(immutable=True)`") def _upgrade_from_graph(self): """ diff --git a/src/sage/graphs/digraph.py b/src/sage/graphs/digraph.py index 44152b8c79d..341ba49a654 100644 --- a/src/sage/graphs/digraph.py +++ b/src/sage/graphs/digraph.py @@ -315,6 +315,10 @@ class DiGraph(GenericGraph): immutable digraph. Note that ``immutable=True`` is actually a shortcut for ``data_structure='static_sparse'``. + - ``hash_labels`` -- boolean (default: ``None``); whether to include edge + labels during hashing. This parameter defaults to ``True`` if the digraph + is weighted. This parameter is ignored if the digraph is mutable. + - ``vertex_labels`` -- boolean (default: ``True``); whether to allow any object as a vertex (slower), or only the integers `0,...,n-1`, where `n` is the number of vertices. @@ -855,9 +859,10 @@ def __init__(self, data=None, pos=None, loops=None, format=None, self._backend = ib self._immutable = True - self.hash_labels=hash_labels + self._hash_labels = hash_labels # Formats + def dig6_string(self): r""" Return the ``dig6`` representation of the digraph as an ASCII string. diff --git a/src/sage/graphs/generic_graph.py b/src/sage/graphs/generic_graph.py index 8a31802b3bf..49272c06bfd 100644 --- a/src/sage/graphs/generic_graph.py +++ b/src/sage/graphs/generic_graph.py @@ -615,12 +615,39 @@ def __eq__(self, other): return self._backend.is_subgraph(other._backend, self, ignore_labels=not self.weighted()) - # check if specified by the user, if not then fallback + def _use_labels_for_hash(self): - if not hasattr(self, "hash_labels") or self.hash_labels is None: - fallback=self.weighted() - self.hash_labels=fallback - return self.hash_labels + r""" + Helper method for method ``__hash__``. + + This method checks whether parameter ``hash_labels`` has been specified + by the user. Otherwise, defaults to the value of parameter ``weigthed``. + + TESTS:: + + sage: G = Graph() + sage: G._use_labels_for_hash() + False + sage: G = Graph(hash_labels=True) + sage: G._use_labels_for_hash() + True + sage: G = Graph(hash_labels=False) + sage: G._use_labels_for_hash() + False + sage: G = Graph(weighted=True) + sage: G._use_labels_for_hash() + True + sage: G = Graph(weighted=False) + sage: G._use_labels_for_hash() + False + sage: G = Graph(hash_labels=False, weighted=True) + sage: G._use_labels_for_hash() + False + """ + if not hasattr(self, "_hash_labels") or self._hash_labels is None: + self._hash_labels = self.weighted() + return self._hash_labels + @cached_method def __hash__(self): @@ -692,12 +719,28 @@ def __hash__(self): sage: G1.__hash__() == G2.__hash__() True - Make sure hash_labels parameter behaves as expected: - + Make sure ``hash_labels`` parameter behaves as expected + (:trac:`33255`):: + sage: A = Graph([(1, 2, 1)], immutable=True) + sage: B = Graph([(1, 2, 33)], immutable=True) + sage: A.__hash__() == B.__hash__() + True + sage: A = Graph([(1, 2, 1)], immutable=True, hash_labels=True) + sage: B = Graph([(1, 2, 33)], immutable=True, hash_labels=True) + sage: A.__hash__() == B.__hash__() + False + sage: A = Graph([(1, 2, 1)], immutable=True, weighted=True) + sage: B = Graph([(1, 2, 33)], immutable=True, weighted=True) + sage: A.__hash__() == B.__hash__() + False + sage: A = Graph([(1, 2, 1)], immutable=True, hash_labels=False, weighted=True) + sage: B = Graph([(1, 2, 33)], immutable=True, hash_labels=False, weighted=True) + sage: A.__hash__() == B.__hash__() + True """ if self.is_immutable(): - use_labels=self._use_labels_for_hash() + use_labels = self._use_labels_for_hash() edge_items = self.edge_iterator(labels=use_labels) if self.allows_multiple_edges(): from collections import Counter @@ -996,6 +1039,10 @@ def copy(self, weighted=None, data_structure=None, sparse=None, immutable=None, used to copy an immutable graph, the data structure used is ``"sparse"`` unless anything else is specified. + - ``hash_labels`` -- boolean (default: ``None``); whether to include + edge labels during hashing. This parameter defaults to ``True`` if the + graph is weighted. This parameter is ignored if the graph is mutable. + .. NOTE:: If the graph uses @@ -1229,7 +1276,7 @@ def copy(self, weighted=None, data_structure=None, sparse=None, immutable=None, desired_immutable = self.is_immutable() if immutable is None else immutable forced_mutable_copy = self.copy(weighted=weighted, data_structure=data_structure, sparse=sparse, immutable=False) fresh_copy = forced_mutable_copy.copy(weighted=weighted, data_structure=data_structure, sparse=sparse, immutable=desired_immutable) - fresh_copy.hash_labels=hash_labels + fresh_copy._hash_labels = hash_labels return fresh_copy # Which data structure should be used ? @@ -1273,10 +1320,10 @@ def copy(self, weighted=None, data_structure=None, sparse=None, immutable=None, data_structure = "sparse" G = self.__class__(self, name=self.name(), pos=copy(self._pos), - weighted=weighted, - data_structure=data_structure) + weighted=weighted, + data_structure=data_structure) - attributes_to_copy = ('_assoc', '_embedding', 'hash_labels') + attributes_to_copy = ('_assoc', '_embedding', '_hash_labels') for attr in attributes_to_copy: if hasattr(self, attr): copy_attr = {} diff --git a/src/sage/graphs/graph.py b/src/sage/graphs/graph.py index a81cc7339b3..9e3ea6b9731 100644 --- a/src/sage/graphs/graph.py +++ b/src/sage/graphs/graph.py @@ -570,6 +570,10 @@ class Graph(GenericGraph): immutable graph. Note that ``immutable=True`` is actually a shortcut for ``data_structure='static_sparse'``. Set to ``False`` by default. + - ``hash_labels`` -- boolean (default: ``None``); whether to include edge + labels during hashing. This parameter defaults to ``True`` if the graph is + weighted. This parameter is ignored if the graph is mutable. + - ``vertex_labels`` -- boolean (default: ``True``); whether to allow any object as a vertex (slower), or only the integers `0,...,n-1`, where `n` is the number of vertices. @@ -1266,7 +1270,7 @@ def __init__(self, data=None, pos=None, loops=None, format=None, self._backend = ib self._immutable = True - self.hash_labels = hash_labels + self._hash_labels = hash_labels # Formats From 634ca632611af10278d5943fc6c6b275a4621d51 Mon Sep 17 00:00:00 2001 From: dcoudert Date: Sun, 8 Jan 2023 14:31:00 +0100 Subject: [PATCH 057/249] trac #33255: corrections --- src/sage/graphs/bipartite_graph.py | 22 ++++++++++++---------- src/sage/graphs/generic_graph.py | 6 +++--- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/sage/graphs/bipartite_graph.py b/src/sage/graphs/bipartite_graph.py index a333096cde8..644e4b22b6e 100644 --- a/src/sage/graphs/bipartite_graph.py +++ b/src/sage/graphs/bipartite_graph.py @@ -45,6 +45,7 @@ from .graph import Graph from sage.rings.integer import Integer from sage.misc.decorators import rename_keyword +from sage.misc.cachefunc import cached_method class BipartiteGraph(Graph): @@ -399,6 +400,7 @@ def __init__(self, data=None, partition=None, check=True, hash_labels=None, *arg Graph.__init__(self, **kwds) self.left = set() self.right = set() + self._hash_labels = hash_labels return # need to turn off partition checking for Graph.__init__() adding @@ -411,8 +413,6 @@ def __init__(self, data=None, partition=None, check=True, hash_labels=None, *arg self.add_edges = MethodType(Graph.add_edges, self) alist_file = True - self._hash_labels = hash_labels - from sage.structure.element import is_Matrix if isinstance(data, BipartiteGraph): Graph.__init__(self, data, *args, **kwds) @@ -548,6 +548,8 @@ def __init__(self, data=None, partition=None, check=True, hash_labels=None, *arg if alist_file: self.load_afile(data) + self._hash_labels = hash_labels + return @cached_method @@ -557,22 +559,22 @@ def __hash__(self): EXAMPLES:: - sage: A = BipartiteGraph([(0, 1, 1), (1, 2, 1)], immutable=True) - sage: B = BipartiteGraph([(0, 1, 1), (1, 2, 33)], immutable=True) + sage: A = BipartiteGraph([(1, 2, 1)], immutable=True) + sage: B = BipartiteGraph([(1, 2, 33)], immutable=True) sage: A.__hash__() == B.__hash__() True - sage: A = BipartiteGraph([(0, 1, 1), (1, 2, 1)], immutable=True, hash_labels=True) - sage: B = BipartiteGraph([(0, 1, 1), (1, 2, 33)], immutable=True, hash_labels=True) + sage: A = BipartiteGraph([(1, 2, 1)], immutable=True, hash_labels=True) + sage: B = BipartiteGraph([(1, 2, 33)], immutable=True, hash_labels=True) sage: A.__hash__() == B.__hash__() False - sage: A = BipartiteGraph([(0, 1, 1), (1, 2, 1)], immutable=True, weighted=True) - sage: B = BipartiteGraph([(0, 1, 1), (1, 2, 33)], immutable=True, weighted=True) + sage: A = BipartiteGraph([(1, 2, 1)], immutable=True, weighted=True) + sage: B = BipartiteGraph([(1, 2, 33)], immutable=True, weighted=True) sage: A.__hash__() == B.__hash__() False TESTS:: - sage: A = BipartiteGraph([(0, 1, 1), (1, 2, 1)], immutable=False) + sage: A = BipartiteGraph([(1, 2, 1)], immutable=False) sage: A.__hash__() Traceback (most recent call last): ... @@ -580,7 +582,7 @@ def __hash__(self): """ if self.is_immutable(): # Determine whether to hash edge labels - use_labels = self._use_hash_labels() + use_labels = self._use_labels_for_hash() edge_items = self.edge_iterator(labels=use_labels) if self.allows_multiple_edges(): from collections import Counter diff --git a/src/sage/graphs/generic_graph.py b/src/sage/graphs/generic_graph.py index 49272c06bfd..86c52933a33 100644 --- a/src/sage/graphs/generic_graph.py +++ b/src/sage/graphs/generic_graph.py @@ -1225,7 +1225,7 @@ def copy(self, weighted=None, data_structure=None, sparse=None, immutable=None, ....: # make a graph with old_immutable, old_hash_labels ....: G = Graph({0: {1: 'edge label A'}}, immutable=old_immutable, hash_labels=old_hash_labels) ....: old_immutable=G.is_immutable() - ....: old_hash_labels=G.hash_labels + ....: old_hash_labels=G._hash_labels ....: ....: # copy the graph, passing the overrides ....: G2 = G.copy(immutable=new_immutable, hash_labels=new_hash_labels) @@ -1239,10 +1239,10 @@ def copy(self, weighted=None, data_structure=None, sparse=None, immutable=None, ....: ....: if new_hash_labels is None: ....: # make sure hash_labels is preserved if we don't update it - ....: assert G2.hash_labels == old_hash_labels, [old_immutable, new_immutable, old_hash_labels, new_hash_labels] + ....: assert G2._hash_labels == old_hash_labels, [old_immutable, new_immutable, old_hash_labels, new_hash_labels] ....: else: ....: # make sure updating hash labels works - ....: assert G2.hash_labels == new_hash_labels, [old_immutable, new_immutable, old_hash_labels, new_hash_labels] + ....: assert G2._hash_labels == new_hash_labels, [old_immutable, new_immutable, old_hash_labels, new_hash_labels] """ From e993d2f9aab597abc43fd5cf1da381dd0a8e8e9f Mon Sep 17 00:00:00 2001 From: dcoudert Date: Sat, 14 Jan 2023 12:44:42 +0100 Subject: [PATCH 058/249] trac #33255: better copy --- src/sage/graphs/bipartite_graph.py | 8 ++ src/sage/graphs/digraph.py | 7 +- src/sage/graphs/generic_graph.py | 117 ++++++++++------------------- src/sage/graphs/graph.py | 7 +- 4 files changed, 57 insertions(+), 82 deletions(-) diff --git a/src/sage/graphs/bipartite_graph.py b/src/sage/graphs/bipartite_graph.py index 644e4b22b6e..7149726b86a 100644 --- a/src/sage/graphs/bipartite_graph.py +++ b/src/sage/graphs/bipartite_graph.py @@ -98,6 +98,7 @@ class BipartiteGraph(Graph): - ``hash_labels`` -- boolean (default: ``None``); whether to include edge labels during hashing. This parameter defaults to ``True`` if the graph is weighted. This parameter is ignored if the graph is mutable. + Beware that trying to hash unhashable labels will raise an error. .. NOTE:: @@ -548,6 +549,8 @@ def __init__(self, data=None, partition=None, check=True, hash_labels=None, *arg if alist_file: self.load_afile(data) + if hash_labels is None and hasattr(data, '_hash_labels'): + hash_labels = data._hash_labels self._hash_labels = hash_labels return @@ -579,6 +582,11 @@ def __hash__(self): Traceback (most recent call last): ... TypeError: This graph is mutable, and thus not hashable. Create an immutable copy by `g.copy(immutable=True)` + sage: B = BipartiteGraph([(1, 2, {'length': 3})], immutable=True, hash_labels=True) + sage: B.__hash__() + Traceback (most recent call last): + ... + TypeError: unhashable type: 'dict' """ if self.is_immutable(): # Determine whether to hash edge labels diff --git a/src/sage/graphs/digraph.py b/src/sage/graphs/digraph.py index 341ba49a654..84272a85d2c 100644 --- a/src/sage/graphs/digraph.py +++ b/src/sage/graphs/digraph.py @@ -318,6 +318,7 @@ class DiGraph(GenericGraph): - ``hash_labels`` -- boolean (default: ``None``); whether to include edge labels during hashing. This parameter defaults to ``True`` if the digraph is weighted. This parameter is ignored if the digraph is mutable. + Beware that trying to hash unhashable labels will raise an error. - ``vertex_labels`` -- boolean (default: ``True``); whether to allow any object as a vertex (slower), or only the integers `0,...,n-1`, where `n` @@ -846,6 +847,10 @@ def __init__(self, data=None, pos=None, loops=None, format=None, # weighted, multiedges, loops, verts and num_verts should now be set self._weighted = weighted + if hash_labels is None and hasattr(data, '_hash_labels'): + hash_labels = data._hash_labels + self._hash_labels = hash_labels + self._pos = copy(pos) if format != 'DiGraph' or name is not None: @@ -859,8 +864,6 @@ def __init__(self, data=None, pos=None, loops=None, format=None, self._backend = ib self._immutable = True - self._hash_labels = hash_labels - # Formats def dig6_string(self): diff --git a/src/sage/graphs/generic_graph.py b/src/sage/graphs/generic_graph.py index 86c52933a33..3c497ab00d8 100644 --- a/src/sage/graphs/generic_graph.py +++ b/src/sage/graphs/generic_graph.py @@ -1040,8 +1040,10 @@ def copy(self, weighted=None, data_structure=None, sparse=None, immutable=None, ``"sparse"`` unless anything else is specified. - ``hash_labels`` -- boolean (default: ``None``); whether to include - edge labels during hashing. This parameter defaults to ``True`` if the - graph is weighted. This parameter is ignored if the graph is mutable. + edge labels during hashing of the copy. This parameter defaults to + ``True`` if the graph is weighted. This parameter is ignored when + parameter ``immutable`` is not ``True``. + Beware that trying to hash unhashable labels will raise an error. .. NOTE:: @@ -1200,85 +1202,43 @@ def copy(self, weighted=None, data_structure=None, sparse=None, immutable=None, sage: G.copy()._backend - Copying and changing hash_labels parameter:: + Copying and changing ``hash_labels`` parameter:: - sage: G1 = Graph({0: {1: 'edge label A'}}, immutable=True, hash_labels=False) - sage: G1c = G1.copy(hash_labels=True, immutable=True) - sage: hash(G1)==hash(G1c) + sage: G = Graph({0: {1: 'edge label A'}}, immutable=True, hash_labels=False) + sage: hash(G.copy(hash_labels=True, immutable=True)) == hash(G) False - + sage: hash(G.copy(hash_labels=False, immutable=True)) == hash(G) + True + sage: hash(G.copy(hash_labels=None, immutable=True)) == hash(G) + True + sage: G = Graph({0: {1: 'edge label A'}}, immutable=True, hash_labels=True) + sage: hash(G.copy(hash_labels=True, immutable=True)) == hash(G) + True + sage: hash(G.copy(hash_labels=False, immutable=True)) == hash(G) + False + sage: hash(G.copy(hash_labels=None, immutable=True)) == hash(G) + True sage: G1 = Graph({0: {1: 'edge label A'}}, immutable=True, hash_labels=False) sage: G2 = Graph({0: {1: 'edge label B'}}, immutable=True, hash_labels=False) - sage: hash(G1)==hash(G2) + sage: hash(G1) == hash(G2) True - sage: G1c = G1.copy(hash_labels=True) - sage: G2c = G2.copy(hash_labels=True) - sage: hash(G1c)==hash(G2c) + sage: G1c = G1.copy(hash_labels=True, immutable=True) + sage: G2c = G2.copy(hash_labels=True, immutable=True) + sage: hash(G1c) == hash(G2c) False - - Making sure the .copy behaviour works correctly with hash_labels and immutable in all 54 cases:: - sage: for old_immutable in [True, False]: - ....: for new_immutable in [True, False, None]: - ....: for old_hash_labels in [True, False, None]: - ....: for new_hash_labels in [True, False, None]: - ....: - ....: # make a graph with old_immutable, old_hash_labels - ....: G = Graph({0: {1: 'edge label A'}}, immutable=old_immutable, hash_labels=old_hash_labels) - ....: old_immutable=G.is_immutable() - ....: old_hash_labels=G._hash_labels - ....: - ....: # copy the graph, passing the overrides - ....: G2 = G.copy(immutable=new_immutable, hash_labels=new_hash_labels) - ....: - ....: if new_immutable is None: - ....: # make sure immutability is preserved if we don't update it - ....: assert G2.is_immutable() == old_immutable, [old_immutable, new_immutable, old_hash_labels, new_hash_labels] - ....: else: - ....: # make sure that updating immutability works - ....: assert G2.is_immutable() == new_immutable, [old_immutable, new_immutable, old_hash_labels, new_hash_labels] - ....: - ....: if new_hash_labels is None: - ....: # make sure hash_labels is preserved if we don't update it - ....: assert G2._hash_labels == old_hash_labels, [old_immutable, new_immutable, old_hash_labels, new_hash_labels] - ....: else: - ....: # make sure updating hash labels works - ....: assert G2._hash_labels == new_hash_labels, [old_immutable, new_immutable, old_hash_labels, new_hash_labels] - - """ - - # This is an ugly hack but it works. - # This function contains some fairly complex logic - # There is a comment further down that says - - ### Immutable copy of an immutable graph ? return self ! - - # The issue being that if we want to change the hash_labels behaviour, then - # returning self is no longer a good option. I'd argue that a copy function - # returning self is always bad behaviour, but that's out of the scope for this ticket. - # Trying to weaken the if statement to include something like - - ### and (hash_labels is None or (hash_labels==self._use_labels_for_hash())) - - # doesn't work, since there is no fallback logic for making - # an immutable copy of an immutable graph, and my attempts at - # implementing one caused other tests to break in different - # bits of the code - - # the hack I've used creates a mutable copy of the graph - # and then makes an immutable copy of that one. I think this is a fairly - # inobtrusive implementation, since the function still runs as normally, - # assuming that they pass nothing into hash_labels, and seems to behave - # correctly otherwise. - - # However, this is obviously not optimal, and could definitely be improved upon - # by someone who understands the logic better. - if hash_labels is not None: - desired_immutable = self.is_immutable() if immutable is None else immutable - forced_mutable_copy = self.copy(weighted=weighted, data_structure=data_structure, sparse=sparse, immutable=False) - fresh_copy = forced_mutable_copy.copy(weighted=weighted, data_structure=data_structure, sparse=sparse, immutable=desired_immutable) - fresh_copy._hash_labels = hash_labels - return fresh_copy - + sage: G = Graph({0: {1: 'edge label A'}}, immutable=True, hash_labels=False) + sage: H = G.copy(hash_labels=True) + sage: H.is_immutable() + False + sage: H._hash_labels + True + sage: I = H.copy(immutable=True) + sage: hash(G) == hash(I) + False + sage: G = Graph({0: {1: 'edge label A'}}, immutable=True, hash_labels=True) + sage: hash(G) == hash(I) + True + """ # Which data structure should be used ? if data_structure is not None: # data_structure is already defined so there is nothing left to do @@ -1306,7 +1266,8 @@ def copy(self, weighted=None, data_structure=None, sparse=None, immutable=None, # Immutable copy of an immutable graph ? return self ! # (if okay for weightedness) if (self.is_immutable() and - (weighted is None or self._weighted == weighted)): + (weighted is None or self._weighted == weighted) and + (hash_labels is None or self._hash_labels == hash_labels)): from sage.graphs.base.static_sparse_backend import StaticSparseBackend if (isinstance(self._backend, StaticSparseBackend) and (data_structure == 'static_sparse' or data_structure is None)): @@ -1320,10 +1281,10 @@ def copy(self, weighted=None, data_structure=None, sparse=None, immutable=None, data_structure = "sparse" G = self.__class__(self, name=self.name(), pos=copy(self._pos), - weighted=weighted, + weighted=weighted, hash_labels=hash_labels, data_structure=data_structure) - attributes_to_copy = ('_assoc', '_embedding', '_hash_labels') + attributes_to_copy = ('_assoc', '_embedding') for attr in attributes_to_copy: if hasattr(self, attr): copy_attr = {} diff --git a/src/sage/graphs/graph.py b/src/sage/graphs/graph.py index 9e3ea6b9731..866f0cdc033 100644 --- a/src/sage/graphs/graph.py +++ b/src/sage/graphs/graph.py @@ -573,6 +573,7 @@ class Graph(GenericGraph): - ``hash_labels`` -- boolean (default: ``None``); whether to include edge labels during hashing. This parameter defaults to ``True`` if the graph is weighted. This parameter is ignored if the graph is mutable. + Beware that trying to hash unhashable labels will raise an error. - ``vertex_labels`` -- boolean (default: ``True``); whether to allow any object as a vertex (slower), or only the integers `0,...,n-1`, where `n` @@ -1257,6 +1258,10 @@ def __init__(self, data=None, pos=None, loops=None, format=None, weighted = False self._weighted = getattr(self, '_weighted', weighted) + if hash_labels is None and hasattr(data, '_hash_labels'): + hash_labels = data._hash_labels + self._hash_labels = hash_labels + self._pos = copy(pos) if format != 'Graph' or name is not None: @@ -1270,8 +1275,6 @@ def __init__(self, data=None, pos=None, loops=None, format=None, self._backend = ib self._immutable = True - self._hash_labels = hash_labels - # Formats @doc_index("Basic methods") From ba9fcbc817193edb7e443519ba8293111d3b0866 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 18 Jan 2023 22:46:42 -0800 Subject: [PATCH 059/249] build/pkgs/cvxpy: Update to 1.3.0 --- build/pkgs/cvxpy/checksums.ini | 6 +++--- build/pkgs/cvxpy/package-version.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/pkgs/cvxpy/checksums.ini b/build/pkgs/cvxpy/checksums.ini index 0e9043f458c..128dcda1602 100644 --- a/build/pkgs/cvxpy/checksums.ini +++ b/build/pkgs/cvxpy/checksums.ini @@ -1,5 +1,5 @@ tarball=cvxpy-VERSION.tar.gz -sha1=4cb95d1844ecd10b82f944e101ceb95829ee68d9 -md5=c5115e246e45dfcb0bde69c257b90a56 -cksum=3292234281 +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/package-version.txt b/build/pkgs/cvxpy/package-version.txt index 23aa8390630..f0bb29e7638 100644 --- a/build/pkgs/cvxpy/package-version.txt +++ b/build/pkgs/cvxpy/package-version.txt @@ -1 +1 @@ -1.2.2 +1.3.0 From 75155645dd1d1514bc57be9a7174923c9a1ec803 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 18 Jan 2023 22:47:50 -0800 Subject: [PATCH 060/249] build/pkgs/osqp_python: Update to 0.6.2.post8 --- build/pkgs/osqp_python/checksums.ini | 6 +++--- build/pkgs/osqp_python/package-version.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/pkgs/osqp_python/checksums.ini b/build/pkgs/osqp_python/checksums.ini index 1fbb958ee11..750d1d8450a 100644 --- a/build/pkgs/osqp_python/checksums.ini +++ b/build/pkgs/osqp_python/checksums.ini @@ -1,5 +1,5 @@ tarball=osqp-VERSION.tar.gz -sha1=2f6493ecb34dd129531ac955abdd7ed03af8f78f -md5=2e7491f53e4825515db6db4e97d2ef45 -cksum=1539597175 +sha1=d69d05b87c03aaaf80ac0bb11e1a68746cf8c486 +md5=ae46dc55aa4ff7a2009db756f2b61d98 +cksum=2780901429 upstream_url=https://pypi.io/packages/source/o/osqp/osqp-VERSION.tar.gz diff --git a/build/pkgs/osqp_python/package-version.txt b/build/pkgs/osqp_python/package-version.txt index 8c6bbf4a781..72b079f4d76 100644 --- a/build/pkgs/osqp_python/package-version.txt +++ b/build/pkgs/osqp_python/package-version.txt @@ -1 +1 @@ -0.6.2.post5 +0.6.2.post8 From 91cbc216435076022488da4d20a26a9d160b56c2 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 18 Jan 2023 22:48:01 -0800 Subject: [PATCH 061/249] build/pkgs/ecos_python: Update to 2.0.12 --- build/pkgs/ecos_python/checksums.ini | 6 +++--- build/pkgs/ecos_python/package-version.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/pkgs/ecos_python/checksums.ini b/build/pkgs/ecos_python/checksums.ini index 1d660c0b9a5..dc6d7b9a6f1 100644 --- a/build/pkgs/ecos_python/checksums.ini +++ b/build/pkgs/ecos_python/checksums.ini @@ -1,5 +1,5 @@ tarball=ecos-VERSION.tar.gz -sha1=6d980399f0b7fe0aab243a0cc8e4578b3a7bbd2c -md5=2d8cd61259dfd47fedb0bf23ab31520a -cksum=4227060546 +sha1=7afce63aec44522052e05fa2e1c82e12fe20fd45 +md5=a76939695aa07f8ab2f01a532732f348 +cksum=2810151369 upstream_url=https://pypi.io/packages/source/e/ecos/ecos-VERSION.tar.gz diff --git a/build/pkgs/ecos_python/package-version.txt b/build/pkgs/ecos_python/package-version.txt index 0a692060f9b..280a1e3368b 100644 --- a/build/pkgs/ecos_python/package-version.txt +++ b/build/pkgs/ecos_python/package-version.txt @@ -1 +1 @@ -2.0.10 +2.0.12 From 7ff5766056af2607d9f42fc8d04cafe215379ba5 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 18 Jan 2023 22:48:14 -0800 Subject: [PATCH 062/249] build/pkgs/qdldl_python: Update to 0.1.5.post3 --- build/pkgs/qdldl_python/checksums.ini | 6 +++--- build/pkgs/qdldl_python/package-version.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/pkgs/qdldl_python/checksums.ini b/build/pkgs/qdldl_python/checksums.ini index 6a9e416028c..defd264f787 100644 --- a/build/pkgs/qdldl_python/checksums.ini +++ b/build/pkgs/qdldl_python/checksums.ini @@ -1,5 +1,5 @@ tarball=qdldl-VERSION.tar.gz -sha1=ccecff38b06eef36a38e91635464b9f357a6f198 -md5=a7ca53ba719a12e4303a1274506c55a8 -cksum=3447836333 +sha1=af76c57ca1787f5e44e42f6c9f916b84ae599f1f +md5=63d719bd8073c1661a1baa6b510b8aad +cksum=105675620 upstream_url=https://pypi.io/packages/source/q/qdldl/qdldl-VERSION.tar.gz diff --git a/build/pkgs/qdldl_python/package-version.txt b/build/pkgs/qdldl_python/package-version.txt index d5b60a259f6..a2b2442e697 100644 --- a/build/pkgs/qdldl_python/package-version.txt +++ b/build/pkgs/qdldl_python/package-version.txt @@ -1 +1 @@ -0.1.5.post2 +0.1.5.post3 From 7c87d0f381801cd590e67301dc97a09b876bb1e8 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Fri, 10 Feb 2023 15:13:11 +0900 Subject: [PATCH 063/249] Add codecov.yml to control codecov report --- .github/workflows/codecov.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/workflows/codecov.yml diff --git a/.github/workflows/codecov.yml b/.github/workflows/codecov.yml new file mode 100644 index 00000000000..69cb76019a4 --- /dev/null +++ b/.github/workflows/codecov.yml @@ -0,0 +1 @@ +comment: false From 82318995cf84164bdca86fb3b69fae117a2453b9 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Fri, 10 Feb 2023 15:45:19 +0900 Subject: [PATCH 064/249] Relocate and rename codecov.yml --- .github/workflows/codecov.yml => .codecov.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/codecov.yml => .codecov.yml (100%) diff --git a/.github/workflows/codecov.yml b/.codecov.yml similarity index 100% rename from .github/workflows/codecov.yml rename to .codecov.yml From 2cf748ad5a78bda4339f6f14c26248ed4d6b2ea8 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 13 Feb 2023 13:54:44 +0800 Subject: [PATCH 065/249] Fix conda ci on ubuntu by downgrading conda --- .github/workflows/ci-conda.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/ci-conda.yml b/.github/workflows/ci-conda.yml index bc1f1c5a634..448b0e4d45a 100644 --- a/.github/workflows/ci-conda.yml +++ b/.github/workflows/ci-conda.yml @@ -41,6 +41,13 @@ 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 From 6bbcc47baaad6e3413d0a74f3925cfc98ff9602e Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 13 Feb 2023 14:03:18 +0800 Subject: [PATCH 066/249] Update python versions --- .github/workflows/ci-conda.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-conda.yml b/.github/workflows/ci-conda.yml index 448b0e4d45a..4a3f2062873 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: From d7f497aeda3971dff6aae40d685a092972c0dc02 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Mon, 13 Feb 2023 14:09:36 +0800 Subject: [PATCH 067/249] Specify python version as string --- .github/workflows/ci-conda.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-conda.yml b/.github/workflows/ci-conda.yml index 4a3f2062873..fd5235a5aa2 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.9, 3.10, 3.11] + python: ['3.9', '3.10', '3.11'] conda-env: [environment, environment-optional] steps: From 604c9160f1ed6b9ff05260994c4d37853969666d Mon Sep 17 00:00:00 2001 From: jnash10 Date: Mon, 13 Feb 2023 17:05:25 +0530 Subject: [PATCH 068/249] added check for invalid range --- src/sage/plot/misc.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/sage/plot/misc.py b/src/sage/plot/misc.py index 37a8000f9aa..1b279b5bb5d 100644 --- a/src/sage/plot/misc.py +++ b/src/sage/plot/misc.py @@ -139,6 +139,13 @@ def setup_for_eval_on_grid(funcs, else: vars, free_vars = unify_arguments(funcs) + #check for invalid range entered by user + if (ranges[0][-2]>ranges[0][-1]): + raise ValueError("xrange not correctly defined: xmin(={}) > xmax(={})".format(ranges[0][-2], ranges[0][-1])) + + if (ranges[1][-2]>ranges[1][-1]): + raise ValueError("xrange not correctly defined: ymin(={}) > ymax(={})".format(ranges[1][-2], ranges[1][-1])) + # pad the variables if we don't have enough nargs = len(ranges) if len(vars) < nargs: From f27866a8a6cd11d0cb0fa753f3331fcabcabf018 Mon Sep 17 00:00:00 2001 From: Travis Scrimshaw Date: Mon, 13 Feb 2023 21:43:51 +0900 Subject: [PATCH 069/249] Made the key polynomials know their degree. --- src/sage/combinat/key_polynomial.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/sage/combinat/key_polynomial.py b/src/sage/combinat/key_polynomial.py index be4d5aa8c04..dbc50ee1844 100644 --- a/src/sage/combinat/key_polynomial.py +++ b/src/sage/combinat/key_polynomial.py @@ -29,6 +29,7 @@ # **************************************************************************** from sage.categories.graded_algebras_with_basis import GradedAlgebrasWithBasis +from sage.misc.cachefunc import cached_method from sage.combinat.integer_vector import IntegerVectors from sage.combinat.free_module import CombinatorialFreeModule from sage.combinat.permutation import Permutation @@ -558,6 +559,7 @@ def __getitem__(self, c): c = C(c) return self._monomial(c) + @cached_method def one_basis(self): r""" Return the basis element indexing the identity. @@ -576,6 +578,22 @@ def one_basis(self): return self._indices([0] * self._k) return self._indices([]) + def degree_on_basis(self, alpha): + """ + Return the degree of the basis element indexed by ``alpha``. + + EXAMPLES:: + + sage: k = KeyPolynomials(QQ) + sage: k.degree_on_basis([2,1,0,2]) + 5 + + sage: k = KeyPolynomials(QQ, 5) + sage: k.degree_on_basis([2,1,0,2,0]) + 5 + """ + return ZZ(sum(alpha)) + def polynomial_ring(self): r""" Return the polynomial ring associated to ``self``. From 858a46fd605454ddbd5460cf3d49fa9b94117a3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Chapoton?= Date: Mon, 13 Feb 2023 15:08:54 +0100 Subject: [PATCH 070/249] fix pep E303 in modular/ and algebras/ --- src/sage/algebras/splitting_algebra.py | 54 ++++++++----------- src/sage/modular/abvar/cuspidal_subgroup.py | 6 +-- src/sage/modular/abvar/morphism.py | 21 ++++---- .../modular/arithgroup/arithgroup_perm.py | 5 +- .../modular/arithgroup/congroup_gamma0.py | 8 +-- src/sage/modular/local_comp/local_comp.py | 5 +- src/sage/modular/modform/ambient_R.py | 1 - .../modular/modform/cuspidal_submodule.py | 15 +++--- src/sage/modular/modform/eis_series.py | 1 - src/sage/modular/modform/numerical.py | 2 - src/sage/modular/modform/ring.py | 4 +- src/sage/modular/modform/vm_basis.py | 10 ++-- .../modform_hecketriangle/abstract_space.py | 2 - .../modform_hecketriangle/constructor.py | 1 - src/sage/modular/modsym/ambient.py | 13 +---- src/sage/modular/modsym/subspace.py | 21 +++----- src/sage/modular/modsym/tests.py | 7 ++- src/sage/modular/overconvergent/genus0.py | 14 ++--- src/sage/modular/pollack_stevens/modsym.py | 13 +++-- 19 files changed, 80 insertions(+), 123 deletions(-) diff --git a/src/sage/algebras/splitting_algebra.py b/src/sage/algebras/splitting_algebra.py index e19a2bb6d9a..2ca3881bbcf 100644 --- a/src/sage/algebras/splitting_algebra.py +++ b/src/sage/algebras/splitting_algebra.py @@ -318,15 +318,14 @@ def __init__(self, monic_polynomial, names='X', iterate=True, warning=True): self._splitting_roots = [self(root) for root in self._splitting_roots] verbose("splitting_roots: %s embedded" % (self._splitting_roots)) - - # ------------------------------------------------------------------------------------------- + # -------------------------------------------------------------------- # try to calculate inverses of the roots. This is possible if the original polynomial # has an invertible constant term. For example let cf = [-w, v,-u, 1] that is # p = h^3 -u*h^2 + v*h -w, than u = x + y + z, v = x*y + x*z + y*z, w = x*y*z. If # w is invertible then 1/x = (v -(u-x)*x)/w, 1/y = (v -(u-y)*y)/w, 1/z = (v -(u-z)*z)/w - # ------------------------------------------------------------------------------------------- + # ----------------------------------------------------------------- # first find the polynomial with invertible constant coefficient - # ------------------------------------------------------------------------------------------- + # ----------------------------------------------------------------- cf0_inv = None for cf in self._coefficients_list: cf0 = cf[0] @@ -338,11 +337,10 @@ def __init__(self, monic_polynomial, names='X', iterate=True, warning=True): except NotImplementedError: verbose("constant coefficient: %s not invertibe" %(cf0)) - - # ---------------------------------------------------------------------------------- - # assuming that cf splits into linear factors over self and the _splitting_roots - # are its roots we can calculate inverses - # ---------------------------------------------------------------------------------- + # ------------------------------------------------------------------ + # assuming that cf splits into linear factors over self + # and the _splitting_roots are its roots we can calculate inverses + # ------------------------------------------------------------------ if cf0_inv is not None: deg_cf = len(cf)-1 pf = P(cf) @@ -362,12 +360,11 @@ def __init__(self, monic_polynomial, names='X', iterate=True, warning=True): self._invertible_elements.update({v: k}) return - - ####################################################################################################################### - # --------------------------------------------------------------------------------------------------------------------- + ######################################################################## + # ---------------------------------------------------------------------- # overloaded inherited methods - # --------------------------------------------------------------------------------------------------------------------- - ####################################################################################################################### + # ---------------------------------------------------------------------- + ######################################################################## def __reduce__(self): r""" Used in pickling. @@ -397,7 +394,6 @@ def __reduce__(self): defining_polynomial = par_pol(definig_coefficients) return self.__class__, (defining_polynomial, self._root_names, self._iterate, False) - def _repr_(self): r""" Return a string representation of ``self``. @@ -514,20 +510,17 @@ def hom(self, im_gens, codomain=None, check=True, base_map=None): lift = self.lifting_map() return hom_from_cover*lift - - - ####################################################################################################################### - # --------------------------------------------------------------------------------------------------------------------- + ################################################################### + # ----------------------------------------------------------------- # local methods - # --------------------------------------------------------------------------------------------------------------------- - ####################################################################################################################### + # ----------------------------------------------------------------- + ################################################################### - - ####################################################################################################################### - # --------------------------------------------------------------------------------------------------------------------- + ################################################################### + # ----------------------------------------------------------------- # global methods - # --------------------------------------------------------------------------------------------------------------------- - ####################################################################################################################### + # ----------------------------------------------------------------- + ################################################################### def is_completely_split(self): r""" @@ -727,7 +720,6 @@ def create_roots(monic_polynomial, warning=True): roots = [(r, 1) for r in ext_ring.splitting_roots()] return roots - deg_pol = monic_polynomial.degree() if not root_names: from sage.structure.category_object import normalize_names @@ -740,12 +732,12 @@ def create_roots(monic_polynomial, warning=True): pass if not root_list: - # ------------------------------------------------------------------------------ + # -------------------------------------------------------------- # no roots found: find roots in an appropriate extension ring - # ------------------------------------------------------------------------------ + # -------------------------------------------------------------- verbose("no roots in base_ring") - if len(name_list) > deg_pol -1: - name_list = [name_list[i] for i in range(deg_pol-1)] + if len(name_list) > deg_pol - 1: + name_list = [name_list[i] for i in range(deg_pol - 1)] roots = create_roots(monic_polynomial, warning=warning) else: diff --git a/src/sage/modular/abvar/cuspidal_subgroup.py b/src/sage/modular/abvar/cuspidal_subgroup.py index 136f6cf23e4..2113272d2c4 100644 --- a/src/sage/modular/abvar/cuspidal_subgroup.py +++ b/src/sage/modular/abvar/cuspidal_subgroup.py @@ -211,7 +211,6 @@ def _repr_(self): """ return "Cuspidal subgroup %sover QQ of %s"%(self._invariants_repr(), self.abelian_variety()) - def lattice(self): """ Returned cached tuple of vectors that define elements of the @@ -219,10 +218,8 @@ def lattice(self): OUTPUT: - - ``tuple`` - cached - EXAMPLES:: sage: J = J0(27) @@ -265,8 +262,7 @@ def _repr_(self): sage: G._repr_() 'Finite subgroup with invariants [3] over QQ of Abelian variety J0(27) of dimension 1' """ - return "Subgroup generated by differences of rational cusps %sover QQ of %s"%(self._invariants_repr(), self.abelian_variety()) - + return "Subgroup generated by differences of rational cusps %sover QQ of %s" % (self._invariants_repr(), self.abelian_variety()) def lattice(self): """ diff --git a/src/sage/modular/abvar/morphism.py b/src/sage/modular/abvar/morphism.py index a57f4d0b66c..f0f3c065577 100644 --- a/src/sage/modular/abvar/morphism.py +++ b/src/sage/modular/abvar/morphism.py @@ -48,6 +48,7 @@ from .finite_subgroup import TorsionPoint + class Morphism_abstract(sage.modules.matrix_morphism.MatrixMorphism_abstract): """ A morphism between modular abelian varieties. @@ -184,7 +185,6 @@ def cokernel(self): self.__cokernel = C return C - def kernel(self): """ Return the kernel of this morphism. @@ -246,7 +246,6 @@ def kernel(self): return K, abvar - def factor_out_component_group(self): r""" View self as a morphism `f:A \to B`. Then `\ker(f)` @@ -286,7 +285,7 @@ def factor_out_component_group(self): L = A.image() # Saturate the image of the matrix corresponding to self. Lsat = L.saturation() - if L == Lsat: # easy case + if L == Lsat: # easy case self.__factor_out = self return self # Now find a matrix whose rows map exactly onto the @@ -308,9 +307,9 @@ def factor_out_component_group(self): # R/L' = (M+L')/L' = M/(L'/\M) = M/Lsat # which is torsion free! - Q = self.codomain() - M = Q.lattice() - one_over_n = ZZ(1)/n + Q = self.codomain() + M = Q.lattice() + one_over_n = ZZ.one() / n Lprime = (one_over_n * self.matrix() * M.basis_matrix()).row_module(ZZ) # This R is a lattice in the ambient space for B. @@ -546,7 +545,7 @@ def _image_of_finite_subgroup(self, G): B = G._relative_basis_matrix() * self.restrict_domain(G.abelian_variety()).matrix() * self.codomain().lattice().basis_matrix() lattice = B.row_module(ZZ) return self.codomain().finite_subgroup(lattice, - field_of_definition=G.field_of_definition()) + field_of_definition=G.field_of_definition()) def _image_of_abvar(self, A): """ @@ -654,11 +653,12 @@ def restrict_domain(self, sub): L = self.domain().lattice() B = sub.lattice().basis() - ims = sum([ (L(b)*self.matrix()).list() for b in B], []) + ims = sum(((L(b) * self.matrix()).list() for b in B), []) MS = matrix_space.MatrixSpace(self.base_ring(), len(B), self.codomain().rank()) H = sub.Hom(self.codomain(), self.category_for()) return H(MS(ims)) + class DegeneracyMap(Morphism): def __init__(self, parent, A, t, side="left"): """ @@ -714,7 +714,8 @@ def _repr_(self): sage: J0(22).degeneracy_map(44)._repr_() 'Degeneracy map from Abelian variety J0(22) of dimension 2 to Abelian variety J0(44) of dimension 4 defined by [1]' """ - return "Degeneracy map from %s to %s defined by %s"%(self.domain(), self.codomain(), self._t) + return "Degeneracy map from %s to %s defined by %s" % (self.domain(), self.codomain(), self._t) + class HeckeOperator(Morphism): """ @@ -761,7 +762,7 @@ def _repr_(self): sage: J.hecke_operator(2)._repr_() 'Hecke operator T_2 on Abelian variety J0(37) of dimension 2' """ - return "Hecke operator T_%s on %s"%(self.__n, self.__abvar) + return "Hecke operator T_%s on %s" % (self.__n, self.__abvar) def index(self): """ diff --git a/src/sage/modular/arithgroup/arithgroup_perm.py b/src/sage/modular/arithgroup/arithgroup_perm.py index 34a87cca043..8d2c2f1a19e 100644 --- a/src/sage/modular/arithgroup/arithgroup_perm.py +++ b/src/sage/modular/arithgroup/arithgroup_perm.py @@ -1216,11 +1216,10 @@ def coset_graph(self, Looped multi-digraph on 2 vertices """ from sage.graphs.digraph import DiGraph - res = DiGraph(multiedges=True,loops=True) + res = DiGraph(multiedges=True, loops=True) res.add_vertices(list(range(self.index()))) - - if right_cosets: # invert the permutations + if right_cosets: # invert the permutations S2 = [None]*self.index() S3 = [None]*self.index() L = [None]*self.index() diff --git a/src/sage/modular/arithgroup/congroup_gamma0.py b/src/sage/modular/arithgroup/congroup_gamma0.py index 5a4b31bce86..ab38f518bb9 100644 --- a/src/sage/modular/arithgroup/congroup_gamma0.py +++ b/src/sage/modular/arithgroup/congroup_gamma0.py @@ -104,7 +104,6 @@ class Gamma0_class(GammaH_class): """ - def __init__(self, level): r""" The congruence subgroup `\Gamma_0(N)`. @@ -482,13 +481,14 @@ def ncusps(self): [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2] """ n = self.level() - return sum([euler_phi(gcd(d,n//d)) for d in n.divisors()]) - + return sum(euler_phi(gcd(d, n // d)) for d in n.divisors()) def nu2(self): r""" Return the number of elliptic points of order 2 for this congruence - subgroup `\Gamma_0(N)`. The number of these is given by a standard formula: + subgroup `\Gamma_0(N)`. + + The number of these is given by a standard formula: 0 if `N` is divisible by 4 or any prime congruent to -1 mod 4, and otherwise `2^d` where d is the number of odd primes dividing `N`. diff --git a/src/sage/modular/local_comp/local_comp.py b/src/sage/modular/local_comp/local_comp.py index 693843b1afe..4a8ec0195f5 100644 --- a/src/sage/modular/local_comp/local_comp.py +++ b/src/sage/modular/local_comp/local_comp.py @@ -885,9 +885,8 @@ def characters(self): G = G.base_extend(F) c1q2, c2q2 = flatten([[x]*e for x,e in theta_poly.roots(G.base_ring())]) - - pairA = [ [c1q, c1q2], [c2q,c2q2] ] - pairB = [ [c1q, c2q2], [c2q, c1q2] ] + pairA = [[c1q, c1q2], [c2q, c2q2]] + pairB = [[c1q, c2q2], [c2q, c1q2]] A_fail = 0 B_fail = 0 diff --git a/src/sage/modular/modform/ambient_R.py b/src/sage/modular/modform/ambient_R.py index 91e3f97b603..3e1cbbf158d 100644 --- a/src/sage/modular/modform/ambient_R.py +++ b/src/sage/modular/modform/ambient_R.py @@ -147,7 +147,6 @@ def cuspidal_submodule(self): """ return CuspidalSubmodule_R(self) - def change_ring(self, R): r""" Return this modular forms space with the base ring changed to the ring R. diff --git a/src/sage/modular/modform/cuspidal_submodule.py b/src/sage/modular/modform/cuspidal_submodule.py index 4b123ec8dc9..a39a66e44ee 100644 --- a/src/sage/modular/modform/cuspidal_submodule.py +++ b/src/sage/modular/modform/cuspidal_submodule.py @@ -174,15 +174,16 @@ def modular_symbols(self, sign=0): A = self.ambient_module() return A.modular_symbols(sign).cuspidal_submodule() - def change_ring(self, R): r""" - Change the base ring of self to R, when this makes sense. This differs - from :meth:`~sage.modular.modform.space.ModularFormsSpace.base_extend` - in that there may not be a canonical map from self to the new space, as - in the first example below. If this space has a character then this may - fail when the character cannot be defined over R, as in the second - example. + Change the base ring of ``self`` to ``R``, when this makes sense. + + This differs from + :meth:`~sage.modular.modform.space.ModularFormsSpace.base_extend` + in that there may not be a canonical map from ``self`` to the new + space, as in the first example below. If this space has a + character then this may fail when the character cannot be + defined over ``R``, as in the second example. EXAMPLES:: diff --git a/src/sage/modular/modform/eis_series.py b/src/sage/modular/modform/eis_series.py index 351577db16e..6b2e6d187ea 100644 --- a/src/sage/modular/modform/eis_series.py +++ b/src/sage/modular/modform/eis_series.py @@ -243,7 +243,6 @@ def __find_eisen_chars(character, k): V.insert(0, (chi, chi_inv, t)) return V - eps = character if eps(-1) != (-1)**k: return [] diff --git a/src/sage/modular/modform/numerical.py b/src/sage/modular/modform/numerical.py index 1f7e8decd55..ad52403f471 100644 --- a/src/sage/modular/modform/numerical.py +++ b/src/sage/modular/modform/numerical.py @@ -287,8 +287,6 @@ def _easy_vector(self): if E.nrows() == 0: return x - - def best_row(M): """ Find the best row among rows of M, i.e. the row diff --git a/src/sage/modular/modform/ring.py b/src/sage/modular/modform/ring.py index 3a56864da97..f98a0b0adf8 100644 --- a/src/sage/modular/modform/ring.py +++ b/src/sage/modular/modform/ring.py @@ -803,7 +803,6 @@ def generators(self, maxweight=8, prec=10, start_gens=[], start_weight=2): return ret - def gen_forms(self, maxweight=8, start_gens=[], start_weight=2): r""" Return a list of modular forms generating this ring (as an algebra over @@ -1070,9 +1069,8 @@ def cuspidal_ideal_generators(self, maxweight=8, prec=None): k = 2 G = [] - while k <= maxweight: - t = verbose("Looking for cusp generators in weight %s" % k) + t = verbose(f"Looking for cusp generators in weight {k}") kprec = self.modular_forms_of_weight(k).sturm_bound() diff --git a/src/sage/modular/modform/vm_basis.py b/src/sage/modular/modform/vm_basis.py index 4ac4f8c36a0..559c36828e9 100644 --- a/src/sage/modular/modform/vm_basis.py +++ b/src/sage/modular/modform/vm_basis.py @@ -200,21 +200,21 @@ def victor_miller_basis(k, prec=10, cusp_only=False, var='q'): Fprod._unsafe_mutate_truncate(prec) Dprod._unsafe_mutate_truncate(prec) - - P = PowerSeriesRing(ZZ,var) - if cusp_only : + P = PowerSeriesRing(ZZ, var) + if cusp_only: for i in range(1,n+1) : for j in range(1, i) : ls[j] = ls[j] - ls[j][i]*ls[i] return Sequence([P(l.list()).add_bigoh(prec) for l in ls[1:]],cr=True) else : - for i in range(1,n+1) : - for j in range(i) : + for i in range(1,n+1): + for j in range(i): ls[j] = ls[j] - ls[j][i]*ls[i] return Sequence([P(l.list()).add_bigoh(prec) for l in ls], cr=True) + def _delta_poly(prec=10): """ Return the q-expansion of Delta as a FLINT polynomial. Used internally by diff --git a/src/sage/modular/modform_hecketriangle/abstract_space.py b/src/sage/modular/modform_hecketriangle/abstract_space.py index efd12339000..8ecd0974d39 100644 --- a/src/sage/modular/modform_hecketriangle/abstract_space.py +++ b/src/sage/modular/modform_hecketriangle/abstract_space.py @@ -2070,7 +2070,6 @@ def construct_quasi_form(self, laurent_series, order_1=ZZ(0), check=True, ration return el - @cached_method def q_basis(self, m=None, min_exp=0, order_1=ZZ(0)): r""" @@ -2363,7 +2362,6 @@ def rationalize_coefficient(coeff, m): return laurent_series - # DEFAULT METHODS (should be overwritten in concrete classes) def _an_element_(self): diff --git a/src/sage/modular/modform_hecketriangle/constructor.py b/src/sage/modular/modform_hecketriangle/constructor.py index 7d182bb2147..15ddd6e4c9d 100644 --- a/src/sage/modular/modform_hecketriangle/constructor.py +++ b/src/sage/modular/modform_hecketriangle/constructor.py @@ -159,7 +159,6 @@ def rational_type(f, n=ZZ(3), base_ring=ZZ): # elem, homo, k, ep, analytic_type return (False, False, None, None, None) - # Determine whether f is homogeneous if (len(ep_num) == 1 and dhom(hom_num).is_homogeneous()): homo = True diff --git a/src/sage/modular/modsym/ambient.py b/src/sage/modular/modsym/ambient.py index 627f1c567e7..37b1c46a06c 100644 --- a/src/sage/modular/modsym/ambient.py +++ b/src/sage/modular/modsym/ambient.py @@ -345,7 +345,6 @@ def manin_gens_to_basis(self): self.compute_presentation() return self._manin_gens_to_basis - ##################################################################### # Coercion ##################################################################### @@ -479,8 +478,7 @@ def _element_constructor_(self, x, computed_with_hecke=False): else: return self.modular_symbol(x) - raise TypeError("No coercion of %s into %s defined."%(x, self)) - + raise TypeError("No coercion of %s into %s defined." % (x, self)) def change_ring(self, R): r""" @@ -1021,7 +1019,6 @@ def _compute_hecke_matrix_prime(self, p, rows=None): self._hecke_matrices[(p,rows)] = Tp return Tp - def __heilbronn_operator(self, M, H, t=1): r""" Return the matrix function to the space `M` defined by `H`, `t`. @@ -1964,7 +1961,6 @@ def modular_symbols_of_sign(self, sign): return self return modsym.ModularSymbols(self.group(), self.weight(), sign=sign, base_ring=self.base_ring()) - def modular_symbols_of_weight(self, k): r""" Return a space of modular symbols with the same defining @@ -2615,7 +2611,6 @@ def __init__(self, N, k, sign, F, custom_init=None, category=None): sign=sign, base_ring=F, custom_init=custom_init, category=category) - def _dimension_formula(self): r""" Return the dimension of this space using the formula. @@ -2635,7 +2630,7 @@ def _dimension_formula(self): if k % 2: return 0 elif k > 2: - return 2*self.group().dimension_cusp_forms(k) + self.group().ncusps() + return 2 * self.group().dimension_cusp_forms(k) + self.group().ncusps() else: return 2*self.group().dimension_cusp_forms(k) + self.group().ncusps() - 1 else: @@ -2677,7 +2672,6 @@ def _cuspidal_submodule_dimension_formula(self): else: raise NotImplementedError - def _degeneracy_raising_matrix_1(self, M): r""" Return the matrix of the degeneracy map (with t = 1) to level @@ -2739,7 +2733,6 @@ def _degeneracy_raising_matrix_1(self, M): A = MS(rows) return A - def _cuspidal_new_submodule_dimension_formula(self): r""" Return the dimension of the new cuspidal subspace, via the formula. @@ -2982,7 +2975,6 @@ def _cuspidal_new_submodule_dimension_formula(self): else: raise NotImplementedError - def _compute_hecke_matrix_prime(self, p, rows=None): r""" Compute and return the matrix of the `p`-th Hecke operator. @@ -3282,7 +3274,6 @@ def _cuspidal_new_submodule_dimension_formula(self): m = 1 return m * self.group().dimension_new_cusp_forms(self.weight()) - def _compute_hecke_matrix_prime_power(self, p, r): r""" Compute and return the matrix of the Hecke operator `T(p^r)`. diff --git a/src/sage/modular/modsym/subspace.py b/src/sage/modular/modsym/subspace.py index c1f70471c0f..3c496534955 100644 --- a/src/sage/modular/modsym/subspace.py +++ b/src/sage/modular/modsym/subspace.py @@ -1,8 +1,7 @@ """ Subspace of ambient spaces of modular symbols """ - -#***************************************************************************** +# **************************************************************************** # Sage: Open Source Mathematical Software # # Copyright (C) 2005 William Stein @@ -16,18 +15,14 @@ # # The full text of the GPL is available at: # -# http://www.gnu.org/licenses/ -#***************************************************************************** - +# https://www.gnu.org/licenses/ +# **************************************************************************** import sage.modular.hecke.all as hecke - import sage.structure.factorization - import sage.modular.modsym.space - class ModularSymbolsSubspace(sage.modular.modsym.space.ModularSymbolsSpace, hecke.HeckeSubmodule): """ Subspace of ambient space of modular symbols @@ -175,10 +170,11 @@ def cuspidal_submodule(self): self.__cuspidal_submodule = S.intersection(self) return self.__cuspidal_submodule - def dual_star_involution_matrix(self): """ - Return the matrix of the dual star involution, which is induced by + Return the matrix of the dual star involution. + + This involution is induced by complex conjugation on the linear dual of modular symbols. EXAMPLES:: @@ -363,21 +359,18 @@ def is_eisenstein(self): self.__is_eisenstein = self.is_submodule(C) return self.__is_eisenstein - def _compute_sign_subspace(self, sign, compute_dual=True): """ - Return the subspace of self that is fixed under the star + Return the subspace of ``self`` that is fixed under the star involution. INPUT: - - ``sign`` - int (either -1 or +1) - ``compute_dual`` - bool (default: True) also compute dual subspace. This are useful for many algorithms. - OUTPUT: subspace of modular symbols EXAMPLES:: diff --git a/src/sage/modular/modsym/tests.py b/src/sage/modular/modsym/tests.py index 4fd47dda376..cb9e19cc8b1 100644 --- a/src/sage/modular/modsym/tests.py +++ b/src/sage/modular/modsym/tests.py @@ -310,12 +310,11 @@ def test_csns_nscs(self): M = self._modular_symbols_space() V1 = M.cuspidal_submodule().new_submodule() V2 = M.new_submodule().cuspidal_submodule() - assert V1 == V2, "Test failed for M=\"%s\", where the new cuspidal and cuspidal new spaces are computed differently."%M + assert V1 == V2, "Test failed for M=\"%s\", where the new cuspidal and cuspidal new spaces are computed differently." % M d = M._cuspidal_new_submodule_dimension_formula() assert d == V1.dimension(), \ - "Test failed for M=\"%s\", where computed dimension is %s but formula dimension is %s."%( - M, V1.dimension(), d) - + "Test failed for M=\"%s\", where computed dimension is %s but formula dimension is %s." % ( + M, V1.dimension(), d) def test_decomposition(self): """ diff --git a/src/sage/modular/overconvergent/genus0.py b/src/sage/modular/overconvergent/genus0.py index 972ef7eed45..09f39d33785 100644 --- a/src/sage/modular/overconvergent/genus0.py +++ b/src/sage/modular/overconvergent/genus0.py @@ -851,11 +851,10 @@ def coordinate_vector(self, x): return self.base_extend(x.base_ring()).coordinate_vector(x) if x.parent() != self: - x = self(x) + x = self(x) return vector(self.base_ring(), x.gexp().padded_list(x.gexp().prec())) - ########################################################## # Pointless routines required by parent class definition # ########################################################## @@ -926,13 +925,11 @@ def hecke_operator(self, f, m): else: return hecke_operator_on_qexp(f, m, self.weight().k(), eps=self.weight().chi()) - - def _convert_to_basis(self, qexp): r""" Given a `q`-expansion, converts it to a vector in the basis of this space, to the maximum possible precision (which is the minimum of the - `q`-adic precision of the `q`-expansion and the precision of self). + `q`-adic precision of the `q`-expansion and the precision of ``self``). EXAMPLES:: @@ -1014,7 +1011,6 @@ def hecke_matrix(self, m, n, use_recurrence=False, exact_arith=False): raise ValueError("n is too large computing initial conds: can't work out u[%s,%s]" % (i,j)) mat[i,j] = 0 - else: l = self._convert_to_basis(self.hecke_operator(self._basis_cache[j], m)) for i in range(self.prime()): @@ -1210,7 +1206,6 @@ def recurrence_matrix(self, use_smithline=True): self._cached_recurrence_matrix.set_immutable() return self._cached_recurrence_matrix - def _discover_recurrence_matrix(self, use_smithline=True): r""" Does hard work of calculating recurrence matrix, which is cached to avoid doing this every time. @@ -1329,10 +1324,11 @@ def __init__(self, parent, gexp=None, qexp=None): self._eigenvalue = None self._slope = None - def _add_(self, other): r""" - Add self to other (where other has the same parent as self). + Add ``self`` to ``other``. + + Here ``other`` has the same parent as ``self``. EXAMPLES:: diff --git a/src/sage/modular/pollack_stevens/modsym.py b/src/sage/modular/pollack_stevens/modsym.py index 0d0f064445c..dadc9df4617 100644 --- a/src/sage/modular/pollack_stevens/modsym.py +++ b/src/sage/modular/pollack_stevens/modsym.py @@ -1439,7 +1439,6 @@ def _find_extraprec(self, p, M, alpha, check): newM += -s return newM, eisenloss, q, aq - def p_stabilize_and_lift(self, p, M, alpha=None, ap=None, new_base_ring=None, ordinary=True, algorithm='greenberg', eigensymbol=False, @@ -1531,7 +1530,7 @@ def reduce_precision(self, M): def precision_relative(self): r""" - Return the number of moments of each value of self + Return the number of moments of each value of ``self``. EXAMPLES:: @@ -1541,14 +1540,14 @@ def precision_relative(self): sage: f.precision_relative() 1 """ - return min([len(a._moments) for a in self._map]) - + return min(len(a._moments) for a in self._map) def specialize(self, new_base_ring=None): r""" - Return the underlying classical symbol of weight `k` - i.e., - applies the canonical map `D_k \to Sym^k` to all values of - self. + Return the underlying classical symbol of weight `k`. + + Namely, this applies the canonical map `D_k \to Sym^k` to all + values of ``self``. EXAMPLES:: From b6af6e7aa20b4d8119772af0fe88001ef3548cc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Chapoton?= Date: Mon, 13 Feb 2023 21:33:08 +0100 Subject: [PATCH 071/249] fixing most of pycodestyle E271 --- src/sage/algebras/fusion_rings/f_matrix.py | 4 +--- src/sage/categories/function_fields.py | 2 +- src/sage/coding/information_set_decoder.py | 10 ++++----- src/sage/combinat/matrices/hadamard_matrix.py | 4 ++-- src/sage/combinat/t_sequences.py | 2 +- src/sage/crypto/mq/sr.py | 4 ++-- src/sage/databases/knotinfo_db.py | 6 ++--- src/sage/games/quantumino.py | 4 ++-- src/sage/geometry/cone.py | 5 ++--- .../hyperbolic_space/hyperbolic_isometry.py | 2 +- src/sage/geometry/lattice_polytope.py | 4 ++-- src/sage/geometry/polyhedron/base5.py | 22 +++++++++++-------- src/sage/geometry/ribbon_graph.py | 12 +++++----- .../parametrized_surface3d.py | 14 +++++------- src/sage/graphs/generic_graph.py | 4 ++-- src/sage/groups/cubic_braid.py | 17 ++++++-------- src/sage/groups/perm_gps/cubegroup.py | 16 +++++++------- src/sage/interacts/library.py | 2 +- src/sage/interfaces/maxima_abstract.py | 18 +++++++-------- src/sage/interfaces/tides.py | 7 +----- src/sage/knots/knotinfo.py | 18 +++++++-------- src/sage/knots/link.py | 12 +++++----- .../differentiable/affine_connection.py | 6 ++--- .../manifolds/differentiable/vectorfield.py | 4 ++-- src/sage/modular/hecke/hecke_operator.py | 11 ++++------ src/sage/modular/overconvergent/all.py | 2 +- src/sage/modules/free_module.py | 2 +- .../numerical/interactive_simplex_method.py | 2 +- src/sage/quadratic_forms/genera/genus.py | 4 ++-- .../quadratic_form__ternary_Tornaria.py | 5 ++--- src/sage/sets/non_negative_integers.py | 2 +- src/sage/symbolic/units.py | 2 +- .../tensor/modules/tensor_with_indices.py | 7 +++--- 33 files changed, 110 insertions(+), 126 deletions(-) diff --git a/src/sage/algebras/fusion_rings/f_matrix.py b/src/sage/algebras/fusion_rings/f_matrix.py index 82b5d764fa6..734d9cffa24 100644 --- a/src/sage/algebras/fusion_rings/f_matrix.py +++ b/src/sage/algebras/fusion_rings/f_matrix.py @@ -10,12 +10,10 @@ # Distributed under the terms of the GNU General Public License (GPL) # https://www.gnu.org/licenses/ # **************************************************************************** - - from copy import deepcopy from ctypes import cast, py_object from itertools import product, zip_longest -from multiprocessing import Pool, cpu_count, set_start_method, shared_memory +from multiprocessing import Pool, cpu_count, set_start_method, shared_memory import numpy as np from os import getpid, remove import pickle diff --git a/src/sage/categories/function_fields.py b/src/sage/categories/function_fields.py index 6c30067e53f..4536973233d 100644 --- a/src/sage/categories/function_fields.py +++ b/src/sage/categories/function_fields.py @@ -65,7 +65,7 @@ def _call_(self, x): try: return x.function_field() except AttributeError: - raise TypeError("unable to canonically associate a function field to %s"%x) + raise TypeError("unable to canonically associate a function field to %s" % x) class ParentMethods: pass diff --git a/src/sage/coding/information_set_decoder.py b/src/sage/coding/information_set_decoder.py index a2cbf94fc5e..85ac6923849 100644 --- a/src/sage/coding/information_set_decoder.py +++ b/src/sage/coding/information_set_decoder.py @@ -475,16 +475,16 @@ def decode(self, r): # I was not an information set continue Gt = Gi_inv * G - #step 2. + # step 2. y = r - vector([r[i] for i in I]) * Gt g = Gt.rows() - #step 3. - for pi in range(p+1): + # step 3. + for pi in range(p + 1): for A in itertools.combinations(range(k), pi): for m in itertools.product(Fstar, repeat=pi): - e = y - sum(m[i]*g[A[i]] for i in range(pi)) + e = y - sum(m[i] * g[A[i]] for i in range(pi)) errs = e.hamming_weight() - if errs >= tau[0] and errs <= tau[1]: + if tau[0] <= errs <= tau[1]: return r - e def calibrate(self): diff --git a/src/sage/combinat/matrices/hadamard_matrix.py b/src/sage/combinat/matrices/hadamard_matrix.py index 91f73d29101..3f97f532113 100644 --- a/src/sage/combinat/matrices/hadamard_matrix.py +++ b/src/sage/combinat/matrices/hadamard_matrix.py @@ -389,9 +389,9 @@ def williamson_hadamard_matrix_smallcases(n, existence=False, check=True): ... ValueError: The Williamson type Hadamard matrix of order 100 is not yet implemented. """ - assert n%4 == 0 + assert n % 4 == 0 - if not williamson_type_quadruples_smallcases(n//4, existence=True): + if not williamson_type_quadruples_smallcases(n // 4, existence=True): if existence: return False raise ValueError("The Williamson type Hadamard matrix of order %s is not yet implemented." % n) diff --git a/src/sage/combinat/t_sequences.py b/src/sage/combinat/t_sequences.py index 883d55c87bd..b86b8a1ef27 100644 --- a/src/sage/combinat/t_sequences.py +++ b/src/sage/combinat/t_sequences.py @@ -44,7 +44,7 @@ from sage.structure.sequence import Sequence -def _nonperiodic_autocorrelation(sequences, j): +def _nonperiodic_autocorrelation(sequences, j): r""" Compute the nonperiodic autocorrelation of a familiy of sequences. diff --git a/src/sage/crypto/mq/sr.py b/src/sage/crypto/mq/sr.py index 81ae146e204..0860c58ebaa 100644 --- a/src/sage/crypto/mq/sr.py +++ b/src/sage/crypto/mq/sr.py @@ -876,11 +876,11 @@ def sbox(self, inversion_only=False): if not inversion_only: with AllowZeroInversionsContext(self): S = [self.sub_byte(elem) for elem in sorted(k)] - return SBox(S) + return SBox(S) else: e = self.e S = [elem ** (2**e - 2) for elem in sorted(k)] - return SBox(S) + return SBox(S) def shift_rows(self, d): r""" diff --git a/src/sage/databases/knotinfo_db.py b/src/sage/databases/knotinfo_db.py index d70e6be6bac..29786ee56b2 100644 --- a/src/sage/databases/knotinfo_db.py +++ b/src/sage/databases/knotinfo_db.py @@ -596,10 +596,10 @@ def _create_data_sobj(self, sobj_path=None): for col in cols: val_list = [] - if col.column_type() != col.types.OnlyLinks: - for i in range(1 , len_knots): + if col.column_type() != col.types.OnlyLinks: + for i in range(1, len_knots): if col.name == self._names_column: - row_dict[self._knot_prefix + knot_list[i][col.name]] = [i - 1 , 1] + row_dict[self._knot_prefix + knot_list[i][col.name]] = [i - 1, 1] val_list.append(knot_list[i][col.name]) diff --git a/src/sage/games/quantumino.py b/src/sage/games/quantumino.py index dd52254bef7..98332762613 100644 --- a/src/sage/games/quantumino.py +++ b/src/sage/games/quantumino.py @@ -413,7 +413,7 @@ class QuantuminoSolver(SageObject): Quantumino solver for the box (5, 4, 4) Aside pentamino number: 12 """ - def __init__(self, aside, box=(5,8,2)): + def __init__(self, aside, box=(5, 8, 2)): r""" Constructor. @@ -424,7 +424,7 @@ def __init__(self, aside, box=(5,8,2)): Quantumino solver for the box (5, 8, 2) Aside pentamino number: 9 """ - if not 0 <= aside < 17: + if not(0 <= aside < 17): raise ValueError("aside (=%s) must be between 0 and 16" % aside) self._aside = aside self._box = box diff --git a/src/sage/geometry/cone.py b/src/sage/geometry/cone.py index 3d9cb0766fc..cf74a7ecac6 100644 --- a/src/sage/geometry/cone.py +++ b/src/sage/geometry/cone.py @@ -6639,7 +6639,7 @@ def random_cone(lattice=None, min_ambient_dim=0, max_ambient_dim=None, msg = 'all cones are solid when max_ambient_dim is zero.' raise ValueError(msg) if (max_ambient_dim is not None and - min_rays > 2*(max_ambient_dim - 1)): + min_rays > 2 * (max_ambient_dim - 1)): msg = 'every cone is solid when ' msg += 'min_rays > 2*(max_ambient_dim - 1).' raise ValueError(msg) @@ -6647,12 +6647,11 @@ def random_cone(lattice=None, min_ambient_dim=0, max_ambient_dim=None, if lattice.dimension() == 0: msg = 'all cones in the given lattice are solid.' raise ValueError(msg) - if min_rays > 2*(lattice.dimension() - 1): + if min_rays > 2 * (lattice.dimension() - 1): msg = 'every cone is solid when min_rays > 2*(d - 1) ' msg += 'where d is the dimension of the given lattice.' raise ValueError(msg) - # Now that we've sanity-checked our parameters, we can massage the # min/maxes for (non-)solid cones. It doesn't violate the user's # expectation to increase a minimum, decrease a maximum, or fix an diff --git a/src/sage/geometry/hyperbolic_space/hyperbolic_isometry.py b/src/sage/geometry/hyperbolic_space/hyperbolic_isometry.py index 9e3e8d3fc88..2de12812ddc 100644 --- a/src/sage/geometry/hyperbolic_space/hyperbolic_isometry.py +++ b/src/sage/geometry/hyperbolic_space/hyperbolic_isometry.py @@ -218,7 +218,7 @@ def __hash__(self): if self.domain().is_isometry_group_projective(): # Special care must be taken for projective groups m = matrix(self._matrix.nrows(), - [abs(x) for x in self._matrix.list()]) + [abs(x) for x in self._matrix.list()]) m.set_immutable() else: m = self._matrix diff --git a/src/sage/geometry/lattice_polytope.py b/src/sage/geometry/lattice_polytope.py index 0b30f206cbe..1b428f1c19e 100644 --- a/src/sage/geometry/lattice_polytope.py +++ b/src/sage/geometry/lattice_polytope.py @@ -3335,8 +3335,8 @@ def index_of_max(iterable): ccf = cf # Now let us find out where the end of the # next symmetry block is: - if h < c+1: - h = S[h-1] + if h < c + 1: + h = S[h - 1] s = n_p # Check through this block for each possible permutation while s > 0: diff --git a/src/sage/geometry/polyhedron/base5.py b/src/sage/geometry/polyhedron/base5.py index 04d1fa0314b..9cbddcc70ea 100644 --- a/src/sage/geometry/polyhedron/base5.py +++ b/src/sage/geometry/polyhedron/base5.py @@ -934,14 +934,14 @@ def product(self, other): new_vertices = (tuple(x) + tuple(y) for x in self.vertex_generator() for y in other.vertex_generator()) - self_zero = tuple(0 for _ in range( self.ambient_dim())) + self_zero = tuple(0 for _ in range( self.ambient_dim())) other_zero = tuple(0 for _ in range(other.ambient_dim())) - rays = chain((tuple(r) + other_zero for r in self.ray_generator()), - (self_zero + tuple(r) for r in other.ray_generator())) + rays = chain((tuple(r) + other_zero for r in self.ray_generator()), + (self_zero + tuple(r) for r in other.ray_generator())) - lines = chain((tuple(l) + other_zero for l in self.line_generator()), - (self_zero + tuple(l) for l in other.line_generator())) + lines = chain((tuple(l) + other_zero for l in self.line_generator()), + (self_zero + tuple(l) for l in other.line_generator())) if self.n_vertices() == 0 or other.n_vertices() == 0: # In this case we obtain the empty polyhedron. @@ -950,11 +950,15 @@ def product(self, other): rays = () lines = () - ieqs = chain((tuple(i) + other_zero for i in self.inequality_generator()), - ((i.b(),) + self_zero + tuple(i.A()) for i in other.inequality_generator())) + ieqs = chain((tuple(i) + other_zero + for i in self.inequality_generator()), + ((i.b(),) + self_zero + tuple(i.A()) + for i in other.inequality_generator())) - eqns = chain((tuple(e) + other_zero for e in self.equation_generator()), - ((e.b(),) + self_zero + tuple(e.A()) for e in other.equation_generator())) + eqns = chain((tuple(e) + other_zero + for e in self.equation_generator()), + ((e.b(),) + self_zero + tuple(e.A()) + for e in other.equation_generator())) pref_rep = 'Vrep' if self.n_vertices() + self.n_rays() + other.n_vertices() + other.n_rays() \ <= self.n_inequalities() + other.n_inequalities() else 'Hrep' diff --git a/src/sage/geometry/ribbon_graph.py b/src/sage/geometry/ribbon_graph.py index 6cc269c6b99..ed41f57f7dd 100644 --- a/src/sage/geometry/ribbon_graph.py +++ b/src/sage/geometry/ribbon_graph.py @@ -956,19 +956,19 @@ def homology_basis(self): [[25, 26]], [[27, 28]]] """ - aux_sigma = [list(x) for x in self._sigma.cycle_tuples(singletons=True)] + aux_sigma = [list(x) for x in self._sigma.cycle_tuples(singletons=True)] basis = [[list(x)] for x in self.reduced()._rho.cycle_tuples()] - #Now we define center as the set of edges that were contracted - #in reduced() this set is contractible and can be define as the - #complement of reduced_rho in rho + # Now we define center as the set of edges that were contracted + # in reduced() this set is contractible and can be define as the + # complement of reduced_rho in rho center = [list(x) for x in self._rho.cycle_tuples() if (x not in self.reduced()._rho.cycle_tuples())] - #We define an auxiliary list 'vertices' that will contain the - #vertices (cycles of sigma) corresponding to each half edge. + # We define an auxiliary list 'vertices' that will contain the + # vertices (cycles of sigma) corresponding to each half edge. vertices = [] diff --git a/src/sage/geometry/riemannian_manifolds/parametrized_surface3d.py b/src/sage/geometry/riemannian_manifolds/parametrized_surface3d.py index e1021f66a97..55d5609a861 100644 --- a/src/sage/geometry/riemannian_manifolds/parametrized_surface3d.py +++ b/src/sage/geometry/riemannian_manifolds/parametrized_surface3d.py @@ -905,28 +905,24 @@ def orthonormal_frame(self, coordinates='ext'): 0 sage: sphere.first_fundamental_form(frame_int[2], frame_int[2]) 1 - """ - - from sage.symbolic.constants import pi if coordinates not in ['ext', 'int']: raise ValueError("Coordinate system must be exterior ('ext') " "or interior ('int').") - c = self.first_fundamental_form_coefficient([1,1]) + c = self.first_fundamental_form_coefficient([1, 1]) if coordinates == 'ext': f1 = self.natural_frame()[1] - E1 = _simplify_full_rad(f1/sqrt(c)) + E1 = _simplify_full_rad(f1 / sqrt(c)) E2 = _simplify_full_rad( self.normal_vector(normalized=True).cross_product(E1)) else: - E1 = vector([_simplify_full_rad(1/sqrt(c)), 0]) - E2 = (self.rotation(pi/2)*E1).simplify_full() - return {1:E1, 2:E2} - + E1 = vector([_simplify_full_rad(1 / sqrt(c)), 0]) + E2 = (self.rotation(pi / 2) * E1).simplify_full() + return {1: E1, 2: E2} def orthonormal_frame_vector(self, index, coordinates='ext'): r""" diff --git a/src/sage/graphs/generic_graph.py b/src/sage/graphs/generic_graph.py index fa48183ecc4..633a97a5e75 100644 --- a/src/sage/graphs/generic_graph.py +++ b/src/sage/graphs/generic_graph.py @@ -20933,7 +20933,7 @@ def plot3d(self, bgcolor=(1, 1, 1), vertex_colors = {(1, 0, 0) : list(self)} if color_by_label: - if edge_colors is None: + if edge_colors is None: # do the coloring edge_colors = self._color_by_label(format=color_by_label) elif edge_colors is None: @@ -20975,7 +20975,7 @@ def plot3d(self, bgcolor=(1, 1, 1), vertex_size=vertex_size, pos3d=pos3d, **kwds) if color_by_label: - if edge_colors is None: + if edge_colors is None: # do the coloring edge_colors = self._color_by_label(format=color_by_label) diff --git a/src/sage/groups/cubic_braid.py b/src/sage/groups/cubic_braid.py index a9465ef2b3d..cd8b342ff6b 100644 --- a/src/sage/groups/cubic_braid.py +++ b/src/sage/groups/cubic_braid.py @@ -462,7 +462,7 @@ def burau_matrix(self, root_bur=None, domain=None, characteristic=None, if domain is not None: if isinstance(domain, UniversalCyclotomicField): - if root_bur is None: + if root_bur is None: if unitary: root_bur = domain.gen(12) else: @@ -503,7 +503,7 @@ def find_root(domain): except ValueError: raise ValueError('characteristic must be in integer') - if not characteristic.is_zero() and not characteristic.is_prime(): + if not characteristic.is_zero() and not characteristic.is_prime(): raise ValueError('characteristic must be a prime') if characteristic.is_zero(): if unitary: @@ -991,7 +991,6 @@ def _test_matrix_group(self, **options): self._internal_test_attached_group(matrix_grpF7, tester) return - def _test_reflection_group(self, **options): r""" Check the reflection group properties. @@ -1007,7 +1006,7 @@ def _test_reflection_group(self, **options): sage: CBG2 = CubicBraidGroup(2) sage: CBG2._test_reflection_group() """ - if self._cbg_type == CubicBraidGroup.type.Coxeter and self.is_finite() and self.strands() > 2: + if self._cbg_type == CubicBraidGroup.type.Coxeter and self.is_finite() and self.strands() > 2: from sage.combinat.root_system.reflection_group_real import is_chevie_available if is_chevie_available(): tester = self._tester(**options) @@ -1015,7 +1014,6 @@ def _test_reflection_group(self, **options): self._internal_test_attached_group(reflgrp, tester) return - # ------------------------------------------------------------------------------- # ------------------------------------------------------------------------------- # local utility-methods @@ -1258,9 +1256,9 @@ def create_unitary_realization(self, m): for j in range(mthird): pos = 3*(j+1)-1 transvections.append(xbas[pos-1]) # t_{3i} = x_{3i-1} - if pos +1 < m: + if pos +1 < m: transvections.append(xbas[pos-1]+xbas[pos]+xbas[pos+1]) # t_{3i+1} = x_{3i-1} + x_{3i} + x_{3i+1} - if pos +3 < m: + if pos +3 < m: transvections.append(xbas[pos+1]+xbas[pos+2]+xbas[pos+3]) # t_{3i+2} = x_{3i+1} + x_{3i+2} + x_{3i+3} # ----------------------------------------------------------- @@ -1797,8 +1795,8 @@ def as_reflection_group(self): from sage.combinat.root_system.reflection_group_real import ReflectionGroup - if self.strands() == 2: - reflection_group = ReflectionGroup([2 ,1 ,1]) + if self.strands() == 2: + reflection_group = ReflectionGroup([2, 1, 1]) elif self.strands() == 3: reflection_group = ReflectionGroup(4) elif self.strands() == 4: @@ -1810,7 +1808,6 @@ def as_reflection_group(self): reflection_group.register_conversion(hom_to_refl) return reflection_group - # ---------------------------------------------------------------------------------- # classical invariant form returns the invariant form of the classical realization # ---------------------------------------------------------------------------------- diff --git a/src/sage/groups/perm_gps/cubegroup.py b/src/sage/groups/perm_gps/cubegroup.py index 921c6201c43..3661c2afc10 100644 --- a/src/sage/groups/perm_gps/cubegroup.py +++ b/src/sage/groups/perm_gps/cubegroup.py @@ -431,21 +431,21 @@ def cubie_colors(label, state0): clr_any = named_colors['white'] state = inv_list(state0) if label == 1: - return [clr_any, named_colors[color_of_square(state[1-1])], clr_any] #ulb, + return [clr_any, named_colors[color_of_square(state[1-1])], clr_any] #ulb, if label == 2: - return [clr_any,named_colors[color_of_square(state[2-1])],clr_any] # ub, + return [clr_any,named_colors[color_of_square(state[2-1])],clr_any] # ub, if label == 3: - return [clr_any, named_colors[color_of_square(state[3-1])], named_colors[color_of_square(state[27-1])]] # ubr, + return [clr_any, named_colors[color_of_square(state[3-1])], named_colors[color_of_square(state[27-1])]] # ubr, if label == 4: - return [clr_any, named_colors[color_of_square(state[4-1])], clr_any] # ul, + return [clr_any, named_colors[color_of_square(state[4-1])], clr_any] # ul, if label == 5: - return [clr_any, named_colors[color_of_square(state[5-1])], named_colors[color_of_square(state[26-1])]] # ur, + return [clr_any, named_colors[color_of_square(state[5-1])], named_colors[color_of_square(state[26-1])]] # ur, if label == 6: - return [named_colors[color_of_square(state[17-1])], named_colors[color_of_square(state[6-1])], clr_any] # ufl, + return [named_colors[color_of_square(state[17-1])], named_colors[color_of_square(state[6-1])], clr_any] # ufl, if label == 7: - return [named_colors[color_of_square(state[18-1])], named_colors[color_of_square(state[7-1])], clr_any] # uf, + return [named_colors[color_of_square(state[18-1])], named_colors[color_of_square(state[7-1])], clr_any] # uf, if label == 8: - return [named_colors[color_of_square(state[19-1])], named_colors[color_of_square(state[8-1])], named_colors[color_of_square(state[25-1])]] # urf, + return [named_colors[color_of_square(state[19-1])], named_colors[color_of_square(state[8-1])], named_colors[color_of_square(state[25-1])]] # urf, if label == 17: return [named_colors[color_of_square(state[17-1])], named_colors[color_of_square(state[6-1])], clr_any] # flu if label == 18: diff --git a/src/sage/interacts/library.py b/src/sage/interacts/library.py index bb6dfbcf8f4..094db0c7be2 100644 --- a/src/sage/interacts/library.py +++ b/src/sage/interacts/library.py @@ -1032,7 +1032,7 @@ def _secant_method(f, a, b, maxn, h): L = sum(line([(c,k*i), (d,k*i)]) for i, (c,d) in enumerate(intervals) ) L += sum(line([(c,k*i-k/4), (c,k*i+k/4)]) for i, (c,d) in enumerate(intervals) ) L += sum(line([(d,k*i-k/4), (d,k*i+k/4)]) for i, (c,d) in enumerate(intervals) ) - S = sum(line([(c,f(c)), (d,f(d)), (d-(d-c)*f(d)/(f(d)-f(c)), 0)], color="green") for (c,d) in intervals) + S = sum(line([(c,f(c)), (d,f(d)), (d-(d-c)*f(d)/(f(d)-f(c)), 0)], color="green") for (c, d) in intervals) show(P + L + S, xmin=a, xmax=b) diff --git a/src/sage/interfaces/maxima_abstract.py b/src/sage/interfaces/maxima_abstract.py index cc1d88160bb..14062fa18a4 100644 --- a/src/sage/interfaces/maxima_abstract.py +++ b/src/sage/interfaces/maxima_abstract.py @@ -947,17 +947,17 @@ def solve_linear(self, eqns,vars): """ eqs = "[" for i in range(len(eqns)): - if i, , ] """ from sage.rings.integer import Integer - if not type(item) in (int, Integer): + if not type(item) in (int, Integer): raise ValueError('Item must be an integer') l = self.list() max_item = len(l) - if item < 0 or item > max_item: - raise ValueError('Item must be non negative and smaller than %s' %(max_item)) + if item < 0 or item > max_item: + raise ValueError('Item must be non negative and smaller than %s' % (max_item)) return l[item] @@ -2464,12 +2464,12 @@ def __call__(self, item): return self[item] from sage.rings.integer import Integer - if not type(item) in (int, Integer): + if not type(item) in (int, Integer): raise ValueError('Item must be an integer') - l =self.list() - max_item = len(l)+1 - if item < 1 or item > max_item: - raise ValueError('Item must be positive and smaller than %s' %(max_item)) + l = self.list() + max_item = len(l) + 1 + if item < 1 or item > max_item: + raise ValueError('Item must be positive and smaller than %s' % (max_item)) return l[item-1] diff --git a/src/sage/knots/link.py b/src/sage/knots/link.py index 12e159db251..00907779ec9 100644 --- a/src/sage/knots/link.py +++ b/src/sage/knots/link.py @@ -2914,14 +2914,14 @@ def homfly_polynomial(self, var1=None, var2=None, normalization='lm'): - http://mathworld.wolfram.com/HOMFLYPolynomial.html """ if not var1: - if normalization == 'az': + if normalization == 'az': var1 = 'a' elif normalization == 'vz': var1 = 'v' else: var1 = 'L' if not var2: - if normalization == 'lm': + if normalization == 'lm': var2 = 'M' else: var2 = 'z' @@ -4016,7 +4016,7 @@ def answer(L): if ach is None and achp is None: if unique: raise NotImplementedError('this link cannot be uniquely determined (unknown chirality)%s' %non_unique_hint) - elif L.is_amphicheiral() or L.is_amphicheiral(positive=True): + elif L.is_amphicheiral() or L.is_amphicheiral(positive=True): chiral = False if not chiral: @@ -4192,13 +4192,13 @@ def is_isotopic(self, other): try: ki, m = self.get_knotinfo() - verbose('KnotInfo self: %s mirrored %s' %(ki, m)) + verbose('KnotInfo self: %s mirrored %s' % (ki, m)) try: if ki.is_unique(): try: kio = other.get_knotinfo() - verbose('KnotInfo other: %s mirrored %s' %kio) - return (ki, m) == kio + verbose('KnotInfo other: %s mirrored %s' % kio) + return (ki, m) == kio except NotImplementedError: pass except AttributeError: diff --git a/src/sage/manifolds/differentiable/affine_connection.py b/src/sage/manifolds/differentiable/affine_connection.py index 008f13be22e..1380cc316ed 100644 --- a/src/sage/manifolds/differentiable/affine_connection.py +++ b/src/sage/manifolds/differentiable/affine_connection.py @@ -2210,7 +2210,7 @@ def connection_form(self, i, j, frame=None): comega[k] = coef_frame[[i1,j1,k]] forms[(i1,j1)] = omega self._connection_forms[frame] = forms - return self._connection_forms[frame][(i,j)] + return self._connection_forms[frame][(i,j)] def torsion_form(self, i, frame=None): r""" @@ -2312,7 +2312,7 @@ def torsion_form(self, i, frame=None): ctheta[k,l] = torsion_comp[[i1,k,l]] forms[i1] = theta self._torsion_forms[frame] = forms - return self._torsion_forms[frame][i] + return self._torsion_forms[frame][i] def curvature_form(self, i, j, frame=None): r""" @@ -2422,7 +2422,7 @@ def curvature_form(self, i, j, frame=None): comega[k,l] = riemann_comp[[i1,j1,k,l]] forms[(i1,j1)] = omega self._curvature_forms[frame] = forms - return self._curvature_forms[frame][(i,j)] + return self._curvature_forms[frame][(i, j)] def set_calc_order(self, symbol, order, truncate=False): r""" diff --git a/src/sage/manifolds/differentiable/vectorfield.py b/src/sage/manifolds/differentiable/vectorfield.py index acf07f25aca..ecd41a9882f 100644 --- a/src/sage/manifolds/differentiable/vectorfield.py +++ b/src/sage/manifolds/differentiable/vectorfield.py @@ -799,8 +799,8 @@ def plot(self, chart=None, ambient_coords=None, mapping=None, list_xx = [] while ind != ind_max: - for i in range(ncp): - xx[ind_coord[i]] = xmin[i] + ind[i]*step_tab[i] + for i in range(ncp): + xx[ind_coord[i]] = xmin[i] + ind[i] * step_tab[i] if chart_domain.valid_coordinates(*xx, tolerance=1e-13, parameters=parameters): diff --git a/src/sage/modular/hecke/hecke_operator.py b/src/sage/modular/hecke/hecke_operator.py index 0974629977d..df65f1b526d 100644 --- a/src/sage/modular/hecke/hecke_operator.py +++ b/src/sage/modular/hecke/hecke_operator.py @@ -1,8 +1,7 @@ """ Hecke operators """ - -#***************************************************************************** +# **************************************************************************** # Copyright (C) 2004 William Stein # # Distributed under the terms of the GNU General Public License (GPL) @@ -14,15 +13,13 @@ # # The full text of the GPL is available at: # -# http://www.gnu.org/licenses/ -#***************************************************************************** - - +# https://www.gnu.org/licenses/ +# **************************************************************************** from sage.structure.element import AlgebraElement from sage.structure.richcmp import richcmp, rich_to_bool from sage.categories.homset import End import sage.arith.all as arith -from sage.rings.integer import Integer +from sage.rings.integer import Integer from . import algebra from . import morphism diff --git a/src/sage/modular/overconvergent/all.py b/src/sage/modular/overconvergent/all.py index a6a3b8d158b..11e23071854 100644 --- a/src/sage/modular/overconvergent/all.py +++ b/src/sage/modular/overconvergent/all.py @@ -1,4 +1,4 @@ -from .weightspace import WeightSpace_constructor as pAdicWeightSpace +from .weightspace import WeightSpace_constructor as pAdicWeightSpace from .genus0 import OverconvergentModularForms diff --git a/src/sage/modules/free_module.py b/src/sage/modules/free_module.py index cd0cfdde32d..9deea7e1458 100644 --- a/src/sage/modules/free_module.py +++ b/src/sage/modules/free_module.py @@ -5653,7 +5653,7 @@ def basis(self): """ try: return self.__basis - except AttributeError: + except AttributeError: ZERO = self(0) one = self.coordinate_ring().one() w = [] diff --git a/src/sage/numerical/interactive_simplex_method.py b/src/sage/numerical/interactive_simplex_method.py index 0210d9aea87..3b7e29e9f6f 100644 --- a/src/sage/numerical/interactive_simplex_method.py +++ b/src/sage/numerical/interactive_simplex_method.py @@ -785,7 +785,7 @@ def _latex_(self): latex(xj), r"\geq" if vt == ">=" else r"\leq") for xj, vt in zip(x, self._variable_types) if vt)) lines.append(r"\end{array}") - return "\n".join(lines) + return "\n".join(lines) def _repr_(self): r""" diff --git a/src/sage/quadratic_forms/genera/genus.py b/src/sage/quadratic_forms/genera/genus.py index 0fc43f33c62..c400f73da49 100644 --- a/src/sage/quadratic_forms/genera/genus.py +++ b/src/sage/quadratic_forms/genera/genus.py @@ -676,10 +676,10 @@ def canonical_2_adic_trains(genus_symbol_quintuple_list, compartments=None): trains = [] new_train = [0] - for i in range(1,len(symbol)-1): + for i in range(1, len(symbol) - 1): # start a new train if there are two adjacent even symbols prev, cur = symbol[i-1:i+1] - if cur[0] - prev[0] > 2: + if cur[0] - prev[0] > 2: trains.append(new_train) new_train = [i] # create a new train starting at elif (cur[0] - prev[0] == 2) and cur[3]*prev[3] == 0: diff --git a/src/sage/quadratic_forms/quadratic_form__ternary_Tornaria.py b/src/sage/quadratic_forms/quadratic_form__ternary_Tornaria.py index 22334a8e857..ae836c20ce3 100644 --- a/src/sage/quadratic_forms/quadratic_form__ternary_Tornaria.py +++ b/src/sage/quadratic_forms/quadratic_form__ternary_Tornaria.py @@ -331,7 +331,7 @@ def clifford_invariant(self, p): 1 """ n = self.dim() % 8 - if n == 1 or n == 2: + if n == 1 or n == 2: s = 1 elif n == 3 or n == 4: s = hilbert_symbol(-1, -self.disc(), p) @@ -586,12 +586,11 @@ def is_zero(self, v, p=0) -> bool: True sage: Q1.is_zero([1,1,0], 2) False - """ norm = self(v) if p != 0: norm = norm % p - return norm == 0 + return norm == 0 def is_zero_nonsingular(self, v, p=0) -> bool: diff --git a/src/sage/sets/non_negative_integers.py b/src/sage/sets/non_negative_integers.py index 9b5def119e0..29edc3a11a1 100644 --- a/src/sage/sets/non_negative_integers.py +++ b/src/sage/sets/non_negative_integers.py @@ -115,7 +115,7 @@ def __contains__(self, elt): """ try: i = Integer(elt) - return i >= Integer(0) and i == elt + return i >= Integer(0) and i == elt except (TypeError, ValueError): return False diff --git a/src/sage/symbolic/units.py b/src/sage/symbolic/units.py index 9b5407786e1..8445499cb01 100644 --- a/src/sage/symbolic/units.py +++ b/src/sage/symbolic/units.py @@ -1458,7 +1458,7 @@ def convert_temperature(expr, target): target_temp = target.variables()[0] a = sage_eval(unitdict['temperature'][str(expr_temp)], locals={'x': coeff}) - if target is None or target_temp == units.temperature.kelvin: + if target is None or target_temp == units.temperature.kelvin: return a[0]*units.temperature.kelvin elif target_temp == units.temperature.celsius or target_temp == units.temperature.centigrade: return a[1]*target_temp diff --git a/src/sage/tensor/modules/tensor_with_indices.py b/src/sage/tensor/modules/tensor_with_indices.py index fd5eaf6824b..1e658682d41 100644 --- a/src/sage/tensor/modules/tensor_with_indices.py +++ b/src/sage/tensor/modules/tensor_with_indices.py @@ -628,7 +628,6 @@ def __mul__(self, other): True sage: s[:] [3, -6, 9] - """ if not isinstance(other, TensorWithIndices): raise TypeError("the second item of * must be a tensor with " + @@ -636,12 +635,12 @@ def __mul__(self, other): contraction_pairs = [] for ind in self._con: if ind != '.': - if ind in other._cov: + if ind in other._cov: pos1 = self._con.index(ind) pos2 = other._tensor._tensor_type[0] + other._cov.index(ind) contraction_pairs.append((pos1, pos2)) if ind in other._con: - raise IndexError("the index {} appears twice ".format(ind) + raise IndexError(f"the index {ind} appears twice " + "in a contravariant position") for ind in self._cov: if ind != '.': @@ -650,7 +649,7 @@ def __mul__(self, other): pos2 = other._con.index(ind) contraction_pairs.append((pos1, pos2)) if ind in other._cov: - raise IndexError("the index {} appears twice ".format(ind) + raise IndexError(f"the index {ind} appears twice " + "in a covariant position") if not contraction_pairs: # No contraction is performed: the tensor product is returned From 91e638c940d810b2363341bb098b716c243bc836 Mon Sep 17 00:00:00 2001 From: Aram Dermenjian Date: Tue, 14 Feb 2023 11:27:44 +0000 Subject: [PATCH 072/249] Fix French notation for Tableau --- src/sage/combinat/tableau.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/sage/combinat/tableau.py b/src/sage/combinat/tableau.py index 1105a3ea177..70b9d148b04 100644 --- a/src/sage/combinat/tableau.py +++ b/src/sage/combinat/tableau.py @@ -889,25 +889,31 @@ def plot(self, descents=False): if descents and not self.is_standard(): raise ValueError("the tableau must be standard for 'descents=True'") + # For English we build up to down for French, down to up + if self.parent().options('convention') == "English": + m = 1 + else: + m = -1 + p = self.shape() G = line([(0,0),(p[0],0)], axes=False, figsize=1.5) for i in range(len(p)): - G += line([(0,-i-1), (p[i],-i-1)]) + G += line([(0,m*(-i-1)), (p[i],m*(-i-1))]) r = p.conjugate() - G += line([(0,0),(0,-r[0])]) + G += line([(0,0),(0,m*-r[0])]) for i in range(len(r)): - G += line([(i+1,0),(i+1,-r[i])]) + G += line([(i+1,0),(i+1,m*-r[i])]) if descents: t = StandardTableau(self) for i in t.standard_descents(): c = t.cells_containing(i)[0] - G += polygon([(c[1],-c[0]), (c[1]+1,-c[0]), (c[1]+1,-c[0]-1), (c[1],-c[0]-1)], rgbcolor=(1,0,1)) + G += polygon([(c[1],m*c[0]), (c[1]+1,m*c[0]), (c[1]+1,m*(-c[0]-1)), (c[1],m*(-c[0]-1))], rgbcolor=(1,0,1)) for c in self.cells(): - G += text(str(self.entry(c)), (c[1]+0.5,-c[0]-0.5)) + G += text(str(self.entry(c)), (c[1]+0.5,m*(-c[0]-0.5))) return G From 2bdb515a60867b9ae8282a7c11ce4ea368f49c4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Mon, 13 Feb 2023 23:22:21 -0300 Subject: [PATCH 073/249] Fix a very slow doctest in data_structures/stream.py This single test used to take ~ 200s, now it takes ~ 0.5s. Marked long time since the other 769 tests together take < 1s. --- src/sage/data_structures/stream.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sage/data_structures/stream.py b/src/sage/data_structures/stream.py index f8f6dc6a186..002e925f02f 100644 --- a/src/sage/data_structures/stream.py +++ b/src/sage/data_structures/stream.py @@ -2090,8 +2090,8 @@ def compute_product(self, n, la): sage: f = Stream_exact([1]) # irrelevant for this test sage: g = Stream_function(lambda n: s[n], True, 0) sage: h = Stream_plethysm(f, g, True, p) - sage: B = p[2, 2, 1](sum(s[i] for i in range(7))) - sage: all(h.compute_product(k, Partition([2, 2, 1])) == B.restrict_degree(k) for k in range(7)) + sage: B = p[2, 2, 1](sum(p(s[i]) for i in range(7))) # long time + sage: all(h.compute_product(k, Partition([2, 2, 1])) == B.restrict_degree(k) for k in range(7)) # long time True """ # This is the approximate order of the result From 04dcc93a84c2eaea08ad4738a53bc07f65343a78 Mon Sep 17 00:00:00 2001 From: Aram Dermenjian Date: Tue, 14 Feb 2023 14:26:34 +0000 Subject: [PATCH 074/249] Add plots for examples --- src/sage/combinat/tableau.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/sage/combinat/tableau.py b/src/sage/combinat/tableau.py index 70b9d148b04..c08358032c1 100644 --- a/src/sage/combinat/tableau.py +++ b/src/sage/combinat/tableau.py @@ -860,6 +860,27 @@ def plot(self, descents=False): r""" Return a plot ``self``. + If English notation is set then the first row of the tableau is on the + top: + + .. PLOT:: + :width: 200 px + + t = Tableau([[1,2],[2,3]]) + Tableaux.options.convention="english" + sphinx_plot(t.plot()) + + Whereas if French notation is set, the first row of the tableau is on + the bottom: + + .. PLOT:: + :width: 200 px + + t = Tableau([[1,2],[2,3]]) + Tableaux.options.convention="french" + sphinx_plot(t.plot()) + Tableaux.options.convention="english" + INPUT: - ``descents`` -- boolean (default: ``False``); if ``True``, From 85b1af37586ff04a07ffbd745679345cfbb9990b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Chapoton?= Date: Tue, 14 Feb 2023 21:21:36 +0100 Subject: [PATCH 075/249] fix pep8 E303 in various folders (plot, quadratic forms, etc) --- src/sage/plot/animate.py | 1 - src/sage/plot/matrix_plot.py | 2 -- src/sage/plot/plot.py | 2 -- src/sage/plot/plot3d/tri_plot.py | 6 ------ src/sage/plot/primitive.py | 2 -- src/sage/quadratic_forms/constructions.py | 1 - src/sage/quadratic_forms/genera/genus.py | 17 ----------------- src/sage/quadratic_forms/quadratic_form.py | 16 ---------------- .../quadratic_form__count_local_2.py | 5 ----- .../quadratic_form__equivalence_testing.py | 3 --- .../quadratic_form__local_density_interfaces.py | 2 -- .../quadratic_form__local_field_invariants.py | 1 - .../quadratic_form__local_normal_form.py | 4 ---- .../quadratic_forms/quadratic_form__mass.py | 1 - ...uadratic_form__mass__Conway_Sloane_masses.py | 7 ------- .../quadratic_form__mass__Siegel_densities.py | 1 - .../quadratic_form__siegel_product.py | 10 ---------- .../quadratic_form__split_local_covering.py | 2 -- .../quadratic_forms/quadratic_form__theta.py | 3 --- src/sage/repl/rich_output/output_graphics3d.py | 10 +++------- src/sage/sandpiles/examples.py | 3 +-- src/sage/sets/disjoint_union_enumerated_sets.py | 2 -- src/sage/sets/set_from_iterator.py | 1 - src/sage/structure/factorization.py | 2 -- src/sage/structure/set_factories.py | 2 -- src/sage/symbolic/constants.py | 5 ----- src/sage/symbolic/units.py | 1 - 27 files changed, 4 insertions(+), 108 deletions(-) diff --git a/src/sage/plot/animate.py b/src/sage/plot/animate.py index c835ab823a4..1fc61ad0dd7 100644 --- a/src/sage/plot/animate.py +++ b/src/sage/plot/animate.py @@ -850,7 +850,6 @@ def show(self, delay=None, iterations=None, **kwds): dm = get_display_manager() dm.display_immediately(self, **kwds) - def ffmpeg(self, savefile=None, show_path=False, output_format=None, ffmpeg_options='', delay=None, iterations=0, pix_fmt='rgb24'): r""" diff --git a/src/sage/plot/matrix_plot.py b/src/sage/plot/matrix_plot.py index f62d362ea11..65aeac627f4 100644 --- a/src/sage/plot/matrix_plot.py +++ b/src/sage/plot/matrix_plot.py @@ -243,7 +243,6 @@ def _render_on_subplot(self, subplot): subplot.xaxis.set_ticks_position('both') #only tick marks, not tick labels - @suboptions('colorbar', orientation='vertical', format=None) @suboptions('subdivision',boundaries=None, style=None) @options(aspect_ratio=1, axes=False, cmap='Greys', colorbar=False, @@ -585,7 +584,6 @@ def matrix_plot(mat, xrange=None, yrange=None, **options): else: sparse = False - try: if sparse: xy_data_array = mat diff --git a/src/sage/plot/plot.py b/src/sage/plot/plot.py index 48f84060c8c..b00ddae2f03 100644 --- a/src/sage/plot/plot.py +++ b/src/sage/plot/plot.py @@ -2513,8 +2513,6 @@ def golden_rainbow(i,lightness=0.4): return G - - ########## misc functions ################### @options(aspect_ratio=1.0) diff --git a/src/sage/plot/plot3d/tri_plot.py b/src/sage/plot/plot3d/tri_plot.py index dfe525409bb..2b6f735a72b 100644 --- a/src/sage/plot/plot3d/tri_plot.py +++ b/src/sage/plot/plot3d/tri_plot.py @@ -217,7 +217,6 @@ def get_colors(self, list): return list - class TrianglePlot: """ Recursively plots a function of two variables by building squares of 4 triangles, checking at @@ -302,7 +301,6 @@ def fcn(x,y): avg_z = (vertices[0][2] + vertices[1][2] + vertices[2][2])/3 o.set_color(colors[int(num_colors * (avg_z - self._min) / zrange)]) - def plot_block(self, min_x, mid_x, max_x, min_y, mid_y, max_y, sw_z, nw_z, se_z, ne_z, mid_z, depth): """ Recursive triangulation function for plotting. @@ -400,7 +398,6 @@ def plot_block(self, min_x, mid_x, max_x, min_y, mid_y, max_y, sw_z, nw_z, se_z, mid_se_z = self._fcn(qtr3_x,qtr1_y) mid_ne_z = self._fcn(qtr3_x,qtr3_y) - self.extrema([mid_w_z[0], mid_n_z[0], mid_e_z[0], mid_s_z[0], mid_sw_z[0], mid_se_z[0], mid_nw_z[0], mid_sw_z[0]]) # recurse into the sub-squares @@ -440,7 +437,6 @@ def plot_block(self, min_x, mid_x, max_x, min_y, mid_y, max_y, sw_z, nw_z, se_z, ne = [(max_x,max_y,ne_z[0]),ne_z[1]] c = [[(mid_x,mid_y,mid_z[0]),mid_z[1]]] - left = [sw,nw] left_c = c top = [nw,ne] @@ -499,7 +495,6 @@ def interface(self, n, p, p_c, q, q_c): self.triangulate(m, mpc) self.triangulate(m, mqc) - def triangulate(self, p, c): """ Pass in a list of edge points (p) and center points (c). @@ -523,7 +518,6 @@ def triangulate(self, p, c): for i in range(0,len(p)-1): self._objects.append(self._triangle_factory.smooth_triangle(p[i][0], p[i+1][0], c[i][0],p[i][1], p[i+1][1], c[i][1])) - def extrema(self, list): """ If the num_colors option has been set, this expands the TrianglePlot's _min and _max diff --git a/src/sage/plot/primitive.py b/src/sage/plot/primitive.py index 4510a571399..20c2987142f 100644 --- a/src/sage/plot/primitive.py +++ b/src/sage/plot/primitive.py @@ -56,7 +56,6 @@ def __init__(self, options): """ self._options = options - def _allowed_options(self): """ Return the allowed options for a graphics primitive. @@ -216,7 +215,6 @@ def _repr_(self): return "Graphics primitive" - class GraphicPrimitive_xydata(GraphicPrimitive): def get_minmax_data(self): """ diff --git a/src/sage/quadratic_forms/constructions.py b/src/sage/quadratic_forms/constructions.py index dd9f83216d3..70fe02979fe 100644 --- a/src/sage/quadratic_forms/constructions.py +++ b/src/sage/quadratic_forms/constructions.py @@ -11,7 +11,6 @@ from sage.quadratic_forms.quadratic_form import QuadraticForm - def BezoutianQuadraticForm(f, g): r""" Compute the Bezoutian of two polynomials defined over a common base ring. This is defined by diff --git a/src/sage/quadratic_forms/genera/genus.py b/src/sage/quadratic_forms/genera/genus.py index 0fc43f33c62..d4bb8e48124 100644 --- a/src/sage/quadratic_forms/genera/genus.py +++ b/src/sage/quadratic_forms/genera/genus.py @@ -410,7 +410,6 @@ def LocalGenusSymbol(A, p): return Genus_Symbol_p_adic_ring(p, symbol) - def is_GlobalGenus(G): r""" Return if `G` represents the genus of a global quadratic form or lattice. @@ -465,7 +464,6 @@ def is_GlobalGenus(G): return True - def is_2_adic_genus(genus_symbol_quintuple_list): r""" Given a `2`-adic local symbol (as the underlying list of quintuples) @@ -527,7 +525,6 @@ def is_2_adic_genus(genus_symbol_quintuple_list): return True - def canonical_2_adic_compartments(genus_symbol_quintuple_list): r""" Given a `2`-adic local symbol (as the underlying list of quintuples) @@ -956,7 +953,6 @@ def p_adic_symbol(A, p, val): return [ [s[0]+m0] + s[1:] for s in sym + p_adic_symbol(A, p, val) ] - def is_even_matrix(A): r""" Determines if the integral symmetric matrix `A` is even @@ -990,7 +986,6 @@ def is_even_matrix(A): return True, -1 - def split_odd(A): r""" Given a non-degenerate Gram matrix `A (\mod 8)`, return a splitting @@ -1080,7 +1075,6 @@ def split_odd(A): return u, B - def trace_diag_mod_8(A): r""" Return the trace of the diagonalised form of `A` of an integral @@ -1487,7 +1481,6 @@ def __eq__(self, other): return False return self.canonical_symbol() == other.canonical_symbol() - def __ne__(self, other): r""" Determines if two genus symbols are unequal (not just inequivalent!). @@ -1523,7 +1516,6 @@ def __ne__(self, other): """ return not self == other - # Added these two methods to make this class iterable... #def __getitem__(self, i): # return self._symbol[i] @@ -1765,7 +1757,6 @@ def canonical_symbol(self): else: return self._symbol - def gram_matrix(self, check=True): r""" Return a gram matrix of a representative of this local genus. @@ -2044,7 +2035,6 @@ def number_of_blocks(self): """ return len(self._symbol) - def determinant(self): r""" Returns the (`p`-part of the) determinant (square-class) of the @@ -2339,7 +2329,6 @@ def trains(self): symbol = self._symbol return canonical_2_adic_trains(symbol) - def compartments(self): r""" Compute the indices for each of the compartments in this local genus @@ -2442,7 +2431,6 @@ def __init__(self, signature_pair, local_symbols, representative=None, check=Tru self._signature = signature_pair self._local_symbols = local_symbols - def __repr__(self): r""" Return a string representing the global genus symbol. @@ -2509,7 +2497,6 @@ def _latex_(self): rep += r"\\ " + s._latex_() return rep - def __eq__(self, other): r""" Determines if two global genus symbols are equal (not just equivalent!). @@ -2562,8 +2549,6 @@ def __eq__(self, other): return False return True - - def __ne__(self, other): r""" Determine if two global genus symbols are unequal (not just inequivalent!). @@ -2716,7 +2701,6 @@ def _improper_spinor_kernel(self): K = A.subgroup(K.gens() + (j,)) return A, K - def spinor_generators(self, proper): r""" Return the spinor generators. @@ -2807,7 +2791,6 @@ def _proper_is_improper(self): j = A.delta(r) # diagonal embedding of r return j in K, j - def signature(self): r""" Return the signature of this genus. diff --git a/src/sage/quadratic_forms/quadratic_form.py b/src/sage/quadratic_forms/quadratic_form.py index c4e97d97c50..fd26710736d 100644 --- a/src/sage/quadratic_forms/quadratic_form.py +++ b/src/sage/quadratic_forms/quadratic_form.py @@ -424,7 +424,6 @@ class QuadraticForm(SageObject): local_genus_symbol, \ CS_genus_symbol_list - # Routines to compute local masses for ZZ. from sage.quadratic_forms.quadratic_form__mass import \ shimura_mass__maximal, \ @@ -489,8 +488,6 @@ class QuadraticForm(SageObject): # Routines for solving equations of the form Q(x) = c. from sage.quadratic_forms.qfsolve import solve - - def __init__(self, R, n=None, entries=None, unsafe_initialization=False, number_of_automorphisms=None, determinant=None): """ EXAMPLES:: @@ -629,7 +626,6 @@ def list_external_initializations(self): """ return deepcopy(self._external_initialization_list) - def __pari__(self): """ Return a PARI-formatted Hessian matrix for Q. @@ -681,7 +677,6 @@ def _repr_(self): out_str += "]" return out_str - def _latex_(self): """ Give a LaTeX representation for the quadratic form given as an upper-triangular matrix of coefficients. @@ -911,8 +906,6 @@ def sum_by_coefficients_with(self, right): # return QuadraticForm(self.base_ring(), self.dim(), [c * self.__coeffs[i] for i in range(len(self.__coeffs))]) # ========================================================================================================================= - - def __call__(self, v): """ Evaluate this quadratic form Q on a vector or matrix of elements @@ -1025,8 +1018,6 @@ def __call__(self, v): raise TypeError - - # ===================================================================================================== def _is_even_symmetric_matrix_(self, A, R=None): @@ -1341,8 +1332,6 @@ def from_polynomial(poly): coeffs.append(poly.monomial_coefficient(v*w)) return QuadraticForm(base, len(vs), coeffs) - - def is_primitive(self): """ Determines if the given integer-valued form is primitive @@ -1434,7 +1423,6 @@ def base_ring(self): """ return self.__base_ring - def coefficients(self): """ Gives the matrix of upper triangular coefficients, @@ -1449,7 +1437,6 @@ def coefficients(self): """ return self.__coeffs - def det(self): """ Gives the determinant of the Gram matrix of 2*Q, or @@ -1478,7 +1465,6 @@ def det(self): self.__det = new_det return new_det - def Gram_det(self): """ Gives the determinant of the Gram matrix of Q. @@ -1496,7 +1482,6 @@ def Gram_det(self): """ return self.det() / ZZ(2**self.dim()) - def base_change_to(self, R): """ Alters the quadratic form to have all coefficients @@ -1581,7 +1566,6 @@ def level(self): warn("Warning -- The level of a quadratic form over a field is always 1. Do you really want to do this?!?") #raise RuntimeError, "Warning -- The level of a quadratic form over a field is always 1. Do you really want to do this?!?" - # Check invertibility and find the inverse try: mat_inv = self.matrix()**(-1) diff --git a/src/sage/quadratic_forms/quadratic_form__count_local_2.py b/src/sage/quadratic_forms/quadratic_form__count_local_2.py index 54b072109f3..6b4eebd26fc 100644 --- a/src/sage/quadratic_forms/quadratic_form__count_local_2.py +++ b/src/sage/quadratic_forms/quadratic_form__count_local_2.py @@ -68,10 +68,6 @@ def count_congruence_solutions_as_vector(self, p, k, m, zvec, nzvec): return CountAllLocalTypesNaive(self, p, k, m, zvec, nzvec) - - - - ##/////////////////////////////////////////// ##/// Front-ends for our counting routines // ##/////////////////////////////////////////// @@ -102,7 +98,6 @@ def count_congruence_solutions(self, p, k, m, zvec, nzvec): return CountAllLocalTypesNaive(self, p, k, m, zvec, nzvec)[0] - def count_congruence_solutions__good_type(self, p, k, m, zvec, nzvec): """ Counts the good-type solutions of Q(x) = m (mod p^k) satisfying the diff --git a/src/sage/quadratic_forms/quadratic_form__equivalence_testing.py b/src/sage/quadratic_forms/quadratic_form__equivalence_testing.py index b69bb6abf9d..a761558d7d0 100644 --- a/src/sage/quadratic_forms/quadratic_form__equivalence_testing.py +++ b/src/sage/quadratic_forms/quadratic_form__equivalence_testing.py @@ -218,7 +218,6 @@ def has_equivalent_Jordan_decomposition_at_prime(self, other, p): if len(self_jordan) != len(other_jordan): return False - # Deal with odd primes: Check that the Jordan component scales, dimensions, and discriminants are the same if p != 2: for i in range(len(self_jordan)): @@ -230,14 +229,12 @@ def has_equivalent_Jordan_decomposition_at_prime(self, other, p): # All tests passed for an odd prime. return True - # For p = 2: Check that all Jordan Invariants are the same. elif p == 2: # Useful definition t = len(self_jordan) # Define t = Number of Jordan components - # Check that all Jordan Invariants are the same (scale, dim, and norm) for i in range(t): if (self_jordan[i][0] != other_jordan[i][0]) \ diff --git a/src/sage/quadratic_forms/quadratic_form__local_density_interfaces.py b/src/sage/quadratic_forms/quadratic_form__local_density_interfaces.py index aa4fb04ad63..9bffe45f1d5 100644 --- a/src/sage/quadratic_forms/quadratic_form__local_density_interfaces.py +++ b/src/sage/quadratic_forms/quadratic_form__local_density_interfaces.py @@ -57,7 +57,6 @@ def local_density(self, p, m): if ((m != 0) and (valuation(m,p) < p_valuation)): # Note: The (m != 0) condition protects taking the valuation of zero. return QQ(0) - # If the form is imprimitive, rescale it and call the local density routine p_adjustment = QQ(1) / p**p_valuation m_prim = QQ(m) / p**p_valuation @@ -133,7 +132,6 @@ def local_primitive_density(self, p, m): if ((m != 0) and (valuation(m,p) < p_valuation)): # Note: The (m != 0) condition protects taking the valuation of zero. return QQ(0) - # If the form is imprimitive, rescale it and call the local density routine p_adjustment = QQ(1) / p**p_valuation m_prim = QQ(m) / p**p_valuation diff --git a/src/sage/quadratic_forms/quadratic_form__local_field_invariants.py b/src/sage/quadratic_forms/quadratic_form__local_field_invariants.py index 3556c101705..28f91e5c6fb 100644 --- a/src/sage/quadratic_forms/quadratic_form__local_field_invariants.py +++ b/src/sage/quadratic_forms/quadratic_form__local_field_invariants.py @@ -342,7 +342,6 @@ def signature_vector(self): return (p, n, z) - def signature(self): """ Returns the signature of the quadratic form, defined as: diff --git a/src/sage/quadratic_forms/quadratic_form__local_normal_form.py b/src/sage/quadratic_forms/quadratic_form__local_normal_form.py index 429c7c68896..f03ccbc688f 100644 --- a/src/sage/quadratic_forms/quadratic_form__local_normal_form.py +++ b/src/sage/quadratic_forms/quadratic_form__local_normal_form.py @@ -303,16 +303,13 @@ def jordan_blocks_by_scale_and_unimodular(self, p, safe_flag=True): if not hasattr(self, '__jordan_blocks_by_scale_and_unimodular_dict'): self.__jordan_blocks_by_scale_and_unimodular_dict = {} - # Deal with zero dim'l forms if self.dim() == 0: return [] - # Find the Local Normal form of Q at p Q1 = self.local_normal_form(p) - # Parse this into Jordan Blocks n = Q1.dim() tmp_Jordan_list = [] @@ -349,7 +346,6 @@ def jordan_blocks_by_scale_and_unimodular(self, p, safe_flag=True): # Add the last block tmp_Jordan_list += [(start_scale, Q1.extract_variables(range(start_ind, n)).scale_by_factor(ZZ(1) / QQ(p)**(start_scale)))] - # Cache the result self.__jordan_blocks_by_scale_and_unimodular_dict[p] = tmp_Jordan_list diff --git a/src/sage/quadratic_forms/quadratic_form__mass.py b/src/sage/quadratic_forms/quadratic_form__mass.py index 9f7de214b6a..8de97aaebc3 100644 --- a/src/sage/quadratic_forms/quadratic_form__mass.py +++ b/src/sage/quadratic_forms/quadratic_form__mass.py @@ -50,7 +50,6 @@ def shimura_mass__maximal(self): pass - def GHY_mass__maximal(self): """ Use the GHY formula to compute the mass of a (maximal?) quadratic diff --git a/src/sage/quadratic_forms/quadratic_form__mass__Conway_Sloane_masses.py b/src/sage/quadratic_forms/quadratic_form__mass__Conway_Sloane_masses.py index 65c524db39a..2a52e8584dd 100644 --- a/src/sage/quadratic_forms/quadratic_form__mass__Conway_Sloane_masses.py +++ b/src/sage/quadratic_forms/quadratic_form__mass__Conway_Sloane_masses.py @@ -109,7 +109,6 @@ def parity(self, allow_rescaling_flag=True): return "even" - def is_even(self, allow_rescaling_flag=True): """ Returns true iff after rescaling by some appropriate factor, the @@ -150,7 +149,6 @@ def is_odd(self, allow_rescaling_flag=True): return self.parity(allow_rescaling_flag) == "odd" - def conway_species_list_at_odd_prime(self, p): """ Returns an integer called the 'species' which determines the type @@ -221,7 +219,6 @@ def conway_species_list_at_odd_prime(self, p): return species_list - def conway_species_list_at_2(self): """ Returns an integer called the 'species' which determines the type @@ -300,7 +297,6 @@ def conway_species_list_at_2(self): # Append the species to the list species_list.append(species) - if jordan_list[-1].is_odd(): # Add an entry for the unlisted "s_max + 1" Jordan component as well. species_list.append(1) @@ -308,8 +304,6 @@ def conway_species_list_at_2(self): return species_list - - def conway_octane_of_this_unimodular_Jordan_block_at_2(self): """ Determines the 'octane' of this full unimodular Jordan block at @@ -355,7 +349,6 @@ def conway_octane_of_this_unimodular_Jordan_block_at_2(self): tmp_diag_vec[0] = u # This should be an odd integer! ind = 1 # The next index to diagonalize - # Use u to diagonalize the form -- WHAT ARE THE POSSIBLE LOCAL NORMAL FORMS? while ind < n: diff --git a/src/sage/quadratic_forms/quadratic_form__mass__Siegel_densities.py b/src/sage/quadratic_forms/quadratic_form__mass__Siegel_densities.py index 97b07023060..3cc83fcf02a 100644 --- a/src/sage/quadratic_forms/quadratic_form__mass__Siegel_densities.py +++ b/src/sage/quadratic_forms/quadratic_form__mass__Siegel_densities.py @@ -155,7 +155,6 @@ def Pall_mass_density_at_odd_prime(self, p): generic_factor *= (1 + legendre_symbol(((-1)**m) * d, p) * p**(-m)) jordan_mass_list = jordan_mass_list + [generic_factor] - # Step 3: Compute the local mass $\al_p$ at p. MJL = modified_jordan_list s = len(modified_jordan_list) diff --git a/src/sage/quadratic_forms/quadratic_form__siegel_product.py b/src/sage/quadratic_forms/quadratic_form__siegel_product.py index 1cf72a23745..c1c00ab2be4 100644 --- a/src/sage/quadratic_forms/quadratic_form__siegel_product.py +++ b/src/sage/quadratic_forms/quadratic_form__siegel_product.py @@ -20,7 +20,6 @@ from sage.misc.verbose import verbose - #/*! \brief Computes the product of all local densities for comparison with independently computed Eisenstein coefficients. # * # * \todo We fixed the generic factors to compensate for using the matrix of 2Q, but we need to document this better! =) @@ -95,7 +94,6 @@ def siegel_product(self, u): verbose("siegel_product Break 1. \n") verbose(" u = " + str(u) + "\n") - # Make the odd generic factors if ((n % 2) == 1): m = (n-1) // 2 @@ -115,12 +113,9 @@ def siegel_product(self, u): * QQ(sqrt((2 ** n) * f) / (u * d)) \ * abs(QuadraticBernoulliNumber(m, d1) / bernoulli(2*m)) - - # DIAGNOSTIC verbose("siegel_product Break 2. \n") - # Make the even generic factor if ((n % 2) == 0): m = n // 2 @@ -131,16 +126,13 @@ def siegel_product(self, u): #cout << " mpz_class(-1)^m = " << (mpz_class(-1)^m) << " and d = " << d << endl; #cout << " f = " << f << " and d1 = " << d1 << endl; - genericfactor = m / QQ(sqrt(f*d)) \ * ((u/2) ** (m-1)) * (f ** m) \ / abs(QuadraticBernoulliNumber(m, d1)) \ * (2 ** m) # This last factor compensates for using the matrix of 2*Q - ##return genericfactor - # Omit the generic factors in S and compute them separately omit = 1 include = 1 @@ -155,13 +147,11 @@ def siegel_product(self, u): for p in S_divisors: Q_normal = self.local_normal_form(p) - # DIAGNOSTIC verbose(" p = " + str(p) + " and its Kronecker symbol (d1/p) = (" + str(d1) + "/" + str(p) + ") is " + str(kronecker_symbol(d1, p)) + "\n") omit *= 1 / (1 - (kronecker_symbol(d1, p) / (p**m))) - # DIAGNOSTIC verbose(" omit = " + str(omit) + "\n") verbose(" Q_normal is \n" + str(Q_normal) + "\n") diff --git a/src/sage/quadratic_forms/quadratic_form__split_local_covering.py b/src/sage/quadratic_forms/quadratic_form__split_local_covering.py index 2fc02f60e56..ca5c3e68d14 100644 --- a/src/sage/quadratic_forms/quadratic_form__split_local_covering.py +++ b/src/sage/quadratic_forms/quadratic_form__split_local_covering.py @@ -190,7 +190,6 @@ def vectors_by_length(self, bound): # Initialize Q with zeros and Copy the Cholesky array into Q Q = self.cholesky_decomposition() - # 1. Initialize T = n * [RDF(0)] # Note: We index the entries as 0 --> n-1 U = n * [RDF(0)] @@ -354,7 +353,6 @@ def complementary_subform_to_vector(self, v): if not done_flag: raise RuntimeError("There is a problem cancelling out the matrix entries! =O") - # Return the complementary matrix return Q1.extract_variables(range(1,n)) diff --git a/src/sage/quadratic_forms/quadratic_form__theta.py b/src/sage/quadratic_forms/quadratic_form__theta.py index 7763c61a194..5a282713c3b 100644 --- a/src/sage/quadratic_forms/quadratic_form__theta.py +++ b/src/sage/quadratic_forms/quadratic_form__theta.py @@ -126,7 +126,6 @@ def theta_by_pari(self, Max, var_str='q', safe_flag=True): return PowerSeriesRing(ZZ, var_str)(theta_vec, Max) - # ------------- Compute the theta function by using an explicit Cholesky decomposition ------------ @@ -224,8 +223,6 @@ def theta_by_cholesky(self, q_prec): L[i] = floor(Z - U[i]) x[i] = ceil(-Z - U[i]) - 1 - - # 3a. Main loop x[i] += 1 while (x[i] > L[i]): diff --git a/src/sage/repl/rich_output/output_graphics3d.py b/src/sage/repl/rich_output/output_graphics3d.py index 959412570f0..46ff6d67ad1 100644 --- a/src/sage/repl/rich_output/output_graphics3d.py +++ b/src/sage/repl/rich_output/output_graphics3d.py @@ -4,17 +4,14 @@ This module defines the rich output types for 3-d scenes. """ - -#***************************************************************************** +# **************************************************************************** # Copyright (C) 2015 Volker Braun # # Distributed under the terms of the GNU General Public License (GPL) # as published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. -# http://www.gnu.org/licenses/ -#***************************************************************************** - - +# https://www.gnu.org/licenses/ +# **************************************************************************** import os import importlib.resources @@ -23,7 +20,6 @@ from sage.repl.rich_output.buffer import OutputBuffer - class OutputSceneJmol(OutputBase): def __init__(self, scene_zip, preview_png): diff --git a/src/sage/sandpiles/examples.py b/src/sage/sandpiles/examples.py index 9ccc08d314f..e38ce664483 100644 --- a/src/sage/sandpiles/examples.py +++ b/src/sage/sandpiles/examples.py @@ -139,8 +139,7 @@ def Diamond(self): sage: s.invariant_factors() [1, 1, 8] """ - return Sandpile(graphs.DiamondGraph(),0) - + return Sandpile(graphs.DiamondGraph(), 0) def Fan(self, n, deg_three_verts=False): """ diff --git a/src/sage/sets/disjoint_union_enumerated_sets.py b/src/sage/sets/disjoint_union_enumerated_sets.py index c1276dc9edf..8e272984619 100644 --- a/src/sage/sets/disjoint_union_enumerated_sets.py +++ b/src/sage/sets/disjoint_union_enumerated_sets.py @@ -313,7 +313,6 @@ def _repr_(self): """ return "Disjoint union of %s"%self._family - def _is_a(self, x): """ Check if a Sage object ``x`` belongs to ``self``. @@ -340,7 +339,6 @@ def _is_a(self, x): warn("%s is an infinite union\nThe default implementation of __contains__ can loop forever. Please overload it."%(self)) return any(x in a for a in self._family) - def __contains__(self, x): """ Check containment. diff --git a/src/sage/sets/set_from_iterator.py b/src/sage/sets/set_from_iterator.py index 74015c4433d..524ad3ae79b 100644 --- a/src/sage/sets/set_from_iterator.py +++ b/src/sage/sets/set_from_iterator.py @@ -162,7 +162,6 @@ def __init__(self, f, args=None, kwds=None, name=None, category=None, cache=Fals else: Parent.__init__(self, facade = True, category = EnumeratedSets()) - if name is not None: self.rename(name) diff --git a/src/sage/structure/factorization.py b/src/sage/structure/factorization.py index 7636f1a9ba7..b2caa14a285 100644 --- a/src/sage/structure/factorization.py +++ b/src/sage/structure/factorization.py @@ -188,7 +188,6 @@ from sage.misc.cachefunc import cached_method - @richcmp_method class Factorization(SageObject): """ @@ -964,7 +963,6 @@ def __radd__(self, left): """ return self.value() + left - def __rsub__(self, left): """ Return the (unfactored) difference of left and self. diff --git a/src/sage/structure/set_factories.py b/src/sage/structure/set_factories.py index badcbdc3897..f8b8e3643c9 100644 --- a/src/sage/structure/set_factories.py +++ b/src/sage/structure/set_factories.py @@ -792,8 +792,6 @@ def _repr_(self): self._parent_for) - - class BareFunctionPolicy(SetFactoryPolicy): r""" Policy where element are constructed using a bare function. diff --git a/src/sage/symbolic/constants.py b/src/sage/symbolic/constants.py index 87e3d3117ce..b5b8fe7ca33 100644 --- a/src/sage/symbolic/constants.py +++ b/src/sage/symbolic/constants.py @@ -347,7 +347,6 @@ def __reduce__(self): self._conversions, self._latex, self._mathml, self._domain)) - def domain(self): """ Returns the domain of this constant. This is either positive, @@ -815,7 +814,6 @@ def _real_double_(self, R): """ return R('1.61803398874989484820458') - def _mpfr_(self,R): """ EXAMPLES:: @@ -917,7 +915,6 @@ def _real_double_(self, R): """ return R.log2() - def _mpfr_(self,R): """ EXAMPLES:: @@ -1032,7 +1029,6 @@ def __init__(self, name='catalan'): Constant.__init__(self, name, conversions=conversions, domain='positive') - def _mpfr_(self, R): """ EXAMPLES:: @@ -1053,7 +1049,6 @@ def _real_double_(self, R): """ return R('0.91596559417721901505460351493252') - def __float__(self): """ EXAMPLES:: diff --git a/src/sage/symbolic/units.py b/src/sage/symbolic/units.py index 9b5407786e1..6d37d031179 100644 --- a/src/sage/symbolic/units.py +++ b/src/sage/symbolic/units.py @@ -886,7 +886,6 @@ def evalunitdict(): } - ############################################################################### # Dictionary for converting from derived units to base SI units. ############################################################################### From 9a8b269e42bf7d19168593105cc3623cbffcb49b Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Fri, 27 Jan 2023 21:03:41 -0800 Subject: [PATCH 076/249] sage.geometry.integral_points: Fall back to generic impl if matrix_integer_dense is not available --- ...ntegral_points.pyx => integral_points.pxi} | 28 ++++++++----------- src/sage/geometry/integral_points.py | 18 ++++++++++++ .../integral_points_generic_dense.pyx | 6 ++++ .../integral_points_integer_dense.pyx | 6 ++++ src/sage/matrix/matrix_space.py | 2 +- 5 files changed, 42 insertions(+), 18 deletions(-) rename src/sage/geometry/{integral_points.pyx => integral_points.pxi} (98%) create mode 100644 src/sage/geometry/integral_points.py create mode 100644 src/sage/geometry/integral_points_generic_dense.pyx create mode 100644 src/sage/geometry/integral_points_integer_dense.pyx diff --git a/src/sage/geometry/integral_points.pyx b/src/sage/geometry/integral_points.pxi similarity index 98% rename from src/sage/geometry/integral_points.pyx rename to src/sage/geometry/integral_points.pxi index 8b2e54b2d5d..e5ddce891a1 100644 --- a/src/sage/geometry/integral_points.pyx +++ b/src/sage/geometry/integral_points.pxi @@ -1,4 +1,3 @@ -#cython: wraparound=False, boundscheck=False r""" Cython helper methods to compute integral points in polyhedra. """ @@ -19,16 +18,11 @@ import itertools from sage.matrix.constructor import matrix, column_matrix, vector, diagonal_matrix from sage.rings.integer_ring import ZZ -from sage.rings.rational_field import QQ -from sage.rings.real_mpfr import RR from sage.rings.integer cimport Integer -from sage.arith.misc import GCD as gcd +from sage.arith.misc import gcd from sage.arith.functions import lcm -from sage.combinat.permutation import Permutation from sage.misc.misc_c import prod from sage.modules.free_module import FreeModule -from sage.modules.vector_integer_dense cimport Vector_integer_dense -from sage.matrix.matrix_integer_dense cimport Matrix_integer_dense ############################################################################## # The basic idea to enumerate the lattice points in the parallelotope @@ -140,8 +134,8 @@ cpdef tuple parallelotope_points(spanning_points, lattice): sage: len(parallelotope_points(rays, ZZ^4)) 967 """ - cdef Matrix_integer_dense VDinv - cdef Matrix_integer_dense R = matrix(spanning_points).transpose() + cdef MatrixClass VDinv + cdef MatrixClass R = matrix(spanning_points).transpose() e, d, VDinv = ray_matrix_normal_form(R) cdef tuple points = loop_over_parallelotope_points(e, d, VDinv, R, lattice) for p in points: @@ -183,8 +177,8 @@ cpdef tuple ray_matrix_normal_form(R): # The optimized version avoids constructing new matrices, vectors, and lattice points -cpdef tuple loop_over_parallelotope_points(e, d, Matrix_integer_dense VDinv, - Matrix_integer_dense R, lattice, +cpdef tuple loop_over_parallelotope_points(e, d, MatrixClass VDinv, + MatrixClass R, lattice, A=None, b=None): r""" The inner loop of :func:`parallelotope_points`. @@ -224,7 +218,7 @@ cpdef tuple loop_over_parallelotope_points(e, d, Matrix_integer_dense VDinv, s = ZZ.zero() # summation variable cdef list gens = [] gen = lattice(ZZ.zero()) - cdef Vector_integer_dense q_times_d = vector(ZZ, dim) + cdef VectorClass q_times_d = vector(ZZ, dim) for base in itertools.product(*[ range(i) for i in e ]): for i in range(dim): s = ZZ.zero() @@ -308,15 +302,15 @@ cpdef tuple simplex_points(vertices): cdef list rays = [vector(ZZ, list(v)) for v in vertices] if not rays: return () - cdef Vector_integer_dense origin = rays.pop() + cdef VectorClass origin = rays.pop() origin.set_immutable() if not rays: return (origin,) translate_points(rays, origin) # Find equation Ax<=b that cuts out simplex from parallelotope - cdef Matrix_integer_dense Rt = matrix(ZZ, rays) - cdef Matrix_integer_dense R = Rt.transpose() + cdef MatrixClass Rt = matrix(ZZ, rays) + cdef MatrixClass R = Rt.transpose() cdef int nrays = len(rays) cdef Integer b M = FreeModule(ZZ, nrays) @@ -335,7 +329,7 @@ cpdef tuple simplex_points(vertices): return points -cdef translate_points(v_list, Vector_integer_dense delta): +cdef translate_points(v_list, VectorClass delta): r""" Add ``delta`` to each vector in ``v_list``. """ @@ -568,7 +562,7 @@ cpdef rectangular_box_points(list box_min, list box_max, return loop_over_rectangular_box_points(box_min, box_max, inequalities, d, count_only) cdef list points = [] - cdef Vector_integer_dense v = vector(ZZ, d) + cdef VectorClass v = vector(ZZ, d) if not return_saturated: for p in loop_over_rectangular_box_points(box_min, box_max, inequalities, d, count_only): # v = vector(ZZ, perm_action(orig_perm, p)) # too slow diff --git a/src/sage/geometry/integral_points.py b/src/sage/geometry/integral_points.py new file mode 100644 index 00000000000..d349f8222b1 --- /dev/null +++ b/src/sage/geometry/integral_points.py @@ -0,0 +1,18 @@ +try: + from .integral_points_integer_dense import ( + parallelotope_points, + ray_matrix_normal_form, + loop_over_parallelotope_points, + simplex_points, + rectangular_box_points, + print_cache + ) +except ImportError: + from .integral_points_generic_dense import ( + parallelotope_points, + ray_matrix_normal_form, + loop_over_parallelotope_points, + simplex_points, + rectangular_box_points, + print_cache + ) diff --git a/src/sage/geometry/integral_points_generic_dense.pyx b/src/sage/geometry/integral_points_generic_dense.pyx new file mode 100644 index 00000000000..5ff619f44d4 --- /dev/null +++ b/src/sage/geometry/integral_points_generic_dense.pyx @@ -0,0 +1,6 @@ +#cython: wraparound=False, boundscheck=False + +from sage.modules.vector_integer_dense cimport Vector_integer_dense as VectorClass +from sage.matrix.matrix_dense cimport Matrix_dense as MatrixClass + +include "integral_points.pxi" diff --git a/src/sage/geometry/integral_points_integer_dense.pyx b/src/sage/geometry/integral_points_integer_dense.pyx new file mode 100644 index 00000000000..0151ffed5c0 --- /dev/null +++ b/src/sage/geometry/integral_points_integer_dense.pyx @@ -0,0 +1,6 @@ +#cython: wraparound=False, boundscheck=False + +from sage.modules.vector_integer_dense cimport Vector_integer_dense as VectorClass +from sage.matrix.matrix_integer_dense cimport Matrix_integer_dense as MatrixClass + +include "integral_points.pxi" diff --git a/src/sage/matrix/matrix_space.py b/src/sage/matrix/matrix_space.py index e889cee7905..818f8b01f5c 100644 --- a/src/sage/matrix/matrix_space.py +++ b/src/sage/matrix/matrix_space.py @@ -397,7 +397,7 @@ def get_matrix_class(R, nrows, ncols, sparse, implementation): else: return matrix_integer_sparse.Matrix_integer_sparse - if R is sage.rings.real_double.RDF or R is sage.rings.complex_double.CDF: + if isinstance(R, (sage.rings.abc.RealDoubleField, sage.rings.abc.ComplexDoubleField)): from . import matrix_double_sparse return matrix_double_sparse.Matrix_double_sparse From 2b6fb60309e417cc24accfc25d64c76c37991874 Mon Sep 17 00:00:00 2001 From: Travis Scrimshaw Date: Wed, 15 Feb 2023 14:05:55 +0900 Subject: [PATCH 077/249] Fixing the hashing of skew tableaux. --- src/sage/combinat/skew_tableau.py | 35 ++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/src/sage/combinat/skew_tableau.py b/src/sage/combinat/skew_tableau.py index 66c0a410f8f..5ed0965938a 100644 --- a/src/sage/combinat/skew_tableau.py +++ b/src/sage/combinat/skew_tableau.py @@ -148,11 +148,11 @@ def __eq__(self, other): INPUT: - ``other`` -- the element that ``self`` is compared to + - ``other`` -- the element that ``self`` is compared to OUTPUT: - A Boolean. + A boolean. TESTS:: @@ -161,6 +161,10 @@ def __eq__(self, other): False sage: t == SkewTableaux()([[None,1,2]]) True + sage: t == [(None,1,2)] + True + sage: t == [[None,1,2]] + True sage: s = SkewTableau([[1,2]]) sage: s == 0 @@ -171,7 +175,7 @@ def __eq__(self, other): if isinstance(other, (Tableau, SkewTableau)): return list(self) == list(other) else: - return list(self) == other + return list(self) == other or list(list(row) for row in self) == other def __ne__(self, other): r""" @@ -181,22 +185,33 @@ def __ne__(self, other): INPUT: - ``other`` -- the element that ``self`` is compared to + - ``other`` -- the element that ``self`` is compared to OUTPUT: - A Boolean. + A boolean. TESTS:: - sage: t = Tableau([[2,3],[1]]) + sage: t = SkewTableau([[None,1,2]]) sage: t != [] True """ - if isinstance(other, (Tableau, SkewTableau)): - return list(self) != list(other) - else: - return list(self) != other + return not (self == other) + + def __hash__(self): + """ + Return the hash of ``self``. + + EXAMPLES: + + Check that :trac:`35137` is fixed:: + + sage: t = SkewTableau([[None,1,2]]) + sage: hash(t) == hash(tuple(t)) + True + """ + return hash(tuple(self)) def check(self): r""" From 60e3509a451278ef9d93eb6239a4fed4e7dbd548 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 14 Feb 2023 21:52:00 -0800 Subject: [PATCH 078/249] src/sage/geometry/integral_points.py: import more, for doctests --- src/sage/geometry/integral_points.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/sage/geometry/integral_points.py b/src/sage/geometry/integral_points.py index d349f8222b1..48153591bcf 100644 --- a/src/sage/geometry/integral_points.py +++ b/src/sage/geometry/integral_points.py @@ -5,7 +5,10 @@ loop_over_parallelotope_points, simplex_points, rectangular_box_points, - print_cache + print_cache, + Inequality_generic, + Inequality_int, + InequalityCollection, ) except ImportError: from .integral_points_generic_dense import ( @@ -14,5 +17,8 @@ loop_over_parallelotope_points, simplex_points, rectangular_box_points, - print_cache + print_cache, + Inequality_generic, + Inequality_int, + InequalityCollection, ) From 6f3416b8f4a5a21013c10bf38e465624eaffcd9c Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Wed, 15 Feb 2023 14:59:05 +0900 Subject: [PATCH 079/249] Edit the PR template --- .github/PULL_REQUEST_TEMPLATE.md | 35 +++++++++++++++----------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 0ba5857b820..0710261fc34 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,29 +1,26 @@ - -### 📚 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 - - +### :hourglass: Dependencies + + + From e51619e27cf7756fe76e2c21aa1edf8f59047bcb Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Wed, 15 Feb 2023 15:10:08 +0900 Subject: [PATCH 080/249] More edits in dependencies section --- .github/PULL_REQUEST_TEMPLATE.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 0710261fc34..87de00728f8 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -10,8 +10,7 @@ ### :memo: Checklist - - + - [ ] The title is concise, informative, and self-explanatory. - [ ] The description explains in detail what this PR is about. @@ -21,6 +20,9 @@ ### :hourglass: Dependencies - - - + + + From 0fbbe9fa86cc19f0649d7716d0ee7a0a593f5c36 Mon Sep 17 00:00:00 2001 From: Tirthankar Mazumder <63574588+wermos@users.noreply.github.com> Date: Wed, 15 Feb 2023 12:37:15 +0530 Subject: [PATCH 081/249] Update README.md Fixed the path to the Sage logo. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1a0582d87c5..5c05c4150f3 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ - + # Sage: Open Source Mathematical Software From 02451487d79434f7104e70f8f9f213344ddf85a9 Mon Sep 17 00:00:00 2001 From: Aram Dermenjian Date: Wed, 15 Feb 2023 08:08:26 +0000 Subject: [PATCH 082/249] Make Tableau tests not as generic --- src/sage/combinat/tableau.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sage/combinat/tableau.py b/src/sage/combinat/tableau.py index c08358032c1..269734c2ce6 100644 --- a/src/sage/combinat/tableau.py +++ b/src/sage/combinat/tableau.py @@ -866,7 +866,7 @@ def plot(self, descents=False): .. PLOT:: :width: 200 px - t = Tableau([[1,2],[2,3]]) + t = Tableau([[1,2,3,4],[2,3],[5]]) Tableaux.options.convention="english" sphinx_plot(t.plot()) @@ -876,7 +876,7 @@ def plot(self, descents=False): .. PLOT:: :width: 200 px - t = Tableau([[1,2],[2,3]]) + t = Tableau([[1,2,3,4],[2,3],[5]]) Tableaux.options.convention="french" sphinx_plot(t.plot()) Tableaux.options.convention="english" From c60f1def292f88db601ba17348aaf6db5d12ea09 Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Wed, 15 Feb 2023 18:05:50 +0900 Subject: [PATCH 083/249] Keep dependencies as a list --- .github/PULL_REQUEST_TEMPLATE.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 87de00728f8..10367d46dbb 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,5 +1,6 @@ + ### :books: Description @@ -21,8 +22,8 @@ ### :hourglass: Dependencies From 05bff634ff7a52bd8c6dd39feaea448b9daa91ad Mon Sep 17 00:00:00 2001 From: dcoudert Date: Wed, 15 Feb 2023 18:03:26 +0100 Subject: [PATCH 084/249] #33255: remove trailing whitespaces --- src/sage/graphs/generic_graph.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sage/graphs/generic_graph.py b/src/sage/graphs/generic_graph.py index 3c497ab00d8..19021cde1e9 100644 --- a/src/sage/graphs/generic_graph.py +++ b/src/sage/graphs/generic_graph.py @@ -1272,14 +1272,14 @@ def copy(self, weighted=None, data_structure=None, sparse=None, immutable=None, if (isinstance(self._backend, StaticSparseBackend) and (data_structure == 'static_sparse' or data_structure is None)): return self - + if data_structure is None: from sage.graphs.base.dense_graph import DenseGraphBackend if isinstance(self._backend, DenseGraphBackend): data_structure = "dense" else: data_structure = "sparse" - + G = self.__class__(self, name=self.name(), pos=copy(self._pos), weighted=weighted, hash_labels=hash_labels, data_structure=data_structure) From d3618f1a4a4597471059023e2301958947a72c94 Mon Sep 17 00:00:00 2001 From: dcoudert Date: Wed, 15 Feb 2023 23:24:46 +0100 Subject: [PATCH 085/249] #33255: trailing whitespaces in bipartite_graph.py --- src/sage/graphs/bipartite_graph.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/graphs/bipartite_graph.py b/src/sage/graphs/bipartite_graph.py index 0e304aedd65..d4abf9aa747 100644 --- a/src/sage/graphs/bipartite_graph.py +++ b/src/sage/graphs/bipartite_graph.py @@ -594,7 +594,7 @@ def __hash__(self): use_labels = self._use_labels_for_hash() edge_items = self.edge_iterator(labels=use_labels) if self.allows_multiple_edges(): - from collections import Counter + from collections import Counter edge_items = Counter(edge_items).items() return hash((frozenset(self.left), frozenset(self.right), frozenset(edge_items))) From 7ecdd57bf0263a60458a6adfec53e8a68c913352 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Thu, 26 Jan 2023 20:54:48 -0800 Subject: [PATCH 086/249] src/sage/geometry/polyhedron: Add # optional - sage.combinat, sage.groups, sage.plot, sage.rings.number_field, sage.symbolic --- .../polyhedron/backend_number_field.py | 6 +- src/sage/geometry/polyhedron/base.py | 16 +- src/sage/geometry/polyhedron/base2.py | 36 ++-- src/sage/geometry/polyhedron/base5.py | 24 +-- src/sage/geometry/polyhedron/base6.py | 78 ++++----- src/sage/geometry/polyhedron/base7.py | 42 ++--- src/sage/geometry/polyhedron/constructor.py | 8 +- .../polyhedron/generating_function.py | 1 + src/sage/geometry/polyhedron/library.py | 159 +++++++++--------- src/sage/geometry/polyhedron/parent.py | 14 +- src/sage/geometry/polyhedron/plot.py | 105 ++++++------ src/sage/numerical/all__sagemath_polyhedra.py | 9 + .../backends/all__sagemath_polyhedra.py | 0 13 files changed, 263 insertions(+), 235 deletions(-) create mode 100644 src/sage/numerical/all__sagemath_polyhedra.py create mode 100644 src/sage/numerical/backends/all__sagemath_polyhedra.py diff --git a/src/sage/geometry/polyhedron/backend_number_field.py b/src/sage/geometry/polyhedron/backend_number_field.py index 437550de3aa..a963ad9d770 100644 --- a/src/sage/geometry/polyhedron/backend_number_field.py +++ b/src/sage/geometry/polyhedron/backend_number_field.py @@ -119,11 +119,11 @@ def _init_from_Vrepresentation(self, vertices, rays, lines, Check that the coordinates of a vertex get simplified in the Symbolic Ring:: - sage: p = Polyhedron(ambient_dim=2, base_ring=SR, backend='number_field') + sage: p = Polyhedron(ambient_dim=2, base_ring=SR, backend='number_field') # optional - sage.symbolic sage: from sage.geometry.polyhedron.backend_number_field import Polyhedron_number_field - sage: Polyhedron_number_field._init_from_Vrepresentation(p, [(0,1/2),(sqrt(2),0),(4,5/6)], [], []); p + sage: Polyhedron_number_field._init_from_Vrepresentation(p, [(0,1/2),(sqrt(2),0),(4,5/6)], [], []); p # optional - sage.symbolic A 2-dimensional polyhedron in (Symbolic Ring)^2 defined as the convex hull of 3 vertices - sage: p.vertices()[0][0] + sage: p.vertices()[0][0] # optional - sage.symbolic 0 """ (vertices, rays, lines), internal_base_ring \ diff --git a/src/sage/geometry/polyhedron/base.py b/src/sage/geometry/polyhedron/base.py index 77a11c53d21..9704f6ea607 100644 --- a/src/sage/geometry/polyhedron/base.py +++ b/src/sage/geometry/polyhedron/base.py @@ -318,11 +318,11 @@ def boundary_complex(self): sage: oc = polytopes.octahedron() sage: sc_oc = oc.boundary_complex() - sage: fl_oc = oc.face_lattice() - sage: fl_sc = sc_oc.face_poset() - sage: [len(x) for x in fl_oc.level_sets()] + sage: fl_oc = oc.face_lattice() # optional - sage.combinat + sage: fl_sc = sc_oc.face_poset() # optional - sage.combinat + sage: [len(x) for x in fl_oc.level_sets()] # optional - sage.combinat [1, 6, 12, 8, 1] - sage: [len(x) for x in fl_sc.level_sets()] + sage: [len(x) for x in fl_sc.level_sets()] # optional - sage.combinat [6, 12, 8] sage: sc_oc.euler_characteristic() 2 @@ -1056,7 +1056,7 @@ def bounding_box(self, integral=False, integral_hull=False): (None, None) sage: Polyhedron([ (1/3,2/3), (3/3, 4/3) ]).bounding_box(integral_hull=True) ((1, 1), (1, 1)) - sage: polytopes.buckyball(exact=False).bounding_box() + sage: polytopes.buckyball(exact=False).bounding_box() # optional - sage.groups ((-0.8090169944, -0.8090169944, -0.8090169944), (0.8090169944, 0.8090169944, 0.8090169944)) TESTS:: @@ -1161,12 +1161,12 @@ def _polymake_init_(self): Floating-point polyhedron:: - sage: P = polytopes.dodecahedron(exact=False); P + sage: P = polytopes.dodecahedron(exact=False); P # optional - sage.groups A 3-dimensional polyhedron in RDF^3 defined as the convex hull of 20 vertices - sage: print("There may be a recompilation warning"); PP = polymake(P); PP # optional - jupymake + sage: print("There may be a recompilation warning"); PP = polymake(P); PP # optional - jupymake # optional - sage.groups There may be a recompilation warning... Polytope[...] - sage: sorted(PP.VERTICES[:], key=repr)[0] # optional - jupymake + sage: sorted(PP.VERTICES[:], key=repr)[0] # optional - jupymake # optional - sage.groups 1 -0.472135955 0 -1.236067978 """ diff --git a/src/sage/geometry/polyhedron/base2.py b/src/sage/geometry/polyhedron/base2.py index 9afeeaaef1f..fa0765795cb 100644 --- a/src/sage/geometry/polyhedron/base2.py +++ b/src/sage/geometry/polyhedron/base2.py @@ -262,21 +262,21 @@ def h_star_vector(self): volume = `\frac{1}{dim(S)!}`) is always 1. Here we test this on simplices up to dimension 3:: - sage: s1 = polytopes.simplex(1,backend='normaliz') # optional - pynormaliz - sage: s2 = polytopes.simplex(2,backend='normaliz') # optional - pynormaliz - sage: s3 = polytopes.simplex(3,backend='normaliz') # optional - pynormaliz - sage: [s1.h_star_vector(),s2.h_star_vector(),s3.h_star_vector()] # optional - pynormaliz + sage: s1 = polytopes.simplex(1,backend='normaliz') # optional - pynormaliz + sage: s2 = polytopes.simplex(2,backend='normaliz') # optional - pynormaliz + sage: s3 = polytopes.simplex(3,backend='normaliz') # optional - pynormaliz + sage: [s1.h_star_vector(), s2.h_star_vector(), s3.h_star_vector()] # optional - pynormaliz [[1], [1], [1]] For a less trivial example, we compute the `h^*`-vector of the `0/1`-cube, which has the Eulerian numbers `(3,i)` for `i \in [0,2]` as an `h^*`-vector:: - sage: cube = polytopes.cube(intervals='zero_one', backend='normaliz') # optional - pynormaliz - sage: cube.h_star_vector() # optional - pynormaliz + sage: cube = polytopes.cube(intervals='zero_one', backend='normaliz') # optional - pynormaliz + sage: cube.h_star_vector() # optional - pynormaliz [1, 4, 1] - sage: from sage.combinat.combinat import eulerian_number - sage: [eulerian_number(3,i) for i in range(3)] + sage: from sage.combinat.combinat import eulerian_number # optional - sage.combinat + sage: [eulerian_number(3,i) for i in range(3)] # optional - sage.combinat [1, 4, 1] TESTS:: @@ -293,8 +293,8 @@ def h_star_vector(self): ... TypeError: The h_star vector is only defined for lattice polytopes - sage: t2 = Polyhedron(vertices=[[AA(sqrt(2))],[1/2]]) - sage: t2.h_star_vector() + sage: t2 = Polyhedron(vertices=[[AA(sqrt(2))], [1/2]]) # optional - sage.rings.number_field + sage: t2.h_star_vector() # optional - sage.rings.number_field Traceback (most recent call last): ... TypeError: The h_star vector is only defined for lattice polytopes @@ -767,15 +767,15 @@ def generating_function_of_integral_points(self, **kwds): sage: P2 = ( ....: Polyhedron(ieqs=[(0, 0, 0, 1), (0, 0, 1, 0), (0, 1, 0, -1)]), ....: Polyhedron(ieqs=[(0, -1, 0, 1), (0, 1, 0, 0), (0, 0, 1, 0)])) - sage: P2[0].generating_function_of_integral_points(sort_factors=True) + sage: P2[0].generating_function_of_integral_points(sort_factors=True) # optional - sage.combinat 1 * (-y0 + 1)^-1 * (-y1 + 1)^-1 * (-y0*y2 + 1)^-1 - sage: P2[1].generating_function_of_integral_points(sort_factors=True) + sage: P2[1].generating_function_of_integral_points(sort_factors=True) # optional - sage.combinat 1 * (-y1 + 1)^-1 * (-y2 + 1)^-1 * (-y0*y2 + 1)^-1 sage: (P2[0] & P2[1]).Hrepresentation() (An equation (1, 0, -1) x + 0 == 0, An inequality (1, 0, 0) x + 0 >= 0, An inequality (0, 1, 0) x + 0 >= 0) - sage: (P2[0] & P2[1]).generating_function_of_integral_points(sort_factors=True) + sage: (P2[0] & P2[1]).generating_function_of_integral_points(sort_factors=True) # optional - sage.combinat 1 * (-y1 + 1)^-1 * (-y0*y2 + 1)^-1 The number of integer partitions @@ -784,16 +784,16 @@ def generating_function_of_integral_points(self, **kwds): sage: P = Polyhedron(ieqs=[(-1, 1, 0, 0, 0, 0), (0, -1, 1, 0, 0, 0), ....: (0, 0, -1, 1, 0, 0), (0, 0, 0, -1, 1, 0), ....: (0, 0, 0, 0, -1, 1)]) - sage: f = P.generating_function_of_integral_points(sort_factors=True); f + sage: f = P.generating_function_of_integral_points(sort_factors=True); f # optional - sage.combinat y0*y1*y2*y3*y4 * (-y4 + 1)^-1 * (-y3*y4 + 1)^-1 * (-y2*y3*y4 + 1)^-1 * (-y1*y2*y3*y4 + 1)^-1 * (-y0*y1*y2*y3*y4 + 1)^-1 - sage: f = f.value() - sage: P. = PowerSeriesRing(ZZ) - sage: c = f.subs({y: z for y in f.parent().gens()}); c + sage: f = f.value() # optional - sage.combinat + sage: P. = PowerSeriesRing(ZZ) # optional - sage.combinat + sage: c = f.subs({y: z for y in f.parent().gens()}); c # optional - sage.combinat z^5 + z^6 + 2*z^7 + 3*z^8 + 5*z^9 + 7*z^10 + 10*z^11 + 13*z^12 + 18*z^13 + 23*z^14 + 30*z^15 + 37*z^16 + 47*z^17 + 57*z^18 + 70*z^19 + 84*z^20 + 101*z^21 + 119*z^22 + 141*z^23 + 164*z^24 + O(z^25) - sage: [Partitions(k, length=5).cardinality() for k in range(5,20)] == \ + sage: [Partitions(k, length=5).cardinality() for k in range(5,20)] == \ # optional - sage.combinat ....: c.truncate().coefficients(sparse=False)[5:20] True diff --git a/src/sage/geometry/polyhedron/base5.py b/src/sage/geometry/polyhedron/base5.py index 04d1fa0314b..d83a1593e54 100644 --- a/src/sage/geometry/polyhedron/base5.py +++ b/src/sage/geometry/polyhedron/base5.py @@ -1348,11 +1348,13 @@ def intersection(self, other): Check that :trac:`19012` is fixed:: - sage: K. = QuadraticField(5) - sage: P = Polyhedron([[0,0],[0,a],[1,1]]) - sage: Q = Polyhedron(ieqs=[[-1,a,1]]) - sage: P.intersection(Q) - A 2-dimensional polyhedron in (Number Field in a with defining polynomial x^2 - 5 with a = 2.236067977499790?)^2 defined as the convex hull of 4 vertices + sage: K. = QuadraticField(5) # optional - sage.rings.number_field + sage: P = Polyhedron([[0, 0], [0, a], [1, 1]]) # optional - sage.rings.number_field + sage: Q = Polyhedron(ieqs=[[-1, a, 1]]) # optional - sage.rings.number_field + sage: P.intersection(Q) # optional - sage.rings.number_field + A 2-dimensional polyhedron in + (Number Field in a with defining polynomial x^2 - 5 with a = 2.236067977499790?)^2 + defined as the convex hull of 4 vertices """ new_ieqs = self.inequalities() + other.inequalities() new_eqns = self.equations() + other.equations() @@ -1993,7 +1995,7 @@ def face_truncation(self, face, linear_coefficients=None, cut_frac=None): A vertex at (-1/3, 1, 1), A vertex at (-1/3, 1, -1), A vertex at (-1/3, -1, -1)) - sage: face_trunc.face_lattice().is_isomorphic(Cube.face_lattice()) + sage: face_trunc.face_lattice().is_isomorphic(Cube.face_lattice()) # optional - sage.combinat True TESTS: @@ -2227,10 +2229,10 @@ def wedge(self, face, width=1): sage: W1.is_combinatorially_isomorphic(triangular_prism) # optional - sage.graphs # optional - sage.rings.number_field True - sage: Q = polytopes.hypersimplex(4,2) - sage: W2 = Q.wedge(Q.faces(2)[7]); W2 + sage: Q = polytopes.hypersimplex(4,2) # optional - sage.combinat + sage: W2 = Q.wedge(Q.faces(2)[7]); W2 # optional - sage.combinat A 4-dimensional polyhedron in QQ^5 defined as the convex hull of 9 vertices - sage: W2.vertices() + sage: W2.vertices() # optional - sage.combinat (A vertex at (1, 1, 0, 0, 1), A vertex at (1, 1, 0, 0, -1), A vertex at (1, 0, 1, 0, 1), @@ -2241,9 +2243,9 @@ def wedge(self, face, width=1): A vertex at (0, 1, 1, 0, 0), A vertex at (0, 1, 0, 1, 0)) - sage: W3 = Q.wedge(Q.faces(1)[11]); W3 + sage: W3 = Q.wedge(Q.faces(1)[11]); W3 # optional - sage.combinat A 4-dimensional polyhedron in QQ^5 defined as the convex hull of 10 vertices - sage: W3.vertices() + sage: W3.vertices() # optional - sage.combinat (A vertex at (1, 1, 0, 0, -2), A vertex at (1, 1, 0, 0, 2), A vertex at (1, 0, 1, 0, -2), diff --git a/src/sage/geometry/polyhedron/base6.py b/src/sage/geometry/polyhedron/base6.py index 2dd1117ad79..a279898247e 100644 --- a/src/sage/geometry/polyhedron/base6.py +++ b/src/sage/geometry/polyhedron/base6.py @@ -45,9 +45,9 @@ class Polyhedron_base6(Polyhedron_base5): sage: from sage.geometry.polyhedron.base6 import Polyhedron_base6 sage: P = polytopes.cube() - sage: Polyhedron_base6.plot(P) + sage: Polyhedron_base6.plot(P) # optional - sage.plot Graphics3d Object - sage: print(Polyhedron_base6.tikz(P, output_type='TikzPicture')) + sage: print(Polyhedron_base6.tikz(P, output_type='TikzPicture')) # optional - sage.plot \RequirePackage{luatex85} \documentclass[tikz]{standalone} \begin{document} @@ -130,7 +130,7 @@ class Polyhedron_base6(Polyhedron_base5): \end{document} sage: Q = polytopes.hypercube(4) - sage: Polyhedron_base6.show(Q) + sage: Polyhedron_base6.show(Q) # optional - sage.plot sage: Polyhedron_base6.schlegel_projection(Q) The projection of a polyhedron into 3 dimensions @@ -383,25 +383,25 @@ def plot(self, sage: halfspace = Polyhedron(rays=[(0, 0, 1)], lines=[(1, 0, 0), (0, 1, 0)]) sage: len(halfspace.projection().arrows) 5 - sage: halfspace.plot(fill=(0,1,0)) + sage: halfspace.plot(fill=(0, 1, 0)) # optional - sage.plot Graphics3d Object sage: fullspace = Polyhedron(lines=[(1, 0, 0), (0, 1, 0), (0, 0, 1)]) sage: len(fullspace.projection().arrows) 6 - sage: fullspace.plot(color=(1,0,0), alpha=0.5) + sage: fullspace.plot(color=(1, 0, 0), alpha=0.5) # optional - sage.plot Graphics3d Object sage: cone = Polyhedron(rays=[(1, 0, 0), (0, 1, 0), (0, 0, 1)]) - sage: cone.plot(fill='rainbow', alpha=0.6) + sage: cone.plot(fill='rainbow', alpha=0.6) # optional - sage.plot Graphics3d Object - sage: p = Polyhedron(vertices=[(0,0,0),(1,0,0)],rays=[(-1,1,0),(1,1,0),(0,0,1)]) - sage: p.plot(fill='mediumspringgreen', point='red', size=30, width=2) + sage: p = Polyhedron(vertices=[(0, 0, 0), (1, 0, 0)], rays=[(-1, 1, 0), (1, 1, 0), (0, 0, 1)]) + sage: p.plot(fill='mediumspringgreen', point='red', size=30, width=2) # optional - sage.plot Graphics3d Object - sage: cylinder = Polyhedron(vertices = [(0, 0, 0), (1, 0, 0), (0, 1, 0)], lines=[(0, 0, 1)]) - sage: cylinder.plot(fill='red') # check it is not all black + sage: cylinder = Polyhedron(vertices=[(0, 0, 0), (1, 0, 0), (0, 1, 0)], lines=[(0, 0, 1)]) + sage: cylinder.plot(fill='red') # check it is not all black # optional - sage.plot Graphics3d Object - sage: quarter = Polyhedron(rays = [(-1, 0, 0), (1, 0, 0), (0, 1, 0), (0, 0, 1)]) - sage: quarter.plot(fill='rainbow') # check it is not all black nor with too many colors + sage: quarter = Polyhedron(rays=[(-1, 0, 0), (1, 0, 0), (0, 1, 0), (0, 0, 1)]) + sage: quarter.plot(fill='rainbow') # check it is not all black nor with too many colors # optional - sage.plot Graphics3d Object """ def merge_options(*opts): @@ -545,8 +545,8 @@ def tikz(self, view=[0, 0, 1], angle=0, scale=1, EXAMPLES:: sage: co = polytopes.cuboctahedron() - sage: Img = co.tikz([0,0,1], 0, output_type='TikzPicture') - sage: Img + sage: Img = co.tikz([0, 0, 1], 0, output_type='TikzPicture') # optional - sage.plot + sage: Img # optional - sage.plot \documentclass[tikz]{standalone} \begin{document} \begin{tikzpicture}% @@ -563,7 +563,7 @@ def tikz(self, view=[0, 0, 1], angle=0, scale=1, %% \end{tikzpicture} \end{document} - sage: print('\n'.join(Img.content().splitlines()[12:21])) + sage: print('\n'.join(Img.content().splitlines()[12:21])) # optional - sage.plot %% with the command: ._tikz_3d_in_3d and parameters: %% view = [0, 0, 1] %% angle = 0 @@ -582,8 +582,8 @@ def tikz(self, view=[0, 0, 1], angle=0, scale=1, When output type is a :class:`sage.misc.latex_standalone.TikzPicture`:: sage: co = polytopes.cuboctahedron() - sage: t = co.tikz([674,108,-731], 112, output_type='TikzPicture') - sage: t + sage: t = co.tikz([674, 108, -731], 112, output_type='TikzPicture') # optional - sage.plot + sage: t # optional - sage.plot \documentclass[tikz]{standalone} \begin{document} \begin{tikzpicture}% @@ -600,7 +600,7 @@ def tikz(self, view=[0, 0, 1], angle=0, scale=1, %% \end{tikzpicture} \end{document} - sage: path_to_file = t.pdf() # not tested + sage: path_to_file = t.pdf() # not tested # optional - sage.plot """ return self.projection().tikz(view, angle, scale, @@ -692,8 +692,8 @@ def gale_transform(self): Check that :trac:`29073` is fixed:: - sage: P = polytopes.icosahedron(exact=False) - sage: sum(P.gale_transform()).norm() < 1e-15 + sage: P = polytopes.icosahedron(exact=False) # optional - sage.groups + sage: sum(P.gale_transform()).norm() < 1e-15 # optional - sage.groups True """ if not self.is_compact(): @@ -784,8 +784,8 @@ def render_solid(self, **kwds): EXAMPLES:: sage: p = polytopes.hypercube(3) - sage: p_solid = p.render_solid(opacity = .7) - sage: type(p_solid) + sage: p_solid = p.render_solid(opacity=.7) # optional - sage.plot + sage: type(p_solid) # optional - sage.plot """ proj = self.projection() @@ -803,8 +803,8 @@ def render_wireframe(self, **kwds): EXAMPLES:: sage: p = Polyhedron([[1,2,],[1,1],[0,0]]) - sage: p_wireframe = p.render_wireframe() - sage: p_wireframe._objects + sage: p_wireframe = p.render_wireframe() # optional - sage.plot + sage: p_wireframe._objects # optional - sage.plot [Line defined by 2 points, Line defined by 2 points, Line defined by 2 points] """ proj = self.projection() @@ -1562,44 +1562,44 @@ def affine_hull_manifold(self, name=None, latex_name=None, start_index=0, ambien EXAMPLES:: - sage: triangle = Polyhedron([(1,0,0), (0,1,0), (0,0,1)]); triangle + sage: triangle = Polyhedron([(1, 0, 0), (0, 1, 0), (0, 0, 1)]); triangle A 2-dimensional polyhedron in ZZ^3 defined as the convex hull of 3 vertices - sage: A = triangle.affine_hull_manifold(name='A'); A + sage: A = triangle.affine_hull_manifold(name='A'); A # optional - sage.symbolic 2-dimensional Riemannian submanifold A embedded in the Euclidean space E^3 - sage: A.embedding().display() + sage: A.embedding().display() # optional - sage.symbolic A → E^3 (x0, x1) ↦ (x, y, z) = (t0 + x0, t0 + x1, t0 - x0 - x1 + 1) - sage: A.embedding().inverse().display() + sage: A.embedding().inverse().display() # optional - sage.symbolic E^3 → A (x, y, z) ↦ (x0, x1) = (x, y) - sage: A.adapted_chart() + sage: A.adapted_chart() # optional - sage.symbolic [Chart (E^3, (x0_E3, x1_E3, t0_E3))] - sage: A.normal().display() + sage: A.normal().display() # optional - sage.symbolic n = 1/3*sqrt(3) e_x + 1/3*sqrt(3) e_y + 1/3*sqrt(3) e_z - sage: A.induced_metric() # Need to call this before volume_form + sage: A.induced_metric() # Need to call this before volume_form # optional - sage.symbolic Riemannian metric gamma on the 2-dimensional Riemannian submanifold A embedded in the Euclidean space E^3 - sage: A.volume_form() + sage: A.volume_form() # optional - sage.symbolic 2-form eps_gamma on the 2-dimensional Riemannian submanifold A embedded in the Euclidean space E^3 Orthogonal version:: - sage: A = triangle.affine_hull_manifold(name='A', orthogonal=True); A + sage: A = triangle.affine_hull_manifold(name='A', orthogonal=True); A # optional - sage.symbolic 2-dimensional Riemannian submanifold A embedded in the Euclidean space E^3 - sage: A.embedding().display() + sage: A.embedding().display() # optional - sage.symbolic A → E^3 (x0, x1) ↦ (x, y, z) = (t0 - 1/2*x0 - 1/3*x1 + 1, t0 + 1/2*x0 - 1/3*x1, t0 + 2/3*x1) - sage: A.embedding().inverse().display() + sage: A.embedding().inverse().display() # optional - sage.symbolic E^3 → A (x, y, z) ↦ (x0, x1) = (-x + y + 1, -1/2*x - 1/2*y + z + 1/2) Arrangement of affine hull of facets:: sage: D = polytopes.dodecahedron() # optional - sage.rings.number_field - sage: E3 = EuclideanSpace(3) # optional - sage.rings.number_field - sage: submanifolds = [ # optional - sage.rings.number_field + sage: E3 = EuclideanSpace(3) # optional - sage.rings.number_field # optional - sage.symbolic + sage: submanifolds = [ # optional - sage.rings.number_field # optional - sage.symbolic ....: F.as_polyhedron().affine_hull_manifold(name=f'F{i}', orthogonal=True, ambient_space=E3) ....: for i, F in enumerate(D.facets())] - sage: sum(FM.plot({}, srange(-2, 2, 0.1), srange(-2, 2, 0.1), opacity=0.2) # not tested # optional - sage.plot # optional - sage.rings.number_field + sage: sum(FM.plot({}, srange(-2, 2, 0.1), srange(-2, 2, 0.1), opacity=0.2) # not tested # optional - sage.symbolic # optional - sage.plot # optional - sage.rings.number_field ....: for FM in submanifolds) + D.plot() Graphics3d Object @@ -1607,7 +1607,7 @@ def affine_hull_manifold(self, name=None, latex_name=None, start_index=0, ambien sage: cube = polytopes.cube(); cube A 3-dimensional polyhedron in ZZ^3 defined as the convex hull of 8 vertices - sage: cube.affine_hull_manifold() + sage: cube.affine_hull_manifold() # optional - sage.symbolic Euclidean space E^3 """ diff --git a/src/sage/geometry/polyhedron/base7.py b/src/sage/geometry/polyhedron/base7.py index db828e2eb0a..021eaa679ac 100644 --- a/src/sage/geometry/polyhedron/base7.py +++ b/src/sage/geometry/polyhedron/base7.py @@ -44,12 +44,15 @@ class Polyhedron_base7(Polyhedron_base6): TESTS:: sage: from sage.geometry.polyhedron.base7 import Polyhedron_base7 - sage: P = polytopes.associahedron(['A', 3]) - sage: Polyhedron_base7.centroid(P) + sage: P = polytopes.associahedron(['A', 3]) # optional - sage.combinat + sage: Polyhedron_base7.centroid(P) # optional - sage.combinat (81/632, 36/79, 81/632) - sage: Polyhedron_base7.triangulate(P) - (<0,1,2,13>, <0,1,7,13>, <0,2,5,13>, <0,6,7,12>, <0,6,8,13>, <0,6,12,13>, <0,7,12,13>, <1,2,7,12>, <1,2,12,13>, <1,7,12,13>, <2,3,7,12>, <2,3,12,13>, <3,4,7,12>, <3,11,12,13>, <6,8,9,12>, <6,8,12,13>, <6,9,10,12>, <8,9,12,13>) - sage: Polyhedron_base7.volume(P, measure='induced') + sage: Polyhedron_base7.triangulate(P) # optional - sage.combinat + (<0,1,2,13>, <0,1,7,13>, <0,2,5,13>, <0,6,7,12>, <0,6,8,13>, + <0,6,12,13>, <0,7,12,13>, <1,2,7,12>, <1,2,12,13>, <1,7,12,13>, + <2,3,7,12>, <2,3,12,13>, <3,4,7,12>, <3,11,12,13>, <6,8,9,12>, + <6,8,12,13>, <6,9,10,12>, <8,9,12,13>) + sage: Polyhedron_base7.volume(P, measure='induced') # optional - sage.combinat 79/3 """ @cached_method(do_pickle=True) @@ -88,8 +91,8 @@ def centroid(self, engine='auto', **kwds): sage: P.centroid() (1/4, 0, 0) - sage: P = polytopes.associahedron(['A',2]) - sage: P.centroid() + sage: P = polytopes.associahedron(['A', 2]) # optional - sage.combinat + sage: P.centroid() # optional - sage.combinat (2/21, 2/21) sage: P = polytopes.permutahedron(4, backend='normaliz') # optional - pynormaliz @@ -98,7 +101,7 @@ def centroid(self, engine='auto', **kwds): The method is not implemented for unbounded polyhedra:: - sage: P = Polyhedron(vertices=[(0,0)],rays=[(1,0),(0,1)]) + sage: P = Polyhedron(vertices=[(0, 0)], rays=[(1, 0), (0, 1)]) sage: P.centroid() Traceback (most recent call last): ... @@ -521,7 +524,7 @@ def volume(self, measure='ambient', engine='auto', **kwds): sage: P = Polyhedron([[0, 0], [1, 1]]) sage: P.volume() 0 - sage: P.volume(measure='induced') + sage: P.volume(measure='induced') # optional - sage.rings.number_field 1.414213562373095? sage: P.volume(measure='induced_rational') # optional -- latte_int 1 @@ -556,19 +559,19 @@ def volume(self, measure='ambient', engine='auto', **kwds): sage: P.volume(measure='induced_lattice',engine='latte') # optional - latte_int 3 - sage: Dexact = polytopes.dodecahedron() # optional - sage.rings.number_field - sage: v = Dexact.faces(2)[0].as_polyhedron().volume(measure='induced', engine='internal'); v # optional - sage.rings.number_field + sage: Dexact = polytopes.dodecahedron() # optional - sage.rings.number_field # optional - sage.groups + sage: v = Dexact.faces(2)[0].as_polyhedron().volume(measure='induced', engine='internal'); v # optional - sage.rings.number_field # optional - sage.groups 1.53406271079097? - sage: v = Dexact.faces(2)[4].as_polyhedron().volume(measure='induced', engine='internal'); v # optional - sage.rings.number_field + sage: v = Dexact.faces(2)[4].as_polyhedron().volume(measure='induced', engine='internal'); v # optional - sage.rings.number_field # optional - sage.groups 1.53406271079097? - sage: RDF(v) # abs tol 1e-9 # optional - sage.rings.number_field + sage: RDF(v) # abs tol 1e-9 # optional - sage.rings.number_field # optional - sage.groups 1.53406271079044 - sage: Dinexact = polytopes.dodecahedron(exact=False) - sage: w = Dinexact.faces(2)[2].as_polyhedron().volume(measure='induced', engine='internal'); RDF(w) # abs tol 1e-9 + sage: Dinexact = polytopes.dodecahedron(exact=False) # optional - sage.groups + sage: w = Dinexact.faces(2)[2].as_polyhedron().volume(measure='induced', engine='internal'); RDF(w) # abs tol 1e-9 # optional - sage.groups 1.5340627082974878 - sage: [polytopes.simplex(d).volume(measure='induced') for d in range(1,5)] == [sqrt(d+1)/factorial(d) for d in range(1,5)] + sage: [polytopes.simplex(d).volume(measure='induced') for d in range(1,5)] == [sqrt(d+1)/factorial(d) for d in range(1,5)] # optional - sage.rings.number_field True sage: I = Polyhedron([[-3, 0], [0, 9]]) @@ -804,9 +807,9 @@ def integrate(self, function, measure='ambient', **kwds): sage: R. = QQ[] sage: P = polytopes.simplex(2) - sage: V = AA(P.volume(measure='induced')); V.radical_expression() + sage: V = AA(P.volume(measure='induced')); V.radical_expression() # optional - sage.rings.number_field sage.symbolic 1/2*sqrt(3) - sage: P.integrate(R(1), measure='induced') == V # optional - latte_int + sage: P.integrate(R(1), measure='induced') == V # optional - latte_int # optional - sage.rings.number_field sage.symbolic True Computing the mass center:: @@ -951,7 +954,6 @@ def _integrate_latte_(self, polynomial, **kwds): sage: Polyhedron(vertices=[()]).integrate(R(42)) 42 """ - from sage.interfaces.latte import integrate from sage.rings.real_double import RDF if self.base_ring() == RDF: @@ -961,6 +963,8 @@ def _integrate_latte_(self, polynomial, **kwds): assert len(self.vertices()) == 1 vertex = tuple(vertices[0]) return polynomial(vertex) + + from sage.interfaces.latte import integrate return integrate(self.cdd_Hrepresentation(), polynomial, cdd=True, **kwds) diff --git a/src/sage/geometry/polyhedron/constructor.py b/src/sage/geometry/polyhedron/constructor.py index 7f11ac13593..971e36388f4 100644 --- a/src/sage/geometry/polyhedron/constructor.py +++ b/src/sage/geometry/polyhedron/constructor.py @@ -504,12 +504,12 @@ def Polyhedron(vertices=None, rays=None, lines=None, sage: Polyhedron(o, base_ring=QQ) A 2-dimensional polyhedron in QQ^2 defined as the convex hull of 4 vertices - sage: H. = HyperplaneArrangements(QQ) - sage: h = x + y - 1; h + sage: H. = HyperplaneArrangements(QQ) # optional - sage.combinat + sage: h = x + y - 1; h # optional - sage.combinat Hyperplane x + y - 1 - sage: Polyhedron(h, base_ring=ZZ) + sage: Polyhedron(h, base_ring=ZZ) # optional - sage.combinat A 1-dimensional polyhedron in ZZ^2 defined as the convex hull of 1 vertex and 1 line - sage: Polyhedron(h) + sage: Polyhedron(h) # optional - sage.combinat A 1-dimensional polyhedron in QQ^2 defined as the convex hull of 1 vertex and 1 line .. NOTE:: diff --git a/src/sage/geometry/polyhedron/generating_function.py b/src/sage/geometry/polyhedron/generating_function.py index 9fadd8f3e13..2c6cfccf200 100644 --- a/src/sage/geometry/polyhedron/generating_function.py +++ b/src/sage/geometry/polyhedron/generating_function.py @@ -1,3 +1,4 @@ +# sage.doctest: optional - sage.combinat r""" Generating Function of Polyhedron's Integral Points diff --git a/src/sage/geometry/polyhedron/library.py b/src/sage/geometry/polyhedron/library.py index e54d8a7efd1..f9fb4e192cd 100644 --- a/src/sage/geometry/polyhedron/library.py +++ b/src/sage/geometry/polyhedron/library.py @@ -1218,28 +1218,28 @@ def truncated_octahedron(self, backend=None): EXAMPLES:: - sage: co = polytopes.truncated_octahedron() - sage: co.f_vector() + sage: co = polytopes.truncated_octahedron() # optional - sage.combinat + sage: co.f_vector() # optional - sage.combinat (1, 24, 36, 14, 1) Its facets are 6 squares and 8 hexagons:: - sage: sum(1 for f in co.facets() if len(f.vertices()) == 4) + sage: sum(1 for f in co.facets() if len(f.vertices()) == 4) # optional - sage.combinat 6 - sage: sum(1 for f in co.facets() if len(f.vertices()) == 6) + sage: sum(1 for f in co.facets() if len(f.vertices()) == 6) # optional - sage.combinat 8 Some more computation:: - sage: co.volume() + sage: co.volume() # optional - sage.combinat 32 - sage: co.ehrhart_polynomial() # optional - latte_int + sage: co.ehrhart_polynomial() # optional - latte_int # optional - sage.combinat 32*t^3 + 18*t^2 + 6*t + 1 TESTS:: - sage: to_norm = polytopes.truncated_octahedron(backend='normaliz') # optional - pynormaliz - sage: TestSuite(to_norm).run() # optional - pynormaliz + sage: to_norm = polytopes.truncated_octahedron(backend='normaliz') # optional - pynormaliz sage.combinat + sage: TestSuite(to_norm).run() # optional - pynormaliz sage.combinat """ v = [(0, e, f) for e in [-1, 1] for f in [-2, 2]] v = [(xyz[sigma(1) - 1], xyz[sigma(2) - 1], xyz[sigma(3) - 1]) @@ -1416,33 +1416,33 @@ def buckyball(self, exact=True, base_ring=None, backend=None): EXAMPLES:: - sage: bb = polytopes.buckyball() # long time - 6secs # optional - sage.rings.number_field - sage: bb.f_vector() # long time # optional - sage.rings.number_field + sage: bb = polytopes.buckyball() # long time - 6secs # optional - sage.groups # optional - sage.rings.number_field + sage: bb.f_vector() # long time # optional - sage.groups # optional - sage.rings.number_field (1, 60, 90, 32, 1) - sage: bb.base_ring() # long time # optional - sage.rings.number_field + sage: bb.base_ring() # long time # optional - sage.groups # optional - sage.rings.number_field Number Field in sqrt5 with defining polynomial x^2 - 5 with sqrt5 = 2.236067977499790? A much faster implementation using floating point approximations:: - sage: bb = polytopes.buckyball(exact=False) - sage: bb.f_vector() + sage: bb = polytopes.buckyball(exact=False) # optional - sage.groups + sage: bb.f_vector() # optional - sage.groups (1, 60, 90, 32, 1) - sage: bb.base_ring() + sage: bb.base_ring() # optional - sage.groups Real Double Field Its facets are 5 regular pentagons and 6 regular hexagons:: - sage: sum(1 for f in bb.facets() if len(f.vertices()) == 5) + sage: sum(1 for f in bb.facets() if len(f.vertices()) == 5) # optional - sage.groups 12 - sage: sum(1 for f in bb.facets() if len(f.vertices()) == 6) + sage: sum(1 for f in bb.facets() if len(f.vertices()) == 6) # optional - sage.groups 20 TESTS:: - sage: bb = polytopes.buckyball(backend='normaliz') # optional - pynormaliz # optional - sage.rings.number_field - sage: bb.f_vector() # optional - pynormaliz # optional - sage.rings.number_field + sage: bb = polytopes.buckyball(backend='normaliz') # optional - sage.groups # optional - sage.rings.number_field # optional - pynormaliz + sage: bb.f_vector() # optional - sage.groups # optional - sage.rings.number_field # optional - pynormaliz (1, 60, 90, 32, 1) - sage: bb.base_ring() # optional - pynormaliz # optional - sage.rings.number_field + sage: bb.base_ring() # optional - sage.groups # optional - sage.rings.number_field # optional - pynormaliz Number Field in sqrt5 with defining polynomial x^2 - 5 with sqrt5 = 2.236067977499790? """ @@ -1465,25 +1465,25 @@ def icosidodecahedron(self, exact=True, backend=None): EXAMPLES:: - sage: id = polytopes.icosidodecahedron() # optional - sage.rings.number_field - sage: id.f_vector() # optional - sage.rings.number_field + sage: id = polytopes.icosidodecahedron() # optional - sage.rings.number_field # optional - sage.groups + sage: id.f_vector() # optional - sage.rings.number_field # optional - sage.groups (1, 30, 60, 32, 1) TESTS:: - sage: id = polytopes.icosidodecahedron(exact=False); id + sage: id = polytopes.icosidodecahedron(exact=False); id # optional - sage.rings.number_field # optional - sage.groups A 3-dimensional polyhedron in RDF^3 defined as the convex hull of 30 vertices - sage: TestSuite(id).run(skip=["_test_is_combinatorially_isomorphic", + sage: TestSuite(id).run(skip=["_test_is_combinatorially_isomorphic", # optional - sage.rings.number_field # optional - sage.groups ....: "_test_product", ....: "_test_pyramid", ....: "_test_lawrence"]) - sage: id = polytopes.icosidodecahedron(backend='normaliz') # optional - pynormaliz # optional - sage.rings.number_field - sage: id.f_vector() # optional - pynormaliz # optional - sage.rings.number_field + sage: id = polytopes.icosidodecahedron(backend='normaliz') # optional - pynormaliz # optional - sage.rings.number_field # optional - sage.groups + sage: id.f_vector() # optional - pynormaliz # optional - sage.rings.number_field # optional - sage.groups (1, 30, 60, 32, 1) - sage: id.base_ring() # optional - pynormaliz # optional - sage.rings.number_field + sage: id.base_ring() # optional - pynormaliz # optional - sage.rings.number_field # optional - sage.groups Number Field in sqrt5 with defining polynomial x^2 - 5 with sqrt5 = 2.236067977499790? - sage: TestSuite(id).run() # long time # optional - pynormaliz # optional - sage.rings.number_field + sage: TestSuite(id).run() # long time # optional - pynormaliz # optional - sage.rings.number_field # optional - sage.groups """ from sage.rings.number_field.number_field import QuadraticField from itertools import product @@ -1694,15 +1694,15 @@ def pentakis_dodecahedron(self, exact=True, base_ring=None, backend=None): A much faster implementation is obtained when setting ``exact=False``:: - sage: pd = polytopes.pentakis_dodecahedron(exact=False) - sage: pd.n_vertices() + sage: pd = polytopes.pentakis_dodecahedron(exact=False) # optional - sage.groups + sage: pd.n_vertices() # optional - sage.groups 32 - sage: pd.n_inequalities() + sage: pd.n_inequalities() # optional - sage.groups 60 The 60 are triangles:: - sage: all(len(f.vertices()) == 3 for f in pd.facets()) + sage: all(len(f.vertices()) == 3 for f in pd.facets()) # optional - sage.groups True """ return self.buckyball(exact=exact, base_ring=base_ring, backend=backend).polar() @@ -2226,22 +2226,22 @@ def six_hundred_cell(self, exact=False, backend=None): EXAMPLES:: - sage: p600 = polytopes.six_hundred_cell() - sage: p600 + sage: p600 = polytopes.six_hundred_cell() # optional - sage.groups + sage: p600 # optional - sage.groups A 4-dimensional polyhedron in RDF^4 defined as the convex hull of 120 vertices - sage: p600.f_vector() # long time ~2sec + sage: p600.f_vector() # long time ~2sec # optional - sage.groups (1, 120, 720, 1200, 600, 1) Computation with exact coordinates is currently too long to be useful:: - sage: p600 = polytopes.six_hundred_cell(exact=True) # not tested - very long time - sage: len(list(p600.bounded_edges())) # not tested - very long time + sage: p600 = polytopes.six_hundred_cell(exact=True) # not tested - very long time # optional - sage.groups + sage: len(list(p600.bounded_edges())) # not tested - very long time # optional - sage.groups 720 TESTS:: - sage: p600 = polytopes.six_hundred_cell(exact=True, backend='normaliz') # optional - pynormaliz - sage: len(list(p600.bounded_edges())) # optional - pynormaliz, long time + sage: p600 = polytopes.six_hundred_cell(exact=True, backend='normaliz') # optional - pynormaliz # optional - sage.groups # optional - sage.rings.number_field + sage: len(list(p600.bounded_edges())) # optional - pynormaliz, long time # optional - sage.groups # optional - sage.rings.number_field 720 """ if exact: @@ -2297,8 +2297,8 @@ def grand_antiprism(self, exact=True, backend=None, verbose=False): Computation with the backend ``'normaliz'`` is instantaneous:: - sage: gap_norm = polytopes.grand_antiprism(backend='normaliz') # optional - pynormaliz - sage: gap_norm # optional - pynormaliz + sage: gap_norm = polytopes.grand_antiprism(backend='normaliz') # optional - pynormaliz # optional - sage.rings.number_field + sage: gap_norm # optional - pynormaliz # optional - sage.rings.number_field A 4-dimensional polyhedron in (Number Field in sqrt5 with defining polynomial x^2 - 5 with sqrt5 = 2.236067977499790?)^4 defined as the convex hull of 100 vertices @@ -2516,7 +2516,7 @@ def permutahedron(self, n, project=False, backend=None): A 3-dimensional polyhedron in RDF^3 defined as the convex hull of 24 vertices sage: perm4.plot() # optional - sage.plot Graphics3d Object - sage: perm4.graph().is_isomorphic(graphs.BubbleSortGraph(4)) + sage: perm4.graph().is_isomorphic(graphs.BubbleSortGraph(4)) # optional - sage.graphs True As both Hrepresentation an Vrepresentation are known, the permutahedron can be set @@ -2594,32 +2594,32 @@ def generalized_permutahedron(self, coxeter_type, point=None, exact=True, regula EXAMPLES:: - sage: perm_a3 = polytopes.generalized_permutahedron(['A',3]); perm_a3 + sage: perm_a3 = polytopes.generalized_permutahedron(['A',3]); perm_a3 # optional - sage.combinat A 3-dimensional polyhedron in QQ^3 defined as the convex hull of 24 vertices You can put the starting point along the hyperplane of the first generator:: - sage: perm_a3_011 = polytopes.generalized_permutahedron(['A',3],[0,1,1]); perm_a3_011 + sage: perm_a3_011 = polytopes.generalized_permutahedron(['A',3],[0,1,1]); perm_a3_011 # optional - sage.combinat A 3-dimensional polyhedron in QQ^3 defined as the convex hull of 12 vertices - sage: perm_a3_110 = polytopes.generalized_permutahedron(['A',3],[1,1,0]); perm_a3_110 + sage: perm_a3_110 = polytopes.generalized_permutahedron(['A',3],[1,1,0]); perm_a3_110 # optional - sage.combinat A 3-dimensional polyhedron in QQ^3 defined as the convex hull of 12 vertices sage: perm_a3_110.is_combinatorially_isomorphic(perm_a3_011) True - sage: perm_a3_101 = polytopes.generalized_permutahedron(['A',3],[1,0,1]); perm_a3_101 + sage: perm_a3_101 = polytopes.generalized_permutahedron(['A',3],[1,0,1]); perm_a3_101 # optional - sage.combinat A 3-dimensional polyhedron in QQ^3 defined as the convex hull of 12 vertices - sage: perm_a3_110.is_combinatorially_isomorphic(perm_a3_101) + sage: perm_a3_110.is_combinatorially_isomorphic(perm_a3_101) # optional - sage.combinat False - sage: perm_a3_011.f_vector() + sage: perm_a3_011.f_vector() # optional - sage.combinat (1, 12, 18, 8, 1) - sage: perm_a3_101.f_vector() + sage: perm_a3_101.f_vector() # optional - sage.combinat (1, 12, 24, 14, 1) The usual output does not necessarily give a polyhedron with isometric vertex figures:: - sage: perm_a2 = polytopes.generalized_permutahedron(['A',2]) - sage: perm_a2.vertices() + sage: perm_a2 = polytopes.generalized_permutahedron(['A',2]) # optional - sage.combinat + sage: perm_a2.vertices() # optional - sage.combinat (A vertex at (-1, -1), A vertex at (-1, 0), A vertex at (0, -1), @@ -2629,7 +2629,7 @@ def generalized_permutahedron(self, coxeter_type, point=None, exact=True, regula It works also with Coxeter types that lead to non-rational coordinates:: - sage: perm_b3 = polytopes.generalized_permutahedron(['B',3]); perm_b3 # long time # optional - sage.rings.number_field + sage: perm_b3 = polytopes.generalized_permutahedron(['B',3]); perm_b3 # long time # optional - sage.combinat # optional - sage.rings.number_field A 3-dimensional polyhedron in (Number Field in a with defining polynomial x^2 - 2 with a = 1.414213562373095?)^3 defined as the convex hull of 48 vertices @@ -2639,8 +2639,8 @@ def generalized_permutahedron(self, coxeter_type, point=None, exact=True, regula rational coordinates. We first do the computations using floating point approximations (``RDF``):: - sage: perm_a2_inexact = polytopes.generalized_permutahedron(['A',2], exact=False) - sage: sorted(perm_a2_inexact.vertices()) + sage: perm_a2_inexact = polytopes.generalized_permutahedron(['A',2], exact=False) # optional - sage.combinat + sage: sorted(perm_a2_inexact.vertices()) # optional - sage.combinat [A vertex at (-1.0, -1.0), A vertex at (-1.0, 0.0), A vertex at (0.0, -1.0), @@ -2648,8 +2648,9 @@ def generalized_permutahedron(self, coxeter_type, point=None, exact=True, regula A vertex at (1.0, 0.0), A vertex at (1.0, 1.0)] - sage: perm_a2_inexact_reg = polytopes.generalized_permutahedron(['A',2], exact=False, regular=True) - sage: sorted(perm_a2_inexact_reg.vertices()) + sage: perm_a2_inexact_reg = polytopes.generalized_permutahedron(['A',2], exact=False, # optional - sage.combinat + ....: regular=True) + sage: sorted(perm_a2_inexact_reg.vertices()) # optional - sage.combinat [A vertex at (-1.0, 0.0), A vertex at (-0.5, -0.8660254038), A vertex at (-0.5, 0.8660254038), @@ -2659,8 +2660,8 @@ def generalized_permutahedron(self, coxeter_type, point=None, exact=True, regula We can do the same computation using exact arithmetic with the field ``AA``:: - sage: perm_a2_reg = polytopes.generalized_permutahedron(['A',2], regular=True) # optional - sage.rings.number_field - sage: V = sorted(perm_a2_reg.vertices()); V # random # optional - sage.rings.number_field + sage: perm_a2_reg = polytopes.generalized_permutahedron(['A',2], regular=True) # optional - sage.combinat # optional - sage.rings.number_field + sage: V = sorted(perm_a2_reg.vertices()); V # random # optional - sage.combinat # optional - sage.rings.number_field [A vertex at (-1, 0), A vertex at (-1/2, -0.866025403784439?), A vertex at (-1/2, 0.866025403784439?), @@ -2671,60 +2672,60 @@ def generalized_permutahedron(self, coxeter_type, point=None, exact=True, regula Even though the numbers look like floating point approximations, the computation is actually exact. We can clean up the display a bit using ``exactify``:: - sage: for v in V: # optional - sage.rings.number_field + sage: for v in V: # optional - sage.combinat # optional - sage.rings.number_field ....: for x in v: ....: x.exactify() - sage: V # optional - sage.rings.number_field + sage: V # optional - sage.combinat # optional - sage.rings.number_field [A vertex at (-1, 0), A vertex at (-1/2, -0.866025403784439?), A vertex at (-1/2, 0.866025403784439?), A vertex at (1/2, -0.866025403784439?), A vertex at (1/2, 0.866025403784439?), A vertex at (1, 0)] - sage: perm_a2_reg.is_inscribed() # optional - sage.rings.number_field + sage: perm_a2_reg.is_inscribed() # optional - sage.combinat # optional - sage.rings.number_field True Larger examples take longer:: - sage: perm_a3_reg = polytopes.generalized_permutahedron(['A',3], regular=True); perm_a3_reg # long time # optional - sage.rings.number_field + sage: perm_a3_reg = polytopes.generalized_permutahedron(['A',3], regular=True); perm_a3_reg # long time # optional - sage.rings.number_field # optional - sage.combinat A 3-dimensional polyhedron in AA^3 defined as the convex hull of 24 vertices - sage: perm_a3_reg.is_inscribed() # long time # optional - sage.rings.number_field + sage: perm_a3_reg.is_inscribed() # long time # optional - sage.rings.number_field # optional - sage.combinat True - sage: perm_b3_reg = polytopes.generalized_permutahedron(['B',3], regular=True); perm_b3_reg # not tested - long time (12sec on 64 bits). + sage: perm_b3_reg = polytopes.generalized_permutahedron(['B',3], regular=True); perm_b3_reg # not tested # optional - sage.rings.number_field # optional - sage.combinat # long time (12sec on 64 bits) A 3-dimensional polyhedron in AA^3 defined as the convex hull of 48 vertices It is faster with the backend ``'number_field'``, which internally uses an embedded number field instead of doing the computations directly with the base ring (``AA``):: - sage: perm_a3_reg_nf = polytopes.generalized_permutahedron( # optional - sage.rings.number_field + sage: perm_a3_reg_nf = polytopes.generalized_permutahedron( # optional - sage.rings.number_field # optional - sage.combinat ....: ['A',3], regular=True, backend='number_field'); perm_a3_reg_nf A 3-dimensional polyhedron in AA^3 defined as the convex hull of 24 vertices - sage: perm_a3_reg_nf.is_inscribed() # optional - sage.rings.number_field + sage: perm_a3_reg_nf.is_inscribed() # optional - sage.rings.number_field # optional - sage.combinat True - sage: perm_b3_reg_nf = polytopes.generalized_permutahedron( # long time # optional - sage.rings.number_field + sage: perm_b3_reg_nf = polytopes.generalized_permutahedron( # long time # optional - sage.rings.number_field # optional - sage.combinat ....: ['B',3], regular=True, backend='number_field'); perm_b3_reg_nf A 3-dimensional polyhedron in AA^3 defined as the convex hull of 48 vertices It is even faster with the backend ``'normaliz'``:: - sage: perm_a3_reg_norm = polytopes.generalized_permutahedron( # optional - pynormaliz + sage: perm_a3_reg_norm = polytopes.generalized_permutahedron( # optional - pynormaliz # optional - sage.rings.number_field # optional - sage.combinat ....: ['A',3], regular=True, backend='normaliz'); perm_a3_reg_norm A 3-dimensional polyhedron in AA^3 defined as the convex hull of 24 vertices - sage: perm_a3_reg_norm.is_inscribed() # optional - pynormaliz + sage: perm_a3_reg_norm.is_inscribed() # optional - pynormaliz # optional - sage.rings.number_field # optional - sage.combinat True - sage: perm_b3_reg_norm = polytopes.generalized_permutahedron( # optional - pynormaliz + sage: perm_b3_reg_norm = polytopes.generalized_permutahedron( # optional - pynormaliz # optional - sage.rings.number_field # optional - sage.combinat ....: ['B',3], regular=True, backend='normaliz'); perm_b3_reg_norm A 3-dimensional polyhedron in AA^3 defined as the convex hull of 48 vertices The speedups from using backend ``'normaliz'`` allow us to go even further:: - sage: perm_h3 = polytopes.generalized_permutahedron(['H',3], backend='normaliz') # optional - pynormaliz - sage: perm_h3 # optional - pynormaliz + sage: perm_h3 = polytopes.generalized_permutahedron(['H',3], backend='normaliz') # optional - pynormaliz # optional - sage.rings.number_field # optional - sage.combinat + sage: perm_h3 # optional - pynormaliz # optional - sage.rings.number_field # optional - sage.combinat A 3-dimensional polyhedron in (Number Field in a with defining polynomial x^2 - 5 with a = 2.236067977499790?)^3 defined as the convex hull of 120 vertices - sage: perm_f4 = polytopes.generalized_permutahedron(['F',4], backend='normaliz') # long time # optional - pynormaliz - sage: perm_f4 # long time # optional - pynormaliz + sage: perm_f4 = polytopes.generalized_permutahedron(['F',4], backend='normaliz') # long time # optional - pynormaliz # optional - sage.rings.number_field # optional - sage.combinat + sage: perm_f4 # long time # optional - pynormaliz # optional - sage.rings.number_field # optional - sage.combinat A 4-dimensional polyhedron in (Number Field in a with defining polynomial x^2 - 2 with a = 1.414213562373095?)^4 defined as the convex hull of 1152 vertices @@ -2736,7 +2737,7 @@ def generalized_permutahedron(self, coxeter_type, point=None, exact=True, regula TESTS:: - sage: TestSuite(perm_h3).run() # optional - pynormaliz + sage: TestSuite(perm_h3).run() # optional - pynormaliz # optional - sage.rings.number_field # optional - sage.combinat """ from sage.combinat.root_system.coxeter_group import CoxeterGroup try: @@ -3225,7 +3226,7 @@ def hypercube(self, dim, intervals=None, backend=None): sage: P = polytopes.hypercube(2, [[1/2, 2], [0, 1]]) sage: P = polytopes.hypercube(2, [[1/2, 2], [0, 1.0]]) - sage: P = polytopes.hypercube(2, [[1/2, 2], [0, AA(2).sqrt()]]) + sage: P = polytopes.hypercube(2, [[1/2, 2], [0, AA(2).sqrt()]]) # optional - sage.rings.number_field sage: P = polytopes.hypercube(2, [[1/2, 2], [0, 1.0]], backend='ppl') Traceback (most recent call last): ... @@ -3412,16 +3413,16 @@ def parallelotope(self, generators, backend=None): sage: polytopes.parallelotope([[1,2,3,4],[0,1,0,7],[3,1,0,2],[0,0,1,0]]) A 4-dimensional polyhedron in ZZ^4 defined as the convex hull of 16 vertices - sage: K = QuadraticField(2, 'sqrt2') - sage: sqrt2 = K.gen() - sage: P = polytopes.parallelotope([ (1,sqrt2), (1,-1) ]); P + sage: K = QuadraticField(2, 'sqrt2') # optional - sage.rings.number_field + sage: sqrt2 = K.gen() # optional - sage.rings.number_field + sage: P = polytopes.parallelotope([(1, sqrt2), (1, -1)]); P # optional - sage.rings.number_field A 2-dimensional polyhedron in (Number Field in sqrt2 with defining polynomial x^2 - 2 with sqrt2 = 1.414213562373095?)^2 defined as the convex hull of 4 vertices TESTS:: - sage: TestSuite(P).run() + sage: TestSuite(P).run() # optional - sage.rings.number_field """ from sage.modules.free_module_element import vector generators = [vector(v) for v in generators] diff --git a/src/sage/geometry/polyhedron/parent.py b/src/sage/geometry/polyhedron/parent.py index 2b87a343b41..8e2e868294d 100644 --- a/src/sage/geometry/polyhedron/parent.py +++ b/src/sage/geometry/polyhedron/parent.py @@ -858,16 +858,18 @@ def _coerce_base_ring(self, other): Test that :trac:`28770` is fixed:: sage: z = QQ['z'].0 - sage: K = NumberField(z^2 - 2,'s') - sage: triangle_QQ._coerce_base_ring(K) + sage: K = NumberField(z^2 - 2, 's') # optional - sage.rings.number_field + sage: triangle_QQ._coerce_base_ring(K) # optional - sage.rings.number_field Number Field in s with defining polynomial z^2 - 2 - sage: triangle_QQ._coerce_base_ring(K.gen()) + sage: triangle_QQ._coerce_base_ring(K.gen()) # optional - sage.rings.number_field Number Field in s with defining polynomial z^2 - 2 sage: z = QQ['z'].0 - sage: K = NumberField(z^2 - 2,'s') - sage: K.gen()*polytopes.simplex(backend='field') - A 3-dimensional polyhedron in (Number Field in s with defining polynomial z^2 - 2)^4 defined as the convex hull of 4 vertices + sage: K = NumberField(z^2 - 2, 's') # optional - sage.rings.number_field + sage: K.gen() * polytopes.simplex(backend='field') # optional - sage.rings.number_field + A 3-dimensional polyhedron in + (Number Field in s with defining polynomial z^2 - 2)^4 + defined as the convex hull of 4 vertices """ from sage.structure.element import Element if isinstance(other, Element): diff --git a/src/sage/geometry/polyhedron/plot.py b/src/sage/geometry/polyhedron/plot.py index a4c30cadd0c..c53357404c6 100644 --- a/src/sage/geometry/polyhedron/plot.py +++ b/src/sage/geometry/polyhedron/plot.py @@ -341,23 +341,23 @@ def __init__(self, polyhedron, proj=projection_func_identity): EXAMPLES:: - sage: p = polytopes.icosahedron(exact=False) + sage: p = polytopes.icosahedron(exact=False) # optional - sage.groups sage: from sage.geometry.polyhedron.plot import Projection - sage: Projection(p) + sage: Projection(p) # optional - sage.groups The projection of a polyhedron into 3 dimensions sage: def pr_12(x): return [x[1],x[2]] - sage: Projection(p, pr_12) + sage: Projection(p, pr_12) # optional - sage.groups The projection of a polyhedron into 2 dimensions - sage: Projection(p, lambda x: [x[1],x[2]] ) # another way of doing the same projection + sage: Projection(p, lambda x: [x[1],x[2]] ) # another way of doing the same projection # optional - sage.groups The projection of a polyhedron into 2 dimensions - sage: _.plot() # plot of the projected icosahedron in 2d # optional - sage.plot + sage: _.plot() # plot of the projected icosahedron in 2d # optional - sage.plot # optional - sage.groups Graphics object consisting of 51 graphics primitives - sage: proj = Projection(p) - sage: proj.stereographic([1,2,3]) + sage: proj = Projection(p) # optional - sage.groups + sage: proj.stereographic([1,2,3]) # optional - sage.groups The projection of a polyhedron into 2 dimensions - sage: proj.plot() # optional - sage.plot + sage: proj.plot() # optional - sage.plot # optional - sage.groups Graphics object consisting of 51 graphics primitives - sage: TestSuite(proj).run(skip='_test_pickling') + sage: TestSuite(proj).run(skip='_test_pickling') # optional - sage.groups """ self.parent_polyhedron = polyhedron self.coords = Sequence([]) @@ -406,12 +406,12 @@ def __call__(self, proj=projection_func_identity): EXAMPLES:: - sage: p = polytopes.icosahedron(exact=False) + sage: p = polytopes.icosahedron(exact=False) # optional - sage.groups sage: from sage.geometry.polyhedron.plot import Projection - sage: pproj = Projection(p) + sage: pproj = Projection(p) # optional - sage.groups sage: from sage.geometry.polyhedron.plot import ProjectionFuncStereographic - sage: pproj_stereo = pproj.__call__(proj = ProjectionFuncStereographic([1,2,3])) - sage: sorted(pproj_stereo.polygons) + sage: pproj_stereo = pproj.__call__(proj=ProjectionFuncStereographic([1, 2, 3])) # optional - sage.groups + sage: sorted(pproj_stereo.polygons) # optional - sage.groups [[2, 0, 9], [3, 1, 10], [4, 0, 8], @@ -430,11 +430,11 @@ def identity(self): EXAMPLES:: - sage: p = polytopes.icosahedron(exact=False) + sage: p = polytopes.icosahedron(exact=False) # optional - sage.groups sage: from sage.geometry.polyhedron.plot import Projection - sage: pproj = Projection(p) - sage: ppid = pproj.identity() - sage: ppid.dimension + sage: pproj = Projection(p) # optional - sage.groups + sage: ppid = pproj.identity() # optional - sage.groups + sage: ppid.dimension # optional - sage.groups 3 """ return self(projection_func_identity) @@ -952,10 +952,10 @@ def render_points_2d(self, **kwds): EXAMPLES:: - sage: hex = polytopes.regular_polygon(6) - sage: proj = hex.projection() - sage: hex_points = proj.render_points_2d() # optional - sage.plot - sage: hex_points._objects # optional - sage.plot + sage: hex = polytopes.regular_polygon(6) # optional - sage.rings.number_field + sage: proj = hex.projection() # optional - sage.rings.number_field + sage: hex_points = proj.render_points_2d() # optional - sage.plot # optional - sage.rings.number_field + sage: hex_points._objects # optional - sage.plot # optional - sage.rings.number_field [Point set defined by 6 point(s)] """ return point2d(self.coordinates_of(self.points), **kwds) @@ -966,9 +966,9 @@ def render_outline_2d(self, **kwds): EXAMPLES:: - sage: penta = polytopes.regular_polygon(5) - sage: outline = penta.projection().render_outline_2d() # optional - sage.plot - sage: outline._objects[0] # optional - sage.plot + sage: penta = polytopes.regular_polygon(5) # optional - sage.rings.number_field + sage: outline = penta.projection().render_outline_2d() # optional - sage.plot # optional - sage.rings.number_field + sage: outline._objects[0] # optional - sage.plot # optional - sage.rings.number_field Line defined by 2 points """ wireframe = [] @@ -1291,11 +1291,11 @@ def tikz(self, view=[0, 0, 1], angle=0, scale=1, EXAMPLES:: - sage: P1 = polytopes.small_rhombicuboctahedron() - sage: Image1 = P1.projection().tikz([1,3,5], 175, scale=4, output_type='TikzPicture') - sage: type(Image1) + sage: P1 = polytopes.small_rhombicuboctahedron() # optional - sage.rings.number_field + sage: Image1 = P1.projection().tikz([1,3,5], 175, scale=4, output_type='TikzPicture') # optional - sage.rings.number_field + sage: type(Image1) # optional - sage.rings.number_field - sage: Image1 + sage: Image1 # optional - sage.rings.number_field \documentclass[tikz]{standalone} \begin{document} \begin{tikzpicture}% @@ -1312,14 +1312,14 @@ def tikz(self, view=[0, 0, 1], angle=0, scale=1, %% \end{tikzpicture} \end{document} - sage: _ = Image1.tex('polytope-tikz1.tex') # not tested - sage: _ = Image1.png('polytope-tikz1.png') # not tested - sage: _ = Image1.pdf('polytope-tikz1.pdf') # not tested - sage: _ = Image1.svg('polytope-tikz1.svg') # not tested + sage: _ = Image1.tex('polytope-tikz1.tex') # not tested # optional - sage.rings.number_field + sage: _ = Image1.png('polytope-tikz1.png') # not tested # optional - sage.rings.number_field + sage: _ = Image1.pdf('polytope-tikz1.pdf') # not tested # optional - sage.rings.number_field + sage: _ = Image1.svg('polytope-tikz1.svg') # not tested # optional - sage.rings.number_field A second example:: - sage: P2 = Polyhedron(vertices=[[1, 1],[1, 2],[2, 1]]) + sage: P2 = Polyhedron(vertices=[[1, 1], [1, 2], [2, 1]]) sage: Image2 = P2.projection().tikz(scale=3, edge_color='blue!95!black', facet_color='orange!95!black', opacity=0.4, vertex_color='yellow', axis=True, output_type='TikzPicture') sage: Image2 \documentclass[tikz]{standalone} @@ -1354,10 +1354,12 @@ def tikz(self, view=[0, 0, 1], angle=0, scale=1, A third example:: - sage: P3 = Polyhedron(vertices=[[-1, -1, 2],[-1, 2, -1],[2, -1, -1]]) + sage: P3 = Polyhedron(vertices=[[-1, -1, 2], [-1, 2, -1], [2, -1, -1]]) sage: P3 A 2-dimensional polyhedron in ZZ^3 defined as the convex hull of 3 vertices - sage: Image3 = P3.projection().tikz([0.5,-1,-0.1], 55, scale=3, edge_color='blue!95!black',facet_color='orange!95!black', opacity=0.7, vertex_color='yellow', axis=True, output_type='TikzPicture') + sage: Image3 = P3.projection().tikz([0.5, -1, -0.1], 55, scale=3, edge_color='blue!95!black', # optional - sage.plot + ....: facet_color='orange!95!black', opacity=0.7, + ....: vertex_color='yellow', axis=True, output_type='TikzPicture') sage: Image3 \documentclass[tikz]{standalone} \begin{document} @@ -1600,21 +1602,23 @@ def _tikz_2d_in_3d(self, view, angle, scale, edge_color, facet_color, sage: P = Polyhedron(vertices=[[-1, -1, 2],[-1, 2, -1],[2, -1, -1]]) sage: P A 2-dimensional polyhedron in ZZ^3 defined as the convex hull of 3 vertices - sage: Image = P.projection()._tikz_2d_in_3d(view=[0.5,-1,-0.5], angle=55, scale=3, edge_color='blue!95!black', facet_color='orange', opacity=0.5, vertex_color='yellow', axis=True) - sage: print('\n'.join(Image.splitlines()[:4])) + sage: Image = P.projection()._tikz_2d_in_3d(view=[0.5, -1, -0.5], angle=55, scale=3, # optional - sage.plot + ....: edge_color='blue!95!black', facet_color='orange', + ....: opacity=0.5, vertex_color='yellow', axis=True) + sage: print('\n'.join(Image.splitlines()[:4])) # optional - sage.plot \begin{tikzpicture}% [x={(0.644647cm, -0.476559cm)}, y={(0.192276cm, 0.857859cm)}, z={(-0.739905cm, -0.192276cm)}, - sage: with open('polytope-tikz3.tex', 'w') as f: # not tested + sage: with open('polytope-tikz3.tex', 'w') as f: # not tested # optional - sage.plot ....: _ = f.write(Image) :: - sage: p = Polyhedron(vertices=[[1,0,0],[0,1,0],[0,0,1]]) + sage: p = Polyhedron(vertices=[[1, 0, 0], [0, 1, 0], [0, 0, 1]]) sage: proj = p.projection() - sage: Img = proj.tikz([1,1,1],130,axis=True, output_type='LatexExpr') - sage: print('\n'.join(Img.splitlines()[12:21])) + sage: Img = proj.tikz([1, 1, 1], 130, axis=True, output_type='LatexExpr') # optional - sage.plot + sage: print('\n'.join(Img.splitlines()[12:21])) # optional - sage.plot %% with the command: ._tikz_2d_in_3d and parameters: %% view = [1, 1, 1] %% angle = 130 @@ -1747,23 +1751,28 @@ def _tikz_3d_in_3d(self, view, angle, scale, edge_color, EXAMPLES:: - sage: P = polytopes.small_rhombicuboctahedron() - sage: Image = P.projection()._tikz_3d_in_3d([3,7,5], 100, scale=3, edge_color='blue', facet_color='orange', opacity=0.5, vertex_color='green', axis=True) - sage: type(Image) + sage: P = polytopes.small_rhombicuboctahedron() # optional - sage.rings.number_field + sage: Image = P.projection()._tikz_3d_in_3d([3, 7, 5], 100, scale=3, + ....: edge_color='blue', facet_color='orange', + ....: opacity=0.5, vertex_color='green', axis=True) + sage: type(Image) # optional - sage.rings.number_field sage: print('\n'.join(Image.splitlines()[:4])) \begin{tikzpicture}% [x={(-0.046385cm, 0.837431cm)}, y={(-0.243536cm, 0.519228cm)}, z={(0.968782cm, 0.170622cm)}, - sage: with open('polytope-tikz1.tex', 'w') as f: # not tested + sage: with open('polytope-tikz1.tex', 'w') as f: # not tested # optional - sage.rings.number_field ....: _ = f.write(Image) :: - sage: Associahedron = Polyhedron(vertices=[[1,0,1],[1,0,0],[1,1,0],[0,0,-1],[0,1,0],[-1,0,0],[0,1,1],[0,0,1],[0,-1,0]]).polar() - sage: ImageAsso = Associahedron.projection().tikz([-15,-755,-655], 116, scale=1, output_type='LatexExpr') - sage: print('\n'.join(ImageAsso.splitlines()[12:30])) + sage: Associahedron = Polyhedron(vertices=[[1, 0, 1], [1, 0, 0], [1, 1, 0], + ....: [0, 0, -1], [0, 1, 0], [-1, 0, 0], + ....: [0, 1, 1], [0, 0, 1], [0, -1, 0]]).polar() + sage: ImageAsso = Associahedron.projection().tikz([-15, -755, -655], 116, scale=1, # optional - sage.plot + ....: output_type='LatexExpr') + sage: print('\n'.join(ImageAsso.splitlines()[12:30])) # optional - sage.plot %% with the command: ._tikz_3d_in_3d and parameters: %% view = [-15, -755, -655] %% angle = 116 diff --git a/src/sage/numerical/all__sagemath_polyhedra.py b/src/sage/numerical/all__sagemath_polyhedra.py new file mode 100644 index 00000000000..6de2a9af502 --- /dev/null +++ b/src/sage/numerical/all__sagemath_polyhedra.py @@ -0,0 +1,9 @@ +from sage.misc.lazy_import import lazy_import + +lazy_import("sage.numerical.mip", ["MixedIntegerLinearProgram"]) +lazy_import("sage.numerical.sdp", ["SemidefiniteProgram"]) +lazy_import("sage.numerical.backends.generic_backend", ["default_mip_solver"]) +lazy_import("sage.numerical.backends.generic_sdp_backend", ["default_sdp_solver"]) + +lazy_import("sage.numerical.interactive_simplex_method", + ["InteractiveLPProblem", "InteractiveLPProblemStandardForm"]) diff --git a/src/sage/numerical/backends/all__sagemath_polyhedra.py b/src/sage/numerical/backends/all__sagemath_polyhedra.py new file mode 100644 index 00000000000..e69de29bb2d From f01367ad1034ce377598569f5a3cd4bf4d906957 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Fri, 27 Jan 2023 22:39:22 -0800 Subject: [PATCH 087/249] sage.geometry.polyhedron: More # optional --- src/sage/features/sagemath.py | 22 +++++++ src/sage/geometry/polyhedron/base.py | 24 +++---- src/sage/geometry/polyhedron/base6.py | 16 ++--- src/sage/geometry/polyhedron/base_QQ.py | 20 +++--- src/sage/geometry/polyhedron/constructor.py | 9 +-- src/sage/geometry/polyhedron/library.py | 62 +++++++++---------- src/sage/geometry/polyhedron/parent.py | 4 +- src/sage/geometry/polyhedron/plot.py | 35 +++++++---- .../polyhedron/ppl_lattice_polytope.py | 2 +- .../interfaces/all__sagemath_polyhedra.py | 0 .../numerical/backends/generic_backend.pyx | 3 +- 11 files changed, 115 insertions(+), 82 deletions(-) create mode 100644 src/sage/interfaces/all__sagemath_polyhedra.py diff --git a/src/sage/features/sagemath.py b/src/sage/features/sagemath.py index 58552614425..4085679dbd8 100644 --- a/src/sage/features/sagemath.py +++ b/src/sage/features/sagemath.py @@ -209,6 +209,27 @@ def __init__(self): PythonModule.__init__(self, 'sage.rings.real_double') +class sage__rings__real_mpfr(PythonModule): + r""" + A :class:`~sage.features.Feature` describing the presence of :mod:`sage.rings.real_mpfr`. + + EXAMPLES:: + + sage: from sage.features.sagemath import sage__rings__real_mpfr + sage: sage__rings__real_mpfr().is_present() # optional - sage.rings.real_mpfr + FeatureTestResult('sage.rings.real_mpfr', True) + """ + def __init__(self): + r""" + TESTS:: + + sage: from sage.features.sagemath import sage__rings__real_mpfr + sage: isinstance(sage__rings__real_mpfr(), sage__rings__real_mpfr) + True + """ + PythonModule.__init__(self, 'sage.rings.real_mpfr') + + class sage__symbolic(JoinFeature): r""" A :class:`~sage.features.Feature` describing the presence of :mod:`sage.symbolic`. @@ -263,4 +284,5 @@ def all_features(): sage__rings__number_field(), sage__rings__padics(), sage__rings__real_double(), + sage__rings__real_mpfr(), sage__symbolic()] diff --git a/src/sage/geometry/polyhedron/base.py b/src/sage/geometry/polyhedron/base.py index 9704f6ea607..f28560bad05 100644 --- a/src/sage/geometry/polyhedron/base.py +++ b/src/sage/geometry/polyhedron/base.py @@ -623,7 +623,7 @@ def hyperplane_arrangement(self): EXAMPLES:: sage: p = polytopes.hypercube(2) - sage: p.hyperplane_arrangement() + sage: p.hyperplane_arrangement() # optional - sage.combinat Arrangement <-t0 + 1 | -t1 + 1 | t1 + 1 | t0 + 1> """ names = tuple('t' + str(i) for i in range(self.ambient_dim())) @@ -966,16 +966,16 @@ def permutations_to_matrices(self, conj_class_reps, acting_group=None, additiona of the vertices of the square:: sage: square = Polyhedron(vertices=[[1,1],[-1,1],[-1,-1],[1,-1]], backend='normaliz') # optional - pynormaliz - sage: square.vertices() # optional - pynormaliz + sage: square.vertices() # optional - pynormaliz (A vertex at (-1, -1), A vertex at (-1, 1), A vertex at (1, -1), A vertex at (1, 1)) - sage: aut_square = square.restricted_automorphism_group(output = 'permutation') # optional - pynormaliz - sage: conj_reps = aut_square.conjugacy_classes_representatives() # optional - pynormaliz - sage: gens_dict = square.permutations_to_matrices(conj_reps); # optional - pynormaliz - sage: rotation_180 = aut_square([(0,3),(1,2)]) # optional - pynormaliz - sage: rotation_180,gens_dict[rotation_180] # optional - pynormaliz + sage: aut_square = square.restricted_automorphism_group(output='permutation') # optional - pynormaliz # optional - sage.groups + sage: conj_reps = aut_square.conjugacy_classes_representatives() # optional - pynormaliz # optional - sage.groups + sage: gens_dict = square.permutations_to_matrices(conj_reps); # optional - pynormaliz # optional - sage.groups + sage: rotation_180 = aut_square([(0,3),(1,2)]) # optional - pynormaliz # optional - sage.groups + sage: rotation_180, gens_dict[rotation_180] # optional - pynormaliz # optional - sage.groups ( [-1 0 0] [ 0 -1 0] @@ -985,11 +985,11 @@ def permutations_to_matrices(self, conj_class_reps, acting_group=None, additiona This example tests the functionality for additional elements:: sage: C = polytopes.cross_polytope(2) - sage: G = C.restricted_automorphism_group(output = 'permutation') - sage: conj_reps = G.conjugacy_classes_representatives() - sage: add_elt = G([(0,2,3,1)]) - sage: dict = C.permutations_to_matrices(conj_reps,additional_elts = [add_elt]) - sage: dict[add_elt] + sage: G = C.restricted_automorphism_group(output='permutation') # optional - sage.groups # optional - sage.rings.real_mpfr + sage: conj_reps = G.conjugacy_classes_representatives() # optional - sage.groups # optional - sage.rings.real_mpfr + sage: add_elt = G([(0, 2, 3, 1)]) # optional - sage.groups # optional - sage.rings.real_mpfr + sage: dict = C.permutations_to_matrices(conj_reps,additional_elts = [add_elt]) # optional - sage.groups # optional - sage.rings.real_mpfr + sage: dict[add_elt] # optional - sage.groups # optional - sage.rings.real_mpfr [ 0 1 0] [-1 0 0] [ 0 0 1] diff --git a/src/sage/geometry/polyhedron/base6.py b/src/sage/geometry/polyhedron/base6.py index a279898247e..cf6ffe8f2a2 100644 --- a/src/sage/geometry/polyhedron/base6.py +++ b/src/sage/geometry/polyhedron/base6.py @@ -573,7 +573,7 @@ def tikz(self, view=[0, 0, 1], angle=0, scale=1, %% opacity = 0.8 %% vertex_color = green %% axis = False - sage: print('\n'.join(Img.content().splitlines()[22:26])) + sage: print('\n'.join(Img.content().splitlines()[22:26])) # optional - sage.plot %% Coordinate of the vertices: %% \coordinate (-1.00000, -1.00000, 0.00000) at (-1.00000, -1.00000, 0.00000); @@ -860,17 +860,17 @@ def schlegel_projection(self, facet=None, position=None): sage: tfcube.facets()[4] A 3-dimensional face of a Polyhedron in QQ^4 defined as the convex hull of 4 vertices - sage: sp = tfcube.schlegel_projection(tfcube.facets()[4]) - sage: sp.plot() # optional - sage.plot + sage: sp = tfcube.schlegel_projection(tfcube.facets()[4]) # optional - sage.symbolic + sage: sp.plot() # optional - sage.plot # optional - sage.symbolic Graphics3d Object A different values of ``position`` changes the projection:: - sage: sp = tfcube.schlegel_projection(tfcube.facets()[4],1/2) - sage: sp.plot() # optional - sage.plot + sage: sp = tfcube.schlegel_projection(tfcube.facets()[4], 1/2) # optional - sage.symbolic + sage: sp.plot() # optional - sage.plot # optional - sage.symbolic Graphics3d Object - sage: sp = tfcube.schlegel_projection(tfcube.facets()[4],4) - sage: sp.plot() # optional - sage.plot + sage: sp = tfcube.schlegel_projection(tfcube.facets()[4], 4) # optional - sage.symbolic + sage: sp.plot() # optional - sage.plot # optional - sage.symbolic Graphics3d Object A value which is too large give a projection point that sees more than @@ -966,7 +966,7 @@ def _affine_hull_projection(self, *, sage: P = Polyhedron(V) sage: P.affine_hull_projection() A 4-dimensional polyhedron in ZZ^4 defined as the convex hull of 6 vertices - sage: P.affine_hull_projection(orthonormal=True) + sage: P.affine_hull_projection(orthonormal=True) # optional - sage.symbolic Traceback (most recent call last): ... ValueError: the base ring needs to be extended; try with "extend=True" diff --git a/src/sage/geometry/polyhedron/base_QQ.py b/src/sage/geometry/polyhedron/base_QQ.py index 0efcb15f1a2..de26b9acbd9 100644 --- a/src/sage/geometry/polyhedron/base_QQ.py +++ b/src/sage/geometry/polyhedron/base_QQ.py @@ -150,12 +150,12 @@ def integral_points_count(self, verbose=False, use_Hrepresentation=False, "Fibonacci" knapsacks (preprocessing helps a lot):: - sage: def fibonacci_knapsack(d, b, backend=None): + sage: def fibonacci_knapsack(d, b, backend=None): # optional - sage.combinat ....: lp = MixedIntegerLinearProgram(base_ring=QQ) ....: x = lp.new_variable(nonnegative=True) ....: lp.add_constraint(lp.sum(fibonacci(i+3)*x[i] for i in range(d)) <= b) ....: return lp.polyhedron(backend=backend) - sage: fibonacci_knapsack(20, 12).integral_points_count() # does not finish with preprocess=False + sage: fibonacci_knapsack(20, 12).integral_points_count() # does not finish with preprocess=False # optional - sage.combinat 33 TESTS: @@ -931,20 +931,20 @@ def fixed_subpolytopes(self, conj_class_reps): sage: p = polytopes.hypercube(2, backend = 'normaliz'); p # optional - pynormaliz A 2-dimensional polyhedron in ZZ^2 defined as the convex hull of 4 vertices - sage: aut_p = p.restricted_automorphism_group(output = 'permutation') # optional - pynormaliz - sage: aut_p.order() # optional - pynormaliz + sage: aut_p = p.restricted_automorphism_group(output='permutation') # optional - pynormaliz # optional - sage.groups + sage: aut_p.order() # optional - pynormaliz # optional - sage.groups 8 - sage: conj_list = aut_p.conjugacy_classes_representatives(); # optional - pynormaliz - sage: fixedpolytopes_dictionary = p.fixed_subpolytopes(conj_list) # optional - pynormaliz - sage: fixedpolytopes_dictionary[aut_p([(0,3),(1,2)])] # optional - pynormaliz + sage: conj_list = aut_p.conjugacy_classes_representatives(); # optional - pynormaliz # optional - sage.groups + sage: fixedpolytopes_dictionary = p.fixed_subpolytopes(conj_list) # optional - pynormaliz # optional - sage.groups + sage: fixedpolytopes_dictionary[aut_p([(0,3),(1,2)])] # optional - pynormaliz # optional - sage.groups A 0-dimensional polyhedron in QQ^2 defined as the convex hull of 1 vertex TESTS:: sage: P = Polyhedron(vertices=[[1, 1]], rays=[[1, 1]]) - sage: aut_P = P.restricted_automorphism_group(output = 'permutation') - sage: conj_list = aut_P.conjugacy_classes_representatives() - sage: P.fixed_subpolytopes(conj_list) + sage: aut_P = P.restricted_automorphism_group(output='permutation') # optional - sage.groups + sage: conj_list = aut_P.conjugacy_classes_representatives() # optional - sage.groups + sage: P.fixed_subpolytopes(conj_list) # optional - sage.groups Traceback (most recent call last): ... NotImplementedError: unbounded polyhedra are not supported diff --git a/src/sage/geometry/polyhedron/constructor.py b/src/sage/geometry/polyhedron/constructor.py index 971e36388f4..0a8cc1854ac 100644 --- a/src/sage/geometry/polyhedron/constructor.py +++ b/src/sage/geometry/polyhedron/constructor.py @@ -217,7 +217,7 @@ A 0-dimensional polyhedron in RDF^2 defined as the convex hull of 1 vertex sage: Polyhedron(vertices = [[1.12345678901234, 2.123456789012345]]) A 0-dimensional polyhedron in RDF^2 defined as the convex hull of 1 vertex - sage: Polyhedron(vertices = [[1.123456789012345, 2.123456789012345]]) + sage: Polyhedron(vertices = [[1.123456789012345, 2.123456789012345]]) # optional - sage.rings.real_mpfr Traceback (most recent call last): ... ValueError: the only allowed inexact ring is 'RDF' with backend 'cdd' @@ -563,18 +563,19 @@ def Polyhedron(vertices=None, rays=None, lines=None, Check that input with too many bits of precision returns an error (see :trac:`22552`):: - sage: Polyhedron(vertices=[(8.3319544851638732, 7.0567045956967727), (6.4876921900819049, 4.8435898415984129)]) + sage: Polyhedron(vertices=[(8.3319544851638732, 7.0567045956967727), # optional - sage.rings.real_mpfr + ....: (6.4876921900819049, 4.8435898415984129)]) Traceback (most recent call last): ... ValueError: the only allowed inexact ring is 'RDF' with backend 'cdd' Check that setting ``base_ring`` to a ``RealField`` returns an error (see :trac:`22552`):: - sage: Polyhedron(vertices =[(8.3, 7.0), (6.4, 4.8)], base_ring=RealField(40)) + sage: Polyhedron(vertices=[(8.3, 7.0), (6.4, 4.8)], base_ring=RealField(40)) # optional - sage.rings.real_mpfr Traceback (most recent call last): ... ValueError: no default backend for computations with Real Field with 40 bits of precision - sage: Polyhedron(vertices =[(8.3, 7.0), (6.4, 4.8)], base_ring=RealField(53)) + sage: Polyhedron(vertices=[(8.3, 7.0), (6.4, 4.8)], base_ring=RealField(53)) # optional - sage.rings.real_mpfr Traceback (most recent call last): ... ValueError: no default backend for computations with Real Field with 53 bits of precision diff --git a/src/sage/geometry/polyhedron/library.py b/src/sage/geometry/polyhedron/library.py index f9fb4e192cd..f621f9329ff 100644 --- a/src/sage/geometry/polyhedron/library.py +++ b/src/sage/geometry/polyhedron/library.py @@ -724,18 +724,18 @@ def icosahedron(self, exact=True, base_ring=None, backend=None): Its non exact version:: - sage: ico = polytopes.icosahedron(exact=False) - sage: ico.base_ring() + sage: ico = polytopes.icosahedron(exact=False) # optional - sage.groups + sage: ico.base_ring() # optional - sage.groups Real Double Field - sage: ico.volume() # known bug (trac 18214) + sage: ico.volume() # known bug (trac 18214) # optional - sage.groups 2.181694990... A version using `AA `:: - sage: ico = polytopes.icosahedron(base_ring=AA) # long time # optional - sage.rings.number_field - sage: ico.base_ring() # long time # optional - sage.rings.number_field + sage: ico = polytopes.icosahedron(base_ring=AA) # long time # optional - sage.rings.number_field # optional - sage.groups + sage: ico.base_ring() # long time # optional - sage.rings.number_field # optional - sage.groups Algebraic Real Field - sage: ico.volume() # long time # optional - sage.rings.number_field + sage: ico.volume() # long time # optional - sage.rings.number_field # optional - sage.groups 2.181694990624913? Note that if base ring is provided it must contain the square root of @@ -748,15 +748,15 @@ def icosahedron(self, exact=True, base_ring=None, backend=None): TESTS:: - sage: ico = polytopes.icosahedron(backend='normaliz') # optional - pynormaliz # optional - sage.rings.number_field - sage: ico.f_vector() # optional - pynormaliz # optional - sage.rings.number_field + sage: ico = polytopes.icosahedron(backend='normaliz') # optional - pynormaliz # optional - sage.rings.number_field # optional - sage.groups + sage: ico.f_vector() # optional - pynormaliz # optional - sage.rings.number_field # optional - sage.groups (1, 12, 30, 20, 1) - sage: ico.volume() # optional - pynormaliz # optional - sage.rings.number_field + sage: ico.volume() # optional - pynormaliz # optional - sage.rings.number_field # optional - sage.groups 5/12*sqrt5 + 5/4 - sage: TestSuite(ico).run() # optional - pynormaliz # optional - sage.rings.number_field + sage: TestSuite(ico).run() # optional - pynormaliz # optional - sage.rings.number_field # optional - sage.groups - sage: ico = polytopes.icosahedron(exact=False) - sage: TestSuite(ico).run(skip="_test_lawrence") + sage: ico = polytopes.icosahedron(exact=False) # optional - sage.groups + sage: TestSuite(ico).run(skip="_test_lawrence") # optional - sage.groups """ if base_ring is None and exact: @@ -798,31 +798,31 @@ def dodecahedron(self, exact=True, base_ring=None, backend=None): EXAMPLES:: - sage: d12 = polytopes.dodecahedron() # optional - sage.rings.number_field - sage: d12.f_vector() # optional - sage.rings.number_field + sage: d12 = polytopes.dodecahedron() # optional - sage.rings.number_field # optional - sage.groups + sage: d12.f_vector() # optional - sage.rings.number_field # optional - sage.groups (1, 20, 30, 12, 1) - sage: d12.volume() # optional - sage.rings.number_field + sage: d12.volume() # optional - sage.rings.number_field # optional - sage.groups -176*sqrt5 + 400 - sage: numerical_approx(_) # optional - sage.rings.number_field + sage: numerical_approx(_) # optional - sage.rings.number_field # optional - sage.groups 6.45203596003699 - sage: d12 = polytopes.dodecahedron(exact=False) - sage: d12.base_ring() + sage: d12 = polytopes.dodecahedron(exact=False) # optional - sage.groups + sage: d12.base_ring() # optional - sage.groups Real Double Field Here is an error with a field that does not contain `\sqrt(5)`:: - sage: polytopes.dodecahedron(base_ring=QQ) # optional - sage.symbolic + sage: polytopes.dodecahedron(base_ring=QQ) # optional - sage.symbolic # optional - sage.groups Traceback (most recent call last): ... TypeError: unable to convert 1/4*sqrt(5) + 1/4 to a rational TESTS:: - sage: d12 = polytopes.dodecahedron(backend='normaliz') # optional - pynormaliz # optional - sage.rings.number_field - sage: d12.f_vector() # optional - pynormaliz # optional - sage.rings.number_field + sage: d12 = polytopes.dodecahedron(backend='normaliz') # optional - pynormaliz # optional - sage.rings.number_field # optional - sage.groups + sage: d12.f_vector() # optional - pynormaliz # optional - sage.rings.number_field # optional - sage.groups (1, 20, 30, 12, 1) - sage: TestSuite(d12).run() # optional - pynormaliz # optional - sage.rings.number_field + sage: TestSuite(d12).run() # optional - pynormaliz # optional - sage.rings.number_field # optional - sage.groups """ return self.icosahedron(exact=exact, base_ring=base_ring, backend=backend).polar() @@ -1600,17 +1600,17 @@ def truncated_dodecahedron(self, exact=True, base_ring=None, backend=None): EXAMPLES:: - sage: td = polytopes.truncated_dodecahedron() - sage: td.f_vector() + sage: td = polytopes.truncated_dodecahedron() # optional - sage.rings.number_field + sage: td.f_vector() # optional - sage.rings.number_field (1, 60, 90, 32, 1) - sage: td.base_ring() + sage: td.base_ring() # optional - sage.rings.number_field Number Field in sqrt5 with defining polynomial x^2 - 5 with sqrt5 = 2.236067977499790? Its facets are 20 triangles and 12 regular decagons:: - sage: sum(1 for f in td.facets() if len(f.vertices()) == 3) + sage: sum(1 for f in td.facets() if len(f.vertices()) == 3) # optional - sage.rings.number_field 20 - sage: sum(1 for f in td.facets() if len(f.vertices()) == 10) + sage: sum(1 for f in td.facets() if len(f.vertices()) == 10) # optional - sage.rings.number_field 12 The faster implementation using floating point approximations does not @@ -1633,10 +1633,10 @@ def truncated_dodecahedron(self, exact=True, base_ring=None, backend=None): TESTS:: - sage: td = polytopes.truncated_dodecahedron(backend='normaliz') # optional - pynormaliz - sage: td.f_vector() # optional - pynormaliz + sage: td = polytopes.truncated_dodecahedron(backend='normaliz') # optional - pynormaliz # optional - sage.rings.number_field + sage: td.f_vector() # optional - pynormaliz # optional - sage.rings.number_field (1, 60, 90, 32, 1) - sage: td.base_ring() # optional - pynormaliz + sage: td.base_ring() # optional - pynormaliz # optional - sage.rings.number_field Number Field in sqrt5 with defining polynomial x^2 - 5 with sqrt5 = 2.236067977499790? """ @@ -2604,7 +2604,7 @@ def generalized_permutahedron(self, coxeter_type, point=None, exact=True, regula A 3-dimensional polyhedron in QQ^3 defined as the convex hull of 12 vertices sage: perm_a3_110 = polytopes.generalized_permutahedron(['A',3],[1,1,0]); perm_a3_110 # optional - sage.combinat A 3-dimensional polyhedron in QQ^3 defined as the convex hull of 12 vertices - sage: perm_a3_110.is_combinatorially_isomorphic(perm_a3_011) + sage: perm_a3_110.is_combinatorially_isomorphic(perm_a3_011) # optional - sage.combinat True sage: perm_a3_101 = polytopes.generalized_permutahedron(['A',3],[1,0,1]); perm_a3_101 # optional - sage.combinat A 3-dimensional polyhedron in QQ^3 defined as the convex hull of 12 vertices diff --git a/src/sage/geometry/polyhedron/parent.py b/src/sage/geometry/polyhedron/parent.py index 8e2e868294d..352b2b1481e 100644 --- a/src/sage/geometry/polyhedron/parent.py +++ b/src/sage/geometry/polyhedron/parent.py @@ -96,11 +96,11 @@ def Polyhedra(ambient_space_or_base_ring=None, ambient_dim=None, backend=None, * TESTS:: - sage: Polyhedra(RR, 3, backend='field') + sage: Polyhedra(RR, 3, backend='field') # optional - sage.rings.real_mpfr Traceback (most recent call last): ... ValueError: the 'field' backend for polyhedron cannot be used with non-exact fields - sage: Polyhedra(RR, 3) + sage: Polyhedra(RR, 3) # optional - sage.rings.real_mpfr Traceback (most recent call last): ... ValueError: no default backend for computations with Real Field with 53 bits of precision diff --git a/src/sage/geometry/polyhedron/plot.py b/src/sage/geometry/polyhedron/plot.py index c53357404c6..c54b92116f3 100644 --- a/src/sage/geometry/polyhedron/plot.py +++ b/src/sage/geometry/polyhedron/plot.py @@ -13,7 +13,7 @@ from math import pi -from sage.rings.real_double import RDF +from sage.misc.lazy_import import lazy_import from sage.structure.sage_object import SageObject from sage.modules.free_module_element import vector from sage.matrix.constructor import matrix, identity_matrix @@ -22,7 +22,6 @@ from sage.misc.latex import LatexExpr from sage.structure.sequence import Sequence -from sage.misc.lazy_import import lazy_import lazy_import("sage.plot.all", ["Graphics", "point2d", "line2d", "arrow", "polygon2d", "rainbow"]) lazy_import("sage.plot.plot3d.all", ["point3d", "line3d", "arrow3d", "polygons3d"]) lazy_import("sage.plot.plot3d.transform", "rotate_arbitrary") @@ -178,6 +177,8 @@ def __init__(self, projection_point): [ 0.7071067811... 0.7071067811...] sage: TestSuite(proj).run(skip='_test_pickling') """ + from sage.rings.real_double import RDF + self.projection_point = vector(projection_point) self.dim = self.projection_point.degree() @@ -227,6 +228,8 @@ def __call__(self, x): sage: proj.__call__(vector([1,0,0])) (0.5, 0.0) """ + from sage.rings.real_double import RDF + img = self.house * x denom = self.psize - img[self.dim - 1] if denom.is_zero(): @@ -279,6 +282,8 @@ def __init__(self, facet, projection_point): (2.0, 2.0, 0.0) sage: TestSuite(proj).run(skip='_test_pickling') """ + from sage.rings.real_double import RDF + self.facet = facet ineq = [h for h in facet.ambient_Hrepresentation() if h.is_inequality()][0] self.full_A = ineq.A() @@ -500,14 +505,14 @@ def schlegel(self, facet=None, position=None): sage: tcube4 = cube4.face_truncation(cube4.faces(0)[0]) sage: tcube4.facets()[4] A 3-dimensional face of a Polyhedron in QQ^4 defined as the convex hull of 4 vertices - sage: into_tetra = Projection(tcube4).schlegel(tcube4.facets()[4]) - sage: into_tetra.plot() # optional - sage.plot + sage: into_tetra = Projection(tcube4).schlegel(tcube4.facets()[4]) # optional - sage.symbolic + sage: into_tetra.plot() # optional - sage.plot # optional - sage.symbolic Graphics3d Object Taking a larger value for the position changes the image:: - sage: into_tetra_far = Projection(tcube4).schlegel(tcube4.facets()[4],4) - sage: into_tetra_far.plot() # optional - sage.plot + sage: into_tetra_far = Projection(tcube4).schlegel(tcube4.facets()[4], 4) # optional - sage.symbolic + sage: into_tetra_far.plot() # optional - sage.plot # optional - sage.symbolic Graphics3d Object A value which is too large or negative give a projection point that @@ -1360,7 +1365,7 @@ def tikz(self, view=[0, 0, 1], angle=0, scale=1, sage: Image3 = P3.projection().tikz([0.5, -1, -0.1], 55, scale=3, edge_color='blue!95!black', # optional - sage.plot ....: facet_color='orange!95!black', opacity=0.7, ....: vertex_color='yellow', axis=True, output_type='TikzPicture') - sage: Image3 + sage: Image3 # optional - sage.plot \documentclass[tikz]{standalone} \begin{document} \begin{tikzpicture}% @@ -1377,10 +1382,10 @@ def tikz(self, view=[0, 0, 1], angle=0, scale=1, %% \end{tikzpicture} \end{document} - sage: _ = Image3.tex('polytope-tikz3.tex') # not tested - sage: _ = Image3.png('polytope-tikz3.png') # not tested - sage: _ = Image3.pdf('polytope-tikz3.pdf') # not tested - sage: _ = Image3.svg('polytope-tikz3.svg') # not tested + sage: _ = Image3.tex('polytope-tikz3.tex') # not tested # optional - sage.plot + sage: _ = Image3.png('polytope-tikz3.png') # not tested # optional - sage.plot + sage: _ = Image3.pdf('polytope-tikz3.pdf') # not tested # optional - sage.plot + sage: _ = Image3.svg('polytope-tikz3.svg') # not tested # optional - sage.plot A fourth example:: @@ -1633,6 +1638,8 @@ def _tikz_2d_in_3d(self, view, angle, scale, edge_color, facet_color, The ``facet_color`` is the filing color of the polytope (polygon). """ + from sage.rings.real_double import RDF + view_vector = vector(RDF, view) rot = rotate_arbitrary(view_vector, -(angle/360)*2*pi) rotation_matrix = rot[:2].transpose() @@ -1752,12 +1759,12 @@ def _tikz_3d_in_3d(self, view, angle, scale, edge_color, EXAMPLES:: sage: P = polytopes.small_rhombicuboctahedron() # optional - sage.rings.number_field - sage: Image = P.projection()._tikz_3d_in_3d([3, 7, 5], 100, scale=3, + sage: Image = P.projection()._tikz_3d_in_3d([3, 7, 5], 100, scale=3, # optional - sage.rings.number_field ....: edge_color='blue', facet_color='orange', ....: opacity=0.5, vertex_color='green', axis=True) sage: type(Image) # optional - sage.rings.number_field - sage: print('\n'.join(Image.splitlines()[:4])) + sage: print('\n'.join(Image.splitlines()[:4])) # optional - sage.rings.number_field \begin{tikzpicture}% [x={(-0.046385cm, 0.837431cm)}, y={(-0.243536cm, 0.519228cm)}, @@ -1792,6 +1799,8 @@ def _tikz_3d_in_3d(self, view, angle, scale, edge_color, \coordinate (1.00000, -1.00000, 0.00000) at (1.00000, -1.00000, 0.00000); \coordinate (1.00000, 0.00000, -1.00000) at (1.00000, 0.00000, -1.00000); """ + from sage.rings.real_double import RDF + view_vector = vector(RDF, view) rot = rotate_arbitrary(view_vector, -(angle/360)*2*pi) rotation_matrix = rot[:2].transpose() diff --git a/src/sage/geometry/polyhedron/ppl_lattice_polytope.py b/src/sage/geometry/polyhedron/ppl_lattice_polytope.py index d45f8a3991a..895c7fed0c3 100644 --- a/src/sage/geometry/polyhedron/ppl_lattice_polytope.py +++ b/src/sage/geometry/polyhedron/ppl_lattice_polytope.py @@ -48,7 +48,7 @@ sage: square = LatticePolytope_PPL((-1,-1),(-1,1),(1,-1),(1,1)) sage: fibers = [ f.vertices() for f in square.fibration_generator(1) ]; fibers [((1, 0), (-1, 0)), ((0, 1), (0, -1)), ((-1, -1), (1, 1)), ((-1, 1), (1, -1))] - sage: square.pointsets_mod_automorphism(fibers) + sage: square.pointsets_mod_automorphism(fibers) # optional - sage.groups (frozenset({(-1, -1), (1, 1)}), frozenset({(-1, 0), (1, 0)})) AUTHORS: diff --git a/src/sage/interfaces/all__sagemath_polyhedra.py b/src/sage/interfaces/all__sagemath_polyhedra.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/sage/numerical/backends/generic_backend.pyx b/src/sage/numerical/backends/generic_backend.pyx index 64d47f7bc2b..18e73ff68af 100644 --- a/src/sage/numerical/backends/generic_backend.pyx +++ b/src/sage/numerical/backends/generic_backend.pyx @@ -1759,7 +1759,8 @@ cpdef GenericBackend get_solver(constraint_generation = False, solver = None, ba if base_ring is not None: base_ring = base_ring.fraction_field() - from sage.rings.all import QQ, RDF + from sage.rings.rational_field import QQ + from sage.rings.real_double import RDF if base_ring is QQ: solver = "Ppl" elif solver in ["Interactivelp", "Ppl"] and not base_ring.is_exact(): From 6fd026b7915ff579f55417485022f68ed32ba703 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Fri, 27 Jan 2023 23:19:28 -0800 Subject: [PATCH 088/249] sage.geometry: More # optional --- src/sage/geometry/cone_catalog.py | 16 ++-- .../hyperplane_arrangement/affine_subspace.py | 10 +-- .../hyperplane_arrangement/arrangement.py | 90 ++++++++++--------- src/sage/geometry/linear_expression.py | 2 +- 4 files changed, 62 insertions(+), 56 deletions(-) diff --git a/src/sage/geometry/cone_catalog.py b/src/sage/geometry/cone_catalog.py index a3d1ffa670f..185391d261a 100644 --- a/src/sage/geometry/cone_catalog.py +++ b/src/sage/geometry/cone_catalog.py @@ -374,8 +374,8 @@ def rearrangement(p, ambient_dim=None, lattice=None): sage: ambient_dim = ZZ.random_element(2,10).abs() sage: p = ZZ.random_element(1, ambient_dim) sage: K = cones.rearrangement(p, ambient_dim) - sage: P = SymmetricGroup(ambient_dim).random_element().matrix() - sage: all( K.contains(P*r) for r in K ) + sage: P = SymmetricGroup(ambient_dim).random_element().matrix() # optional - sage.groups + sage: all(K.contains(P*r) for r in K) # optional - sage.groups True The smallest ``p`` components of every element of the rearrangement @@ -529,11 +529,11 @@ def schur(ambient_dim=None, lattice=None): sage: P = cones.schur(5) sage: Q = cones.nonnegative_orthant(5) - sage: G = ( g.change_ring(QQbar).normalized() for g in P ) - sage: H = ( h.change_ring(QQbar).normalized() for h in Q ) - sage: actual = max(arccos(u.inner_product(v)) for u in G for v in H) - sage: expected = 3*pi/4 - sage: abs(actual - expected).n() < 1e-12 + sage: G = ( g.change_ring(QQbar).normalized() for g in P ) # optional - sage.rings.number_fields + sage: H = ( h.change_ring(QQbar).normalized() for h in Q ) # optional - sage.rings.number_fields + sage: actual = max(arccos(u.inner_product(v)) for u in G for v in H) # optional - sage.rings.number_fields + sage: expected = 3*pi/4 # optional - sage.rings.number_fields + sage: abs(actual - expected).n() < 1e-12 # optional - sage.rings.number_fields True The dual of the Schur cone is the "downward monotonic cone" @@ -566,7 +566,7 @@ def schur(ambient_dim=None, lattice=None): True sage: x = V.random_element() sage: y = V.random_element() - sage: majorized_by(x,y) == ( (y-x) in S ) + sage: majorized_by(x,y) == ( (y-x) in S ) # optional - sage.rings.number_fields True If a ``lattice`` was given, it is actually used:: diff --git a/src/sage/geometry/hyperplane_arrangement/affine_subspace.py b/src/sage/geometry/hyperplane_arrangement/affine_subspace.py index 7c1065553c4..3b024b6f419 100644 --- a/src/sage/geometry/hyperplane_arrangement/affine_subspace.py +++ b/src/sage/geometry/hyperplane_arrangement/affine_subspace.py @@ -33,8 +33,8 @@ True sage: c < b False - sage: A = AffineSubspace([8,38,21,250], VectorSpace(GF(19),4)) - sage: A + sage: A = AffineSubspace([8,38,21,250], VectorSpace(GF(19),4)) # optional - sage.libs.pari + sage: A # optional - sage.libs.pari Affine space p + W where: p = (8, 0, 2, 3) W = Vector space of dimension 4 over Finite Field of size 19 @@ -384,9 +384,9 @@ def intersection(self, other): [] sage: A.intersection(C).intersection(B) - sage: D = AffineSubspace([1,2,3], VectorSpace(GF(5),3)) - sage: E = AffineSubspace([3,4,5], VectorSpace(GF(5),3)) - sage: D.intersection(E) + sage: D = AffineSubspace([1,2,3], VectorSpace(GF(5),3)) # optional - sage.libs.pari + sage: E = AffineSubspace([3,4,5], VectorSpace(GF(5),3)) # optional - sage.libs.pari + sage: D.intersection(E) # optional - sage.libs.pari Affine space p + W where: p = (3, 4, 0) W = Vector space of dimension 3 over Finite Field of size 5 diff --git a/src/sage/geometry/hyperplane_arrangement/arrangement.py b/src/sage/geometry/hyperplane_arrangement/arrangement.py index 5b2534677a1..b2438ed284f 100644 --- a/src/sage/geometry/hyperplane_arrangement/arrangement.py +++ b/src/sage/geometry/hyperplane_arrangement/arrangement.py @@ -60,30 +60,30 @@ The default base field is `\QQ`, the rational numbers. Finite fields are also supported:: - sage: H. = HyperplaneArrangements(GF(5)) - sage: a = H([(1,2,3), 4], [(5,6,7), 8]); a + sage: H. = HyperplaneArrangements(GF(5)) # optional - sage.libs.pari + sage: a = H([(1,2,3), 4], [(5,6,7), 8]); a # optional - sage.libs.pari Arrangement Number fields are also possible:: sage: x = var('x') - sage: NF. = NumberField(x**4 - 5*x**2 + 5,embedding=1.90) - sage: H. = HyperplaneArrangements(NF) - sage: A = H([[(-a**3 + 3*a, -a**2 + 4), 1], [(a**3 - 4*a, -1), 1], + sage: NF. = NumberField(x**4 - 5*x**2 + 5, embedding=1.90) # optional - sage.rings.number_field + sage: H. = HyperplaneArrangements(NF) # optional - sage.rings.number_field + sage: A = H([[(-a**3 + 3*a, -a**2 + 4), 1], [(a**3 - 4*a, -1), 1], # optional - sage.rings.number_field ....: [(0, 2*a**2 - 6), 1], [(-a**3 + 4*a, -1), 1], ....: [(a**3 - 3*a, -a**2 + 4), 1]]) - sage: A + sage: A # optional - sage.rings.number_field Arrangement of 5 hyperplanes of dimension 2 and rank 2 - sage: A.base_ring() + sage: A.base_ring() # optional - sage.rings.number_field Number Field in a with defining polynomial x^4 - 5*x^2 + 5 with a = 1.902113032590308? Notation (iii): a list or tuple of hyperplanes:: - sage: H. = HyperplaneArrangements(GF(5)) - sage: k = [x+i for i in range(4)]; k + sage: H. = HyperplaneArrangements(GF(5)) # optional - sage.libs.pari + sage: k = [x+i for i in range(4)]; k # optional - sage.libs.pari [Hyperplane x + 0*y + 0*z + 0, Hyperplane x + 0*y + 0*z + 1, Hyperplane x + 0*y + 0*z + 2, Hyperplane x + 0*y + 0*z + 3] - sage: H(k) + sage: H(k) # optional - sage.libs.pari Arrangement Notation (iv): using the library of arrangements:: @@ -264,10 +264,10 @@ sage: a = hyperplane_arrangements.semiorder(3) sage: a.has_good_reduction(5) True - sage: b = a.change_ring(GF(5)) + sage: b = a.change_ring(GF(5)) # optional - sage.libs.pari sage: pa = a.intersection_poset() - sage: pb = b.intersection_poset() - sage: pa.is_isomorphic(pb) + sage: pb = b.intersection_poset() # optional - sage.libs.pari + sage: pa.is_isomorphic(pb) # optional - sage.libs.pari True sage: a.face_vector() (0, 12, 30, 19) @@ -356,7 +356,6 @@ from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing from sage.geometry.hyperplane_arrangement.hyperplane import AmbientVectorSpace, Hyperplane -from sage.combinat.posets.posets import Poset class HyperplaneArrangementElement(Element): @@ -1129,7 +1128,7 @@ def change_ring(self, base_ring): sage: H. = HyperplaneArrangements(QQ) sage: A = H([(1,1), 0], [(2,3), -1]) - sage: A.change_ring(FiniteField(2)) + sage: A.change_ring(FiniteField(2)) # optional - sage.libs.pari Arrangement TESTS: @@ -1165,8 +1164,8 @@ def n_regions(self): sage: H. = HyperplaneArrangements(QQ) sage: A = H([(1,1), 0], [(2,3), -1], [(4,5), 3]) - sage: B = A.change_ring(FiniteField(7)) - sage: B.n_regions() + sage: B = A.change_ring(FiniteField(7)) # optional - sage.libs.pari + sage: B.n_regions() # optional - sage.libs.pari Traceback (most recent call last): ... TypeError: base field must have characteristic zero @@ -1174,16 +1173,21 @@ def n_regions(self): Check that :trac:`30749` is fixed:: sage: R. = QQ[] - sage: v1 = AA.polynomial_root(AA.common_polynomial(y^2 - 3), RIF(RR(1.7320508075688772), RR(1.7320508075688774))) - sage: v2 = QQbar.polynomial_root(AA.common_polynomial(y^4 - y^2 + 1), CIF(RIF(RR(0.8660254037844386), RR(0.86602540378443871)), RIF(-RR(0.50000000000000011), -RR(0.49999999999999994)))) - sage: my_vectors = (vector(AA, [-v1, -1, 1]), vector(AA, [0, 2, 1]), vector(AA,[v1, -1, 1]), vector(AA, [1, 0, 0]), vector(AA, [1/2, AA(-1/2*v2^3 + v2),0]), vector(AA, [-1/2, AA(-1/2*v2^3 + v2), 0])) - sage: H = HyperplaneArrangements(AA, names='xyz') - sage: x,y,z = H.gens() - sage: A = H(backend="normaliz") # optional - pynormaliz - sage: for v in my_vectors: # optional - pynormaliz + sage: v1 = AA.polynomial_root(AA.common_polynomial(y^2 - 3), # optional - sage.rings.number_field + ....: RIF(RR(1.7320508075688772), RR(1.7320508075688774))) + sage: v2 = QQbar.polynomial_root(AA.common_polynomial(y^4 - y^2 + 1), # optional - sage.rings.number_field + ....: CIF(RIF(RR(0.8660254037844386), RR(0.86602540378443871)), + ....: RIF(-RR(0.50000000000000011), -RR(0.49999999999999994)))) + sage: my_vectors = (vector(AA, [-v1, -1, 1]), vector(AA, [0, 2, 1]), vector(AA, [v1, -1, 1]), # optional - sage.rings.number_field + ....: vector(AA, [1, 0, 0]), vector(AA, [1/2, AA(-1/2*v2^3 + v2),0]), + ....: vector(AA, [-1/2, AA(-1/2*v2^3 + v2), 0])) + sage: H = HyperplaneArrangements(AA, names='xyz') # optional - sage.rings.number_field + sage: x,y,z = H.gens() # optional - sage.rings.number_field + sage: A = H(backend="normaliz") # optional - pynormaliz # optional - sage.rings.number_field + sage: for v in my_vectors: # optional - pynormaliz # optional - sage.rings.number_field ....: a, b, c = v ....: A = A.add_hyperplane(a*x + b*y + c*z) - sage: A.n_regions() # optional - pynormaliz + sage: A.n_regions() # optional - pynormaliz # optional - sage.rings.number_field 24 """ if self.base_ring().characteristic() != 0: @@ -1211,8 +1215,8 @@ def n_bounded_regions(self): sage: H. = HyperplaneArrangements(QQ) sage: A = H([(1,1),0], [(2,3),-1], [(4,5),3]) - sage: B = A.change_ring(FiniteField(7)) - sage: B.n_bounded_regions() + sage: B = A.change_ring(FiniteField(7)) # optional - sage.libs.pari + sage: B.n_bounded_regions() # optional - sage.libs.pari Traceback (most recent call last): ... TypeError: base field must have characteristic zero @@ -1243,14 +1247,14 @@ def has_good_reduction(self, p): EXAMPLES:: sage: a = hyperplane_arrangements.semiorder(3) - sage: a.has_good_reduction(5) + sage: a.has_good_reduction(5) # optional - sage.libs.pari True - sage: a.has_good_reduction(3) + sage: a.has_good_reduction(3) # optional - sage.libs.pari False - sage: b = a.change_ring(GF(3)) + sage: b = a.change_ring(GF(3)) # optional - sage.libs.pari sage: a.characteristic_polynomial() x^3 - 6*x^2 + 12*x - sage: b.characteristic_polynomial() # not equal to that for a + sage: b.characteristic_polynomial() # not equal to that for a # optional - sage.libs.pari x^3 - 6*x^2 + 10*x """ if self.base_ring() != QQ: @@ -1495,9 +1499,9 @@ def essentialization(self): Hyperplane arrangements in 1-dimensional linear space over Rational Field with coordinate x - sage: H. = HyperplaneArrangements(GF(2)) - sage: C = H([(1,1),1], [(1,1),0]) - sage: C.essentialization() + sage: H. = HyperplaneArrangements(GF(2)) # optional - sage.libs.pari + sage: C = H([(1,1),1], [(1,1),0]) # optional - sage.libs.pari + sage: C.essentialization() # optional - sage.libs.pari Arrangement sage: h = hyperplane_arrangements.semiorder(4) @@ -1587,9 +1591,9 @@ def sign_vector(self, p): TESTS:: - sage: H. = HyperplaneArrangements(GF(3)) - sage: A = H(x, y) - sage: A.sign_vector([1, 2]) + sage: H. = HyperplaneArrangements(GF(3)) # optional - sage.libs.pari + sage: A = H(x, y) # optional - sage.libs.pari + sage: A.sign_vector([1, 2]) # optional - sage.libs.pari Traceback (most recent call last): ... ValueError: characteristic must be zero @@ -1992,6 +1996,8 @@ def poset_of_regions(self, B=None, numbered_labels=True): sage: A.poset_of_regions(B=base_region) Finite poset containing 14 elements """ + from sage.combinat.posets.posets import Poset + # We use RX to keep track of indexes and R to keep track of which regions # we've already hit. This poset is graded, so we can go one set at a time RX = self.regions() @@ -2480,7 +2486,7 @@ def face_semigroup_algebra(self, field=None, names='e'): sage: (e3 + 2*e4) * (e1 - e7) e4 - e6 - sage: U3 = a.face_semigroup_algebra(field=GF(3)); U3 + sage: U3 = a.face_semigroup_algebra(field=GF(3)); U3 # optional - sage.libs.pari Finite-dimensional algebra of degree 13 over Finite Field of size 3 TESTS: @@ -2550,8 +2556,8 @@ def region_containing_point(self, p): TESTS:: sage: A = H([(1,1),0], [(2,3),-1], [(4,5),3]) - sage: B = A.change_ring(FiniteField(7)) - sage: B.region_containing_point((1,2)) + sage: B = A.change_ring(FiniteField(7)) # optional - sage.libs.pari + sage: B.region_containing_point((1,2)) # optional - sage.libs.pari Traceback (most recent call last): ... ValueError: base field must have characteristic zero @@ -2991,8 +2997,8 @@ def matroid(self): intersection lattice:: sage: f = sum([list(M.flats(i)) for i in range(M.rank()+1)], []) - sage: PF = Poset([f, lambda x,y: x < y]) - sage: PF.is_isomorphic(A.intersection_poset()) + sage: PF = Poset([f, lambda x, y: x < y]) # optional - sage.combinat + sage: PF.is_isomorphic(A.intersection_poset()) # optional - sage.combinat True """ if not self.is_central(): diff --git a/src/sage/geometry/linear_expression.py b/src/sage/geometry/linear_expression.py index 7f4a91b3194..b62e17193a3 100644 --- a/src/sage/geometry/linear_expression.py +++ b/src/sage/geometry/linear_expression.py @@ -440,7 +440,7 @@ def evaluate(self, point): 9 sage: ex([1,1]) # syntactic sugar 9 - sage: ex([pi, e]) + sage: ex([pi, e]) # optional - sage.symbolic 2*pi + 3*e + 4 """ try: From 9400f51a2bda96c44fc1928b7de4dda13292daf3 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Thu, 26 Jan 2023 17:47:39 -0800 Subject: [PATCH 089/249] src/sage/rings/integer.pyx: Mark doctests # optional - sage.libs.pari, sage.rings.number_field, sage.symbolic --- src/sage/features/sagemath.py | 21 ++ src/sage/rings/integer.pyx | 372 +++++++++++++++++----------------- 2 files changed, 207 insertions(+), 186 deletions(-) diff --git a/src/sage/features/sagemath.py b/src/sage/features/sagemath.py index 4085679dbd8..fdcd07944e3 100644 --- a/src/sage/features/sagemath.py +++ b/src/sage/features/sagemath.py @@ -122,6 +122,27 @@ def __init__(self): [PythonModule('sage.groups.perm_gps.permgroup')]) +class sage__libs__pari(JoinFeature): + r""" + A :class:`sage.features.Feature` describing the presence of :mod:`sage.libs.pari`. + + EXAMPLES:: + + sage: from sage.features.sagemath import sage__libs__pari + sage: sage__libs__pari().is_present() # optional - sage.libs.pari + FeatureTestResult('sage.libs.pari', True) + """ + def __init__(self): + r""" + TESTS:: + + sage: from sage.features.sagemath import sage__libs__pari + sage: isinstance(sage__libs__pari(), sage__libs__pari) + True + """ + JoinFeature.__init__(self, 'sage.libs.pari', + [PythonModule('sage.libs.pari.convert_sage')]) + class sage__plot(JoinFeature): r""" A :class:`~sage.features.Feature` describing the presence of :mod:`sage.plot`. diff --git a/src/sage/rings/integer.pyx b/src/sage/rings/integer.pyx index c43319942fb..f038e747472 100644 --- a/src/sage/rings/integer.pyx +++ b/src/sage/rings/integer.pyx @@ -425,9 +425,9 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): Conversion from PARI:: - sage: Integer(pari('-10380104371593008048799446356441519384')) + sage: Integer(pari('-10380104371593008048799446356441519384')) # optional - sage.libs.pari -10380104371593008048799446356441519384 - sage: Integer(pari('Pol([-3])')) + sage: Integer(pari('Pol([-3])')) # optional - sage.libs.pari -3 Conversion from gmpy2:: @@ -463,11 +463,11 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): -901824309821093821093812093810928309183091832091 sage: ZZ(RR(2.0)^80) 1208925819614629174706176 - sage: ZZ(QQbar(sqrt(28-10*sqrt(3)) + sqrt(3))) + sage: ZZ(QQbar(sqrt(28-10*sqrt(3)) + sqrt(3))) # optional - sage.rings.number_field, sage.symbolic 5 - sage: ZZ(AA(32).nth_root(5)) + sage: ZZ(AA(32).nth_root(5)) # optional - sage.rings.number_field 2 - sage: ZZ(pari('Mod(-3,7)')) + sage: ZZ(pari('Mod(-3,7)')) # optional - sage.libs.pari 4 sage: ZZ('sage') Traceback (most recent call last): @@ -498,7 +498,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): :: - sage: k = GF(2) + sage: k = GF(2) # optional - sage.libs.pari sage: ZZ( (k(0),k(1)), 2) 2 @@ -535,40 +535,40 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): Test conversion from PARI (:trac:`11685`):: - sage: ZZ(pari(-3)) + sage: ZZ(pari(-3)) # optional - sage.libs.pari -3 - sage: ZZ(pari("-3.0")) + sage: ZZ(pari("-3.0")) # optional - sage.libs.pari -3 - sage: ZZ(pari("-3.5")) + sage: ZZ(pari("-3.5")) # optional - sage.libs.pari Traceback (most recent call last): ... TypeError: Attempt to coerce non-integral real number to an Integer - sage: ZZ(pari("1e100")) + sage: ZZ(pari("1e100")) # optional - sage.libs.pari Traceback (most recent call last): ... PariError: precision too low in truncr (precision loss in truncation) - sage: ZZ(pari("10^50")) + sage: ZZ(pari("10^50")) # optional - sage.libs.pari 100000000000000000000000000000000000000000000000000 - sage: ZZ(pari("Pol(3)")) + sage: ZZ(pari("Pol(3)")) # optional - sage.libs.pari 3 - sage: ZZ(GF(3^20,'t')(1)) + sage: ZZ(GF(3^20,'t')(1)) # optional - sage.libs.pari 1 - sage: ZZ(pari(GF(3^20,'t')(1))) + sage: ZZ(pari(GF(3^20,'t')(1))) # optional - sage.libs.pari 1 sage: x = polygen(QQ) - sage: K. = NumberField(x^2+3) - sage: ZZ(a^2) + sage: K. = NumberField(x^2+3) # optional - sage.rings.number_field + sage: ZZ(a^2) # optional - sage.rings.number_field -3 - sage: ZZ(pari(a)^2) + sage: ZZ(pari(a)^2) # optional - sage.libs.pari, sage.rings.number_field -3 - sage: ZZ(pari("Mod(x, x^3+x+1)")) # Note error message refers to lifted element + sage: ZZ(pari("Mod(x, x^3+x+1)")) # Note error message refers to lifted element # optional - sage.libs.pari Traceback (most recent call last): ... TypeError: Unable to coerce PARI x to an Integer Test coercion of p-adic with negative valuation:: - sage: ZZ(pari(Qp(11)(11^-7))) + sage: ZZ(pari(Qp(11)(11^-7))) # optional - sage.libs.pari Traceback (most recent call last): ... TypeError: Cannot convert p-adic with negative valuation to an integer @@ -769,8 +769,8 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): EXAMPLES:: sage: n = -10 - sage: R = GF(17) - sage: n._im_gens_(R, [R(1)]) + sage: R = GF(17) # optional - sage.libs.pari + sage: n._im_gens_(R, [R(1)]) # optional - sage.libs.pari 7 """ return codomain.coerce(self) @@ -2008,7 +2008,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): Traceback (most recent call last): ... ZeroDivisionError: rational division by zero - sage: 3 / QQbar.zero() + sage: 3 / QQbar.zero() # optional - sage.rings.number_field Traceback (most recent call last): ... ZeroDivisionError: division by zero in algebraic field @@ -2113,7 +2113,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): 1 sage: 2^-0 1 - sage: (-1)^(1/3) + sage: (-1)^(1/3) # optional - sage.symbolic (-1)^(1/3) For consistency with Python and MPFR, 0^0 is defined to be 1 in @@ -2140,7 +2140,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): We raise 2 to various interesting exponents:: - sage: 2^x # symbolic x + sage: 2^x # symbolic x # optional - sage.symbolic 2^x sage: 2^1.5 # real number 2.82842712474619 @@ -2151,19 +2151,19 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): sage: r = 2 ^ int(-3); r; type(r) 1/8 - sage: f = 2^(sin(x)-cos(x)); f + sage: f = 2^(sin(x)-cos(x)); f # optional - sage.symbolic 2^(-cos(x) + sin(x)) sage: f(x=3) 2^(-cos(3) + sin(3)) A symbolic sum:: - sage: x,y,z = var('x,y,z') - sage: 2^(x+y+z) + sage: x, y, z = var('x,y,z') # optional - sage.symbolic + sage: 2^(x + y + z) # optional - sage.symbolic 2^(x + y + z) - sage: 2^(1/2) + sage: 2^(1/2) # optional - sage.symbolic sqrt(2) - sage: 2^(-1/2) + sage: 2^(-1/2) # optional - sage.symbolic 1/2*sqrt(2) TESTS:: @@ -2767,13 +2767,13 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): EXAMPLES:: - sage: Integer(124).log(5) + sage: Integer(124).log(5) # optional - sage.symbolic log(124)/log(5) - sage: Integer(124).log(5,100) + sage: Integer(124).log(5, 100) 2.9950093311241087454822446806 sage: Integer(125).log(5) 3 - sage: Integer(125).log(5,prec=53) + sage: Integer(125).log(5, prec=53) 3.00000000000000 sage: log(Integer(125)) 3*log(5) @@ -2781,7 +2781,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): For extremely large numbers, this works:: sage: x = 3^100000 - sage: log(x,3) + sage: log(x, 3) 100000 With the new Pynac symbolic backend, log(x) also @@ -2829,7 +2829,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): TESTS:: - sage: (-2).log(3) + sage: (-2).log(3) # optional - sage.symbolic (I*pi + log(2))/log(3) """ cdef int self_sgn @@ -2886,21 +2886,21 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): EXAMPLES:: - sage: Integer(8).exp() + sage: Integer(8).exp() # optional - sage.symbolic e^8 - sage: Integer(8).exp(prec=100) + sage: Integer(8).exp(prec=100) # optional - sage.symbolic 2980.9579870417282747435920995 - sage: exp(Integer(8)) + sage: exp(Integer(8)) # optional - sage.symbolic e^8 For even fairly large numbers, this may not be useful. :: - sage: y=Integer(145^145) - sage: y.exp() + sage: y = Integer(145^145) + sage: y.exp() # optional - sage.symbolic e^25024207011349079210459585279553675697932183658421565260323592409432707306554163224876110094014450895759296242775250476115682350821522931225499163750010280453185147546962559031653355159703678703793369785727108337766011928747055351280379806937944746847277089168867282654496776717056860661614337004721164703369140625 - sage: y.exp(prec=53) # default RealField precision + sage: y.exp(prec=53) # default RealField precision # optional - sage.symbolic +infinity """ from sage.functions.all import exp @@ -3015,21 +3015,21 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): :: sage: n = 2^551 - 1 - sage: L = n.divisors() - sage: len(L) + sage: L = n.divisors() # optional - sage.libs.pari + sage: len(L) # optional - sage.libs.pari 256 - sage: L[-1] == n + sage: L[-1] == n # optional - sage.libs.pari True TESTS: Overflow:: - sage: prod(primes_first_n(64)).divisors() + sage: prod(primes_first_n(64)).divisors() # optional - sage.libs.pari Traceback (most recent call last): ... OverflowError: value too large - sage: prod(primes_first_n(58)).divisors() + sage: prod(primes_first_n(58)).divisors() # optional - sage.libs.pari Traceback (most recent call last): ... OverflowError: value too large # 32-bit @@ -3039,8 +3039,8 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): (the ``divisors`` call below allocates about 800 MB every time, so a memory leak will not go unnoticed):: - sage: n = prod(primes_first_n(25)) - sage: for i in range(20): # long time + sage: n = prod(primes_first_n(25)) # optional - sage.libs.pari + sage: for i in range(20): # long time # optional - sage.libs.pari ....: try: ....: alarm(RDF.random_element(1e-3, 0.5)) ....: _ = n.divisors() @@ -3322,9 +3322,9 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): This example caused trouble in :trac:`6083`:: - sage: a = next_prime(2**31) - sage: b = Integers(a)(100) - sage: a % b + sage: a = next_prime(2**31) # optional - sage.libs.pari + sage: b = Integers(a)(100) # optional - sage.libs.pari + sage: a % b # optional - sage.libs.pari Traceback (most recent call last): ... ArithmeticError: reduction modulo 100 not defined @@ -3678,26 +3678,26 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): EXAMPLES:: - sage: n = next_prime(10^6)*next_prime(10^7); n.trial_division() + sage: n = next_prime(10^6)*next_prime(10^7); n.trial_division() # optional - sage.libs.pari 1000003 - sage: (-n).trial_division() + sage: (-n).trial_division() # optional - sage.libs.pari 1000003 - sage: n.trial_division(bound=100) + sage: n.trial_division(bound=100) # optional - sage.libs.pari 10000049000057 - sage: n.trial_division(bound=-10) + sage: n.trial_division(bound=-10) # optional - sage.libs.pari Traceback (most recent call last): ... ValueError: bound must be positive - sage: n.trial_division(bound=0) + sage: n.trial_division(bound=0) # optional - sage.libs.pari Traceback (most recent call last): ... ValueError: bound must be positive - sage: ZZ(0).trial_division() + sage: ZZ(0).trial_division() # optional - sage.libs.pari Traceback (most recent call last): ... ValueError: self must be nonzero - sage: n = next_prime(10^5) * next_prime(10^40); n.trial_division() + sage: n = next_prime(10^5) * next_prime(10^40); n.trial_division() # optional - sage.libs.pari 100003 sage: n.trial_division(bound=10^4) 1000030000000000000000000000000000000012100363 @@ -3705,17 +3705,17 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): 1000030000000000000000000000000000000012100363 sage: (-n).trial_division() 100003 - sage: n = 2 * next_prime(10^40); n.trial_division() + sage: n = 2 * next_prime(10^40); n.trial_division() # optional - sage.libs.pari 2 - sage: n = 3 * next_prime(10^40); n.trial_division() + sage: n = 3 * next_prime(10^40); n.trial_division() # optional - sage.libs.pari 3 - sage: n = 5 * next_prime(10^40); n.trial_division() + sage: n = 5 * next_prime(10^40); n.trial_division() # optional - sage.libs.pari 5 - sage: n = 2 * next_prime(10^4); n.trial_division() + sage: n = 2 * next_prime(10^4); n.trial_division() # optional - sage.libs.pari 2 - sage: n = 3 * next_prime(10^4); n.trial_division() + sage: n = 3 * next_prime(10^4); n.trial_division() # optional - sage.libs.pari 3 - sage: n = 5 * next_prime(10^4); n.trial_division() + sage: n = 5 * next_prime(10^4); n.trial_division() # optional - sage.libs.pari 5 You can specify a starting point:: @@ -3839,7 +3839,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): EXAMPLES:: - sage: n = 2^100 - 1; n.factor() + sage: n = 2^100 - 1; n.factor() # optional - sage.libs.pari 3 * 5^3 * 11 * 31 * 41 * 101 * 251 * 601 * 1801 * 4051 * 8101 * 268501 This factorization can be converted into a list of pairs `(p, @@ -3866,9 +3866,9 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): that appear in the factorization:: sage: n = 920384092842390423848290348203948092384082349082 - sage: n.factor(proof=False) + sage: n.factor(proof=False) # optional - sage.libs.pari 2 * 11 * 1531 * 4402903 * 10023679 * 619162955472170540533894518173 - sage: n.factor(proof=True) + sage: n.factor(proof=True) # optional - sage.libs.pari 2 * 11 * 1531 * 4402903 * 10023679 * 619162955472170540533894518173 We factor using trial division only:: @@ -3878,10 +3878,10 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): We factor using a quadratic sieve algorithm:: - sage: p = next_prime(10^20) - sage: q = next_prime(10^21) - sage: n = p*q - sage: n.factor(algorithm='qsieve') + sage: p = next_prime(10^20) # optional - sage.libs.pari + sage: q = next_prime(10^21) # optional - sage.libs.pari + sage: n = p * q # optional - sage.libs.pari + sage: n.factor(algorithm='qsieve') # optional - sage.libs.pari doctest:... RuntimeWarning: the factorization returned by qsieve may be incomplete (the factors may not be prime) or even wrong; see qsieve? for details @@ -3889,10 +3889,10 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): We factor using the elliptic curve method:: - sage: p = next_prime(10^15) - sage: q = next_prime(10^21) - sage: n = p*q - sage: n.factor(algorithm='ecm') + sage: p = next_prime(10^15) # optional - sage.libs.pari + sage: q = next_prime(10^21) # optional - sage.libs.pari + sage: n = p * q # optional - sage.libs.pari + sage: n.factor(algorithm='ecm') # optional - sage.libs.pari 1000000000000037 * 1000000000000000000117 TESTS:: @@ -4776,23 +4776,23 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): EXAMPLES:: - sage: 144.perfect_power() + sage: 144.perfect_power() # optional - sage.libs.pari (12, 2) - sage: 1.perfect_power() + sage: 1.perfect_power() # optional - sage.libs.pari (1, 1) - sage: 0.perfect_power() + sage: 0.perfect_power() # optional - sage.libs.pari (0, 1) - sage: (-1).perfect_power() + sage: (-1).perfect_power() # optional - sage.libs.pari (-1, 1) - sage: (-8).perfect_power() + sage: (-8).perfect_power() # optional - sage.libs.pari (-2, 3) - sage: (-4).perfect_power() + sage: (-4).perfect_power() # optional - sage.libs.pari (-4, 1) - sage: (101^29).perfect_power() + sage: (101^29).perfect_power() # optional - sage.libs.pari (101, 29) - sage: (-243).perfect_power() + sage: (-243).perfect_power() # optional - sage.libs.pari (-3, 5) - sage: (-64).perfect_power() + sage: (-64).perfect_power() # optional - sage.libs.pari (-4, 3) """ parians = self.__pari__().ispower() @@ -5079,55 +5079,55 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): EXAMPLES:: - sage: 17.is_prime_power() + sage: 17.is_prime_power() # optional - sage.libs.pari True - sage: 10.is_prime_power() + sage: 10.is_prime_power() # optional - sage.libs.pari False - sage: 64.is_prime_power() + sage: 64.is_prime_power() # optional - sage.libs.pari True - sage: (3^10000).is_prime_power() + sage: (3^10000).is_prime_power() # optional - sage.libs.pari True - sage: (10000).is_prime_power() + sage: (10000).is_prime_power() # optional - sage.libs.pari False - sage: (-3).is_prime_power() + sage: (-3).is_prime_power() # optional - sage.libs.pari False - sage: 0.is_prime_power() + sage: 0.is_prime_power() # optional - sage.libs.pari False - sage: 1.is_prime_power() + sage: 1.is_prime_power() # optional - sage.libs.pari False - sage: p = next_prime(10^20); p + sage: p = next_prime(10^20); p # optional - sage.libs.pari 100000000000000000039 - sage: p.is_prime_power() + sage: p.is_prime_power() # optional - sage.libs.pari True - sage: (p^97).is_prime_power() + sage: (p^97).is_prime_power() # optional - sage.libs.pari True - sage: (p+1).is_prime_power() + sage: (p+1).is_prime_power() # optional - sage.libs.pari False With the ``get_data`` keyword set to ``True``:: - sage: (3^100).is_prime_power(get_data=True) + sage: (3^100).is_prime_power(get_data=True) # optional - sage.libs.pari (3, 100) - sage: 12.is_prime_power(get_data=True) + sage: 12.is_prime_power(get_data=True) # optional - sage.libs.pari (12, 0) - sage: (p^97).is_prime_power(get_data=True) + sage: (p^97).is_prime_power(get_data=True) # optional - sage.libs.pari (100000000000000000039, 97) - sage: q = p.next_prime(); q + sage: q = p.next_prime(); q # optional - sage.libs.pari 100000000000000000129 - sage: (p*q).is_prime_power(get_data=True) + sage: (p*q).is_prime_power(get_data=True) # optional - sage.libs.pari (10000000000000000016800000000000000005031, 0) The method works for large entries when `proof=False`:: sage: proof.arithmetic(False) - sage: ((10^500 + 961)^4).is_prime_power() + sage: ((10^500 + 961)^4).is_prime_power() # optional - sage.libs.pari True sage: proof.arithmetic(True) We check that :trac:`4777` is fixed:: sage: n = 150607571^14 - sage: n.is_prime_power() + sage: n.is_prime_power() # optional - sage.libs.pari True """ if mpz_sgn(self.value) <= 0: @@ -5201,26 +5201,26 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): EXAMPLES:: sage: z = 2^31 - 1 - sage: z.is_prime() + sage: z.is_prime() # optional - sage.libs.pari True sage: z = 2^31 - sage: z.is_prime() + sage: z.is_prime() # optional - sage.libs.pari False sage: z = 7 - sage: z.is_prime() + sage: z.is_prime() # optional - sage.libs.pari True sage: z = -7 - sage: z.is_prime() + sage: z.is_prime() # optional - sage.libs.pari False - sage: z.is_irreducible() + sage: z.is_irreducible() # optional - sage.libs.pari True :: sage: z = 10^80 + 129 - sage: z.is_prime(proof=False) + sage: z.is_prime(proof=False) # optional - sage.libs.pari True - sage: z.is_prime(proof=True) + sage: z.is_prime(proof=True) # optional - sage.libs.pari True When starting Sage the arithmetic proof flag is True. We can change @@ -5229,12 +5229,12 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): sage: proof.arithmetic() True sage: n = 10^100 + 267 - sage: timeit("n.is_prime()") # not tested + sage: timeit("n.is_prime()") # not tested # optional - sage.libs.pari 5 loops, best of 3: 163 ms per loop sage: proof.arithmetic(False) sage: proof.arithmetic() False - sage: timeit("n.is_prime()") # not tested + sage: timeit("n.is_prime()") # not tested # optional - sage.libs.pari 1000 loops, best of 3: 573 us per loop ALGORITHM: @@ -5251,7 +5251,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): ....: if tab[i]: ....: for j in range(2*i, size, i): ....: tab[j] = 0 - sage: all(ZZ(i).is_prime() == b for i,b in enumerate(tab)) + sage: all(ZZ(i).is_prime() == b for i,b in enumerate(tab)) # optional - sage.libs.pari True """ if mpz_sgn(self.value) <= 0: @@ -5314,16 +5314,16 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): EXAMPLES:: sage: z = 2^31 - 1 - sage: z.is_irreducible() + sage: z.is_irreducible() # optional - sage.libs.pari True sage: z = 2^31 - sage: z.is_irreducible() + sage: z.is_irreducible() # optional - sage.libs.pari False sage: z = 7 - sage: z.is_irreducible() + sage: z.is_irreducible() # optional - sage.libs.pari True sage: z = -7 - sage: z.is_irreducible() + sage: z.is_irreducible() # optional - sage.libs.pari True """ cdef Integer n = self if self >= 0 else -self @@ -5343,10 +5343,10 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): EXAMPLES:: sage: z = 2^31 - 1 - sage: z.is_pseudoprime() + sage: z.is_pseudoprime() # optional - sage.libs.pari True sage: z = 2^31 - sage: z.is_pseudoprime() + sage: z.is_pseudoprime() # optional - sage.libs.pari False """ return self.__pari__().ispseudoprime() @@ -5367,17 +5367,17 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): EXAMPLES:: sage: x = 10^200 + 357 - sage: x.is_pseudoprime() + sage: x.is_pseudoprime() # optional - sage.libs.pari True - sage: (x^12).is_pseudoprime_power() + sage: (x^12).is_pseudoprime_power() # optional - sage.libs.pari True - sage: (x^12).is_pseudoprime_power(get_data=True) + sage: (x^12).is_pseudoprime_power(get_data=True) # optional - sage.libs.pari (1000...000357, 12) - sage: (997^100).is_pseudoprime_power() + sage: (997^100).is_pseudoprime_power() # optional - sage.libs.pari True - sage: (998^100).is_pseudoprime_power() + sage: (998^100).is_pseudoprime_power() # optional - sage.libs.pari False - sage: ((10^1000 + 453)^2).is_pseudoprime_power() + sage: ((10^1000 + 453)^2).is_pseudoprime_power() # optional - sage.libs.pari True TESTS:: @@ -5386,7 +5386,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): False sage: (-1).is_pseudoprime_power() False - sage: 1.is_pseudoprime_power() + sage: 1.is_pseudoprime_power() # optional - sage.libs.pari False """ return self.is_prime_power(proof=False, get_data=get_data) @@ -5453,20 +5453,20 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): EXAMPLES:: - sage: K = NumberField(x^2 - 2, 'beta') + sage: K = NumberField(x^2 - 2, 'beta') # optional - sage.rings.number_field sage: n = 4 - sage: n.is_norm(K) + sage: n.is_norm(K) # optional - sage.rings.number_field True - sage: 5.is_norm(K) + sage: 5.is_norm(K) # optional - sage.rings.number_field False sage: 7.is_norm(QQ) True - sage: n.is_norm(K, element=True) + sage: n.is_norm(K, element=True) # optional - sage.rings.number_field (True, -4*beta + 6) - sage: n.is_norm(K, element=True)[1].norm() + sage: n.is_norm(K, element=True)[1].norm() # optional - sage.rings.number_field 4 sage: n = 5 - sage: n.is_norm(K, element=True) + sage: n.is_norm(K, element=True) # optional - sage.rings.number_field (False, None) sage: n = 7 sage: n.is_norm(QQ, element=True) @@ -5482,15 +5482,14 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): EXAMPLES:: - sage: 3._bnfisnorm(QuadraticField(-1, 'i')) + sage: 3._bnfisnorm(QuadraticField(-1, 'i')) # optional - sage.rings.number_field (1, 3) - sage: 7._bnfisnorm(CyclotomicField(7)) + sage: 7._bnfisnorm(CyclotomicField(7)) # optional - sage.rings.number_field (zeta7^5 - zeta7^2, 1) """ from sage.rings.rational_field import QQ return QQ(self)._bnfisnorm(K, proof=proof, extra_primes=extra_primes) - def jacobi(self, b): r""" Calculate the Jacobi symbol `\left(\frac{self}{b}\right)`. @@ -5585,11 +5584,11 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): EXAMPLES:: - sage: (-163).class_number() + sage: (-163).class_number() # optional - sage.libs.pari 1 - sage: (-104).class_number() + sage: (-104).class_number() # optional - sage.libs.pari 6 - sage: [((4*n+1),(4*n+1).class_number()) for n in [21..29]] + sage: [((4*n+1),(4*n+1).class_number()) for n in [21..29]] # optional - sage.libs.pari [(85, 2), (89, 1), (93, 1), @@ -5621,13 +5620,14 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): ... ValueError: class_number only defined for integers congruent to 0 or 1 modulo 4 """ - global objtogen - if objtogen is None: - from cypari2.gen import objtogen if self.is_square(): raise ValueError("class_number not defined for square integers") if self % 4 not in [0, 1]: raise ValueError("class_number only defined for integers congruent to 0 or 1 modulo 4") + + global objtogen + if objtogen is None: + from cypari2.gen import objtogen flag = self < 0 and proof return objtogen(self).qfbclassno(flag).sage() @@ -5670,8 +5670,8 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): 2 sage: a.squarefree_part(bound=2**14) 2 - sage: a = 7^3 * next_prime(2^100)^2 * next_prime(2^200) - sage: a / a.squarefree_part(bound=1000) + sage: a = 7^3 * next_prime(2^100)^2 * next_prime(2^200) # optional - sage.libs.pari + sage: a / a.squarefree_part(bound=1000) # optional - sage.libs.pari 49 """ cdef Integer z @@ -5718,17 +5718,17 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): EXAMPLES:: - sage: (-37).next_probable_prime() + sage: (-37).next_probable_prime() # optional - sage.libs.pari 2 - sage: (100).next_probable_prime() + sage: (100).next_probable_prime() # optional - sage.libs.pari 101 - sage: (2^512).next_probable_prime() + sage: (2^512).next_probable_prime() # optional - sage.libs.pari 13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084171 - sage: 0.next_probable_prime() + sage: 0.next_probable_prime() # optional - sage.libs.pari 2 - sage: 126.next_probable_prime() + sage: 126.next_probable_prime() # optional - sage.libs.pari 127 - sage: 144168.next_probable_prime() + sage: 144168.next_probable_prime() # optional - sage.libs.pari 144169 """ return Integer( self.__pari__().nextprime(True) ) @@ -5747,23 +5747,23 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): EXAMPLES:: - sage: 100.next_prime() + sage: 100.next_prime() # optional - sage.libs.pari 101 - sage: (10^50).next_prime() + sage: (10^50).next_prime() # optional - sage.libs.pari 100000000000000000000000000000000000000000000000151 Use ``proof=False``, which is way faster since it does not need a primality proof:: - sage: b = (2^1024).next_prime(proof=False) - sage: b - 2^1024 + sage: b = (2^1024).next_prime(proof=False) # optional - sage.libs.pari + sage: b - 2^1024 # optional - sage.libs.pari 643 :: - sage: Integer(0).next_prime() + sage: Integer(0).next_prime() # optional - sage.libs.pari 2 - sage: Integer(1001).next_prime() + sage: Integer(1001).next_prime() # optional - sage.libs.pari 1009 """ # Use PARI to compute the next *pseudo*-prime @@ -5792,11 +5792,11 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): EXAMPLES:: - sage: 10.previous_prime() + sage: 10.previous_prime() # optional - sage.libs.pari 7 - sage: 7.previous_prime() + sage: 7.previous_prime() # optional - sage.libs.pari 5 - sage: 14376485.previous_prime() + sage: 14376485.previous_prime() # optional - sage.libs.pari 14376463 sage: 2.previous_prime() @@ -5807,8 +5807,8 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): An example using ``proof=False``, which is way faster since it does not need a primality proof:: - sage: b = (2^1024).previous_prime(proof=False) - sage: 2^1024 - b + sage: b = (2^1024).previous_prime(proof=False) # optional - sage.libs.pari + sage: 2^1024 - b # optional - sage.libs.pari 105 """ if mpz_cmp_ui(self.value, 2) <= 0: @@ -5848,23 +5848,23 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): sage: (-1).next_prime_power() 2 - sage: 2.next_prime_power() + sage: 2.next_prime_power() # optional - sage.libs.pari 3 - sage: 103.next_prime_power() + sage: 103.next_prime_power() # optional - sage.libs.pari 107 - sage: 107.next_prime_power() + sage: 107.next_prime_power() # optional - sage.libs.pari 109 - sage: 2044.next_prime_power() + sage: 2044.next_prime_power() # optional - sage.libs.pari 2048 TESTS:: - sage: [(2**k-1).next_prime_power() for k in range(1,10)] + sage: [(2**k-1).next_prime_power() for k in range(1,10)] # optional - sage.libs.pari [2, 4, 8, 16, 32, 64, 128, 256, 512] - sage: [(2**k).next_prime_power() for k in range(10)] + sage: [(2**k).next_prime_power() for k in range(10)] # optional - sage.libs.pari [2, 3, 5, 9, 17, 37, 67, 131, 257, 521] - sage: for _ in range(10): + sage: for _ in range(10): # optional - sage.libs.pari ....: n = ZZ.random_element(2**256).next_prime_power() ....: m = n.next_prime_power().previous_prime_power() ....: assert m == n, "problem with n = {}".format(n) @@ -5912,13 +5912,13 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): EXAMPLES:: - sage: 3.previous_prime_power() + sage: 3.previous_prime_power() # optional - sage.libs.pari 2 - sage: 103.previous_prime_power() + sage: 103.previous_prime_power() # optional - sage.libs.pari 101 - sage: 107.previous_prime_power() + sage: 107.previous_prime_power() # optional - sage.libs.pari 103 - sage: 2044.previous_prime_power() + sage: 2044.previous_prime_power() # optional - sage.libs.pari 2039 sage: 2.previous_prime_power() @@ -5928,12 +5928,12 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): TESTS:: - sage: [(2**k+1).previous_prime_power() for k in range(1,10)] + sage: [(2**k+1).previous_prime_power() for k in range(1,10)] # optional - sage.libs.pari [2, 4, 8, 16, 32, 64, 128, 256, 512] - sage: [(2**k).previous_prime_power() for k in range(2, 10)] + sage: [(2**k).previous_prime_power() for k in range(2, 10)] # optional - sage.libs.pari [3, 7, 13, 31, 61, 127, 251, 509] - sage: for _ in range(10): + sage: for _ in range(10): # optional - sage.libs.pari ....: n = ZZ.random_element(3,2**256).previous_prime_power() ....: m = n.previous_prime_power().next_prime_power() ....: assert m == n, "problem with n = {}".format(n) @@ -6002,11 +6002,11 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): EXAMPLES:: - sage: 100.is_squarefree() + sage: 100.is_squarefree() # optional - sage.libs.pari False - sage: 102.is_squarefree() + sage: 102.is_squarefree() # optional - sage.libs.pari True - sage: 0.is_squarefree() + sage: 0.is_squarefree() # optional - sage.libs.pari False """ return self.__pari__().issquarefree() @@ -6018,16 +6018,16 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): EXAMPLES:: sage: n = 9390823 - sage: m = n.__pari__(); m + sage: m = n.__pari__(); m # optional - sage.libs.pari 9390823 - sage: type(m) + sage: type(m) # optional - sage.libs.pari TESTS:: sage: n = 10^10000000 - sage: m = n.__pari__() # crash from trac 875 - sage: m % 1234567 + sage: m = n.__pari__() # crash from trac 875 # optional - sage.libs.pari + sage: m % 1234567 # optional - sage.libs.pari 1041334 """ @@ -6232,19 +6232,19 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): 12 sage: sqrt(Integer(144)) 12 - sage: Integer(102).sqrt() + sage: Integer(102).sqrt() # optional - sage.symbolic sqrt(102) :: sage: n = 2 - sage: n.sqrt(all=True) + sage: n.sqrt(all=True) # optional - sage.symbolic [sqrt(2), -sqrt(2)] sage: n.sqrt(prec=10) 1.4 sage: n.sqrt(prec=100) 1.4142135623730950488016887242 - sage: n.sqrt(prec=100,all=True) + sage: n.sqrt(prec=100, all=True) [1.4142135623730950488016887242, -1.4142135623730950488016887242] sage: n.sqrt(extend=False) Traceback (most recent call last): @@ -6261,7 +6261,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): TESTS:: - sage: type(5.sqrt()) + sage: type(5.sqrt()) # optional - sage.symbolic sage: type(5.sqrt(prec=53)) @@ -6887,7 +6887,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): sage: 10.binomial(2) 45 - sage: 10.binomial(2, algorithm='pari') + sage: 10.binomial(2, algorithm='pari') # optional - sage.libs.pari 45 sage: 10.binomial(-2) 0 @@ -6929,7 +6929,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): check for reliable interrupting, see :trac:`18919`:: sage: from cysignals import AlarmInterrupt - sage: for i in [1..10]: # long time (5s) + sage: for i in [1..10]: # long time (5s) # optional - sage.libs.pari ....: try: ....: alarm(i/11) ....: (2^100).binomial(2^22, algorithm='pari') From a1d822dc93b0396b4a0407fe6132498a44270769 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 15 Feb 2023 13:20:53 -0800 Subject: [PATCH 090/249] src/sage/geometry/polyhedron/base2.py, src/sage/rings/integer.pyx: Reviewer fixes to # optional tags --- src/sage/geometry/polyhedron/base2.py | 4 ++-- src/sage/rings/integer.pyx | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/sage/geometry/polyhedron/base2.py b/src/sage/geometry/polyhedron/base2.py index fa0765795cb..69d4204e29c 100644 --- a/src/sage/geometry/polyhedron/base2.py +++ b/src/sage/geometry/polyhedron/base2.py @@ -793,8 +793,8 @@ def generating_function_of_integral_points(self, **kwds): z^5 + z^6 + 2*z^7 + 3*z^8 + 5*z^9 + 7*z^10 + 10*z^11 + 13*z^12 + 18*z^13 + 23*z^14 + 30*z^15 + 37*z^16 + 47*z^17 + 57*z^18 + 70*z^19 + 84*z^20 + 101*z^21 + 119*z^22 + 141*z^23 + 164*z^24 + O(z^25) - sage: [Partitions(k, length=5).cardinality() for k in range(5,20)] == \ # optional - sage.combinat - ....: c.truncate().coefficients(sparse=False)[5:20] + sage: ([Partitions(k, length=5).cardinality() for k in range(5,20)] == # optional - sage.combinat + ....: c.truncate().coefficients(sparse=False)[5:20]) True .. SEEALSO:: diff --git a/src/sage/rings/integer.pyx b/src/sage/rings/integer.pyx index f038e747472..49fe893d5c8 100644 --- a/src/sage/rings/integer.pyx +++ b/src/sage/rings/integer.pyx @@ -499,7 +499,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): :: sage: k = GF(2) # optional - sage.libs.pari - sage: ZZ( (k(0),k(1)), 2) + sage: ZZ((k(0),k(1)), 2) # optional - sage.libs.pari 2 :: @@ -3699,11 +3699,11 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement): sage: n = next_prime(10^5) * next_prime(10^40); n.trial_division() # optional - sage.libs.pari 100003 - sage: n.trial_division(bound=10^4) + sage: n.trial_division(bound=10^4) # optional - sage.libs.pari 1000030000000000000000000000000000000012100363 - sage: (-n).trial_division(bound=10^4) + sage: (-n).trial_division(bound=10^4) # optional - sage.libs.pari 1000030000000000000000000000000000000012100363 - sage: (-n).trial_division() + sage: (-n).trial_division() # optional - sage.libs.pari 100003 sage: n = 2 * next_prime(10^40); n.trial_division() # optional - sage.libs.pari 2 From d6ffafd55a1275eb632133d05aeeea1620f88ece Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 15 Feb 2023 13:24:10 -0800 Subject: [PATCH 091/249] src/sage/features/sagemath.py (all_features): Add sage.libs.pari --- src/sage/features/sagemath.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/sage/features/sagemath.py b/src/sage/features/sagemath.py index fdcd07944e3..3cb66162f07 100644 --- a/src/sage/features/sagemath.py +++ b/src/sage/features/sagemath.py @@ -143,6 +143,7 @@ def __init__(self): JoinFeature.__init__(self, 'sage.libs.pari', [PythonModule('sage.libs.pari.convert_sage')]) + class sage__plot(JoinFeature): r""" A :class:`~sage.features.Feature` describing the presence of :mod:`sage.plot`. @@ -301,6 +302,7 @@ def all_features(): sage__geometry__polyhedron(), sage__graphs(), sage__groups(), + sage__libs__pari(), sage__plot(), sage__rings__number_field(), sage__rings__padics(), From f7ec6a116705fb08506e02139f89bf2aabfc879d Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Thu, 16 Feb 2023 18:38:29 -0800 Subject: [PATCH 092/249] src/sage/geometry/polyhedral_complex.py: Mark # optional - sage.graphs --- src/sage/geometry/polyhedral_complex.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/geometry/polyhedral_complex.py b/src/sage/geometry/polyhedral_complex.py index 913a788b5df..629a4f9ba2a 100644 --- a/src/sage/geometry/polyhedral_complex.py +++ b/src/sage/geometry/polyhedral_complex.py @@ -1,4 +1,4 @@ -# -*- coding: utf-8 -*- +# sage.doctest: optional - sage.graphs r""" Finite polyhedral complexes From 4aa626402d1f24565e151dc47ff3714a060fc8dd Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Thu, 16 Feb 2023 20:55:56 -0800 Subject: [PATCH 093/249] sage.geometry.triangulation: More # optional --- src/sage/geometry/triangulation/point_configuration.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/sage/geometry/triangulation/point_configuration.py b/src/sage/geometry/triangulation/point_configuration.py index f970a5faf4a..3ad39184f37 100644 --- a/src/sage/geometry/triangulation/point_configuration.py +++ b/src/sage/geometry/triangulation/point_configuration.py @@ -1146,10 +1146,10 @@ def restricted_automorphism_group(self): EXAMPLES:: sage: pyramid = PointConfiguration([[1,0,0],[0,1,1],[0,1,-1],[0,-1,-1],[0,-1,1]]) - sage: G = pyramid.restricted_automorphism_group() - sage: G == PermutationGroup([[(3,5)], [(2,3),(4,5)], [(2,4)]]) + sage: G = pyramid.restricted_automorphism_group() # optional - sage.graphs, sage.groups + sage: G == PermutationGroup([[(3,5)], [(2,3),(4,5)], [(2,4)]]) # optional - sage.graphs, sage.groups True - sage: DihedralGroup(4).is_isomorphic(G) + sage: DihedralGroup(4).is_isomorphic(G) # optional - sage.graphs, sage.groups True The square with an off-center point in the middle. Note that @@ -1157,9 +1157,9 @@ def restricted_automorphism_group(self): `D_4` of the convex hull:: sage: square = PointConfiguration([(3/4,3/4),(1,1),(1,-1),(-1,-1),(-1,1)]) - sage: square.restricted_automorphism_group() + sage: square.restricted_automorphism_group() # optional - sage.graphs, sage.groups Permutation Group with generators [(3,5)] - sage: DihedralGroup(1).is_isomorphic(_) + sage: DihedralGroup(1).is_isomorphic(_) # optional - sage.graphs, sage.groups True """ v_list = [ vector(p.projective()) for p in self ] From 487bd40ca8ff16921131b5d6b49fb76bb8a923df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Chapoton?= Date: Fri, 17 Feb 2023 15:09:22 +0100 Subject: [PATCH 094/249] fix all pycodestyle E303 warnings in all folders c* --- src/sage/calculus/calculus.py | 1 - src/sage/categories/affine_weyl_groups.py | 1 - src/sage/categories/algebras_with_basis.py | 1 - src/sage/categories/category.py | 2 -- src/sage/categories/classical_crystals.py | 1 - src/sage/categories/coalgebras.py | 1 - ...x_reflection_or_generalized_coxeter_groups.py | 1 - src/sage/categories/crystals.py | 1 - .../graded_connected_hopf_algebras_with_basis.py | 1 - src/sage/categories/examples/sets_cat.py | 6 ------ .../categories/examples/with_realizations.py | 1 - .../filtered_hopf_algebras_with_basis.py | 1 - .../finite_dimensional_algebras_with_basis.py | 2 -- ...dimensional_semisimple_algebras_with_basis.py | 1 - .../categories/generalized_coxeter_groups.py | 1 - src/sage/categories/graded_modules_with_basis.py | 1 - src/sage/categories/hecke_modules.py | 1 - src/sage/categories/semigroups.py | 1 - src/sage/categories/sets_cat.py | 1 - src/sage/categories/topological_spaces.py | 1 - src/sage/categories/weyl_groups.py | 2 -- src/sage/coding/encoder.py | 1 - src/sage/coding/extended_code.py | 16 ---------------- src/sage/coding/golay_code.py | 2 -- src/sage/coding/guruswami_sudan/gs_decoder.py | 3 --- src/sage/coding/information_set_decoder.py | 4 ---- src/sage/coding/linear_code_no_metric.py | 1 - src/sage/coding/punctured_code.py | 9 --------- src/sage/coding/self_dual_codes.py | 1 - src/sage/combinat/designs/bibd.py | 2 -- src/sage/combinat/designs/database.py | 1 - src/sage/combinat/designs/difference_family.py | 4 ---- src/sage/combinat/designs/ext_rep.py | 1 - .../combinat/designs/incidence_structures.py | 1 - .../designs/orthogonal_arrays_build_recursive.py | 1 - .../designs/steiner_quadruple_systems.py | 5 ----- src/sage/combinat/k_tableau.py | 1 - src/sage/combinat/matrices/hadamard_matrix.py | 2 -- src/sage/combinat/root_system/type_B.py | 1 - src/sage/combinat/root_system/type_D.py | 1 - src/sage/combinat/t_sequences.py | 2 -- src/sage/combinat/vector_partition.py | 1 - src/sage/crypto/block_cipher/miniaes.py | 1 - src/sage/crypto/lwe.py | 2 -- src/sage/crypto/mq/sr.py | 7 ------- 45 files changed, 99 deletions(-) diff --git a/src/sage/calculus/calculus.py b/src/sage/calculus/calculus.py index 00da3f9d4af..4fe341a76ca 100644 --- a/src/sage/calculus/calculus.py +++ b/src/sage/calculus/calculus.py @@ -2442,7 +2442,6 @@ def maxima_options(**kwds): syms_default = dict(syms_cur) - def _find_var(name, interface=None): """ Function to pass to Parser for constructing diff --git a/src/sage/categories/affine_weyl_groups.py b/src/sage/categories/affine_weyl_groups.py index 285fe9e45ab..6bc26562b8e 100644 --- a/src/sage/categories/affine_weyl_groups.py +++ b/src/sage/categories/affine_weyl_groups.py @@ -14,7 +14,6 @@ from sage.categories.finite_enumerated_sets import FiniteEnumeratedSets - class AffineWeylGroups(Category_singleton): """ The category of affine Weyl groups diff --git a/src/sage/categories/algebras_with_basis.py b/src/sage/categories/algebras_with_basis.py index dbd7a9a43a1..d2296873b59 100644 --- a/src/sage/categories/algebras_with_basis.py +++ b/src/sage/categories/algebras_with_basis.py @@ -274,7 +274,6 @@ def one(self): # version of module morphism, this would not take # advantage of the block structure - class TensorProducts(TensorProductsCategory): """ The category of algebras with basis constructed by tensor product of algebras with basis diff --git a/src/sage/categories/category.py b/src/sage/categories/category.py index f70455cf1a0..9c6c53470c0 100644 --- a/src/sage/categories/category.py +++ b/src/sage/categories/category.py @@ -1470,7 +1470,6 @@ def _test_category(self, **options): _cmp_key = _cmp_key - ########################################################################## # Construction of the associated abstract classes for parents, elements, ... ########################################################################## @@ -2817,7 +2816,6 @@ def _make_named_class(self, name, method_provider, cache=False, **options): self._make_named_class_cache[key] = result return result - @abstract_method def _make_named_class_key(self, name): r""" diff --git a/src/sage/categories/classical_crystals.py b/src/sage/categories/classical_crystals.py index 490337d0bda..9650dae15a2 100644 --- a/src/sage/categories/classical_crystals.py +++ b/src/sage/categories/classical_crystals.py @@ -107,7 +107,6 @@ def additional_structure(self): """ return None - class ParentMethods: def demazure_character(self, w, f=None): diff --git a/src/sage/categories/coalgebras.py b/src/sage/categories/coalgebras.py index 22a385d5f0d..6e23888617e 100644 --- a/src/sage/categories/coalgebras.py +++ b/src/sage/categories/coalgebras.py @@ -79,7 +79,6 @@ def counit(self, x): and Hopf algebras using the counit. """ - @abstract_method def coproduct(self, x): """ diff --git a/src/sage/categories/complex_reflection_or_generalized_coxeter_groups.py b/src/sage/categories/complex_reflection_or_generalized_coxeter_groups.py index 6ddd62e0099..004bc2331ce 100644 --- a/src/sage/categories/complex_reflection_or_generalized_coxeter_groups.py +++ b/src/sage/categories/complex_reflection_or_generalized_coxeter_groups.py @@ -842,7 +842,6 @@ def is_reducible(self): """ return not self.is_irreducible() - class ElementMethods: def apply_simple_reflection_left(self, i): r""" diff --git a/src/sage/categories/crystals.py b/src/sage/categories/crystals.py index 980bebc9f84..f74340cf25d 100644 --- a/src/sage/categories/crystals.py +++ b/src/sage/categories/crystals.py @@ -388,7 +388,6 @@ def __iter__(self, index_set=None, max_depth=float('inf')): R = RecursivelyEnumeratedSet(self.module_generators, succ, structure=None) return R.breadth_first_search_iterator(max_depth) - def subcrystal(self, index_set=None, generators=None, max_depth=float("inf"), direction="both", contained=None, virtualization=None, scaling_factors=None, diff --git a/src/sage/categories/examples/graded_connected_hopf_algebras_with_basis.py b/src/sage/categories/examples/graded_connected_hopf_algebras_with_basis.py index 4e044441d2c..b67e01a4b02 100644 --- a/src/sage/categories/examples/graded_connected_hopf_algebras_with_basis.py +++ b/src/sage/categories/examples/graded_connected_hopf_algebras_with_basis.py @@ -44,7 +44,6 @@ def __init__(self, base_ring): CombinatorialFreeModule.__init__(self, base_ring, NonNegativeIntegers(), category=GradedHopfAlgebrasWithBasis(base_ring).Connected()) - @cached_method def one_basis(self): """ diff --git a/src/sage/categories/examples/sets_cat.py b/src/sage/categories/examples/sets_cat.py index 93cc264580d..cd5201e2c43 100644 --- a/src/sage/categories/examples/sets_cat.py +++ b/src/sage/categories/examples/sets_cat.py @@ -149,9 +149,6 @@ def _element_constructor_(self, e): element_class = Integer - - - from sage.misc.abstract_method import abstract_method class PrimeNumbers_Abstract(UniqueRepresentation, Parent): """ @@ -556,9 +553,6 @@ def _integer_(self, IntRing): return IntRing(self.value) - - - #*************************************************************************# class PrimeNumbers_Facade(PrimeNumbers_Abstract): r""" diff --git a/src/sage/categories/examples/with_realizations.py b/src/sage/categories/examples/with_realizations.py index 06e060f8925..d99cfba3a3a 100644 --- a/src/sage/categories/examples/with_realizations.py +++ b/src/sage/categories/examples/with_realizations.py @@ -301,7 +301,6 @@ def super_categories(self): return [A.Realizations(), category.Realizations().WithBasis()] - class ParentMethods: def from_set(self, *args): diff --git a/src/sage/categories/filtered_hopf_algebras_with_basis.py b/src/sage/categories/filtered_hopf_algebras_with_basis.py index d93f89422da..08888c78313 100644 --- a/src/sage/categories/filtered_hopf_algebras_with_basis.py +++ b/src/sage/categories/filtered_hopf_algebras_with_basis.py @@ -65,7 +65,6 @@ def super_categories(self): R = self.base_category().base_ring() return [HopfAlgebras(R).Filtered()] - class Connected(CategoryWithAxiom_over_base_ring): class ParentMethods: @cached_method diff --git a/src/sage/categories/finite_dimensional_algebras_with_basis.py b/src/sage/categories/finite_dimensional_algebras_with_basis.py index 6d2a713ece1..542cf09d425 100644 --- a/src/sage/categories/finite_dimensional_algebras_with_basis.py +++ b/src/sage/categories/finite_dimensional_algebras_with_basis.py @@ -313,7 +313,6 @@ def semisimple_quotient(self): result.rename("Semisimple quotient of {}".format(self)) return result - @cached_method def center_basis(self): r""" @@ -819,7 +818,6 @@ def peirce_summand(self, ei, ej): return self.submodule([self.from_vector(v) for v in ideal.basis()], already_echelonized=True) - def peirce_decomposition(self, idempotents=None, check=True): r""" Return a Peirce decomposition of ``self``. diff --git a/src/sage/categories/finite_dimensional_semisimple_algebras_with_basis.py b/src/sage/categories/finite_dimensional_semisimple_algebras_with_basis.py index 36ad56fdaae..59ab6a9a8ad 100644 --- a/src/sage/categories/finite_dimensional_semisimple_algebras_with_basis.py +++ b/src/sage/categories/finite_dimensional_semisimple_algebras_with_basis.py @@ -105,7 +105,6 @@ def central_orthogonal_idempotents(self): return tuple([x.lift() for x in self.center().central_orthogonal_idempotents()]) - class Commutative(CategoryWithAxiom_over_base_ring): class ParentMethods: diff --git a/src/sage/categories/generalized_coxeter_groups.py b/src/sage/categories/generalized_coxeter_groups.py index 8a92209299e..a59da41b3f1 100644 --- a/src/sage/categories/generalized_coxeter_groups.py +++ b/src/sage/categories/generalized_coxeter_groups.py @@ -68,7 +68,6 @@ def additional_structure(self): """ return None - class Finite(CategoryWithAxiom): """ The category of finite generalized Coxeter groups. diff --git a/src/sage/categories/graded_modules_with_basis.py b/src/sage/categories/graded_modules_with_basis.py index a53b1de91dd..1868147bedb 100644 --- a/src/sage/categories/graded_modules_with_basis.py +++ b/src/sage/categories/graded_modules_with_basis.py @@ -67,7 +67,6 @@ def degree_negation(self, element): for key, value in element.monomial_coefficients(copy=False).items()]) - def submodule(self, gens, check=True, already_echelonized=False, unitriangular=False, support_order=None, category=None, *args, **opts): diff --git a/src/sage/categories/hecke_modules.py b/src/sage/categories/hecke_modules.py index 88331973496..6b593d4fb3a 100644 --- a/src/sage/categories/hecke_modules.py +++ b/src/sage/categories/hecke_modules.py @@ -84,7 +84,6 @@ def super_categories(self): R = self.base_ring() return [ModulesWithBasis(R)] - def _repr_object_names(self): """ Return the names of the objects of this category. diff --git a/src/sage/categories/semigroups.py b/src/sage/categories/semigroups.py index d053b20e3c0..8e60690e631 100644 --- a/src/sage/categories/semigroups.py +++ b/src/sage/categories/semigroups.py @@ -510,7 +510,6 @@ def _pow_int(self, n): raise ArithmeticError("only positive powers are supported in a semigroup") return generic_power(self, n) - class SubcategoryMethods: @cached_method diff --git a/src/sage/categories/sets_cat.py b/src/sage/categories/sets_cat.py index 9f9bab84e23..bc3c55e9029 100644 --- a/src/sage/categories/sets_cat.py +++ b/src/sage/categories/sets_cat.py @@ -2215,7 +2215,6 @@ def example(self): S3 = FiniteEnumeratedSets().example() return cartesian_product([S1, S2, S3]) - class ParentMethods: def __iter__(self): r""" diff --git a/src/sage/categories/topological_spaces.py b/src/sage/categories/topological_spaces.py index 409e6cdcd8f..7ab806e6a2b 100644 --- a/src/sage/categories/topological_spaces.py +++ b/src/sage/categories/topological_spaces.py @@ -141,7 +141,6 @@ def extra_super_categories(self): """ return [TopologicalSpaces().Connected()] - class Compact(CategoryWithAxiom): """ The category of compact topological spaces. diff --git a/src/sage/categories/weyl_groups.py b/src/sage/categories/weyl_groups.py index c6b0338e441..ed094d6554d 100644 --- a/src/sage/categories/weyl_groups.py +++ b/src/sage/categories/weyl_groups.py @@ -349,7 +349,6 @@ def is_pieri_factor(self): return self in self.parent().pieri_factors() - def left_pieri_factorizations(self, max_length=None): r""" Returns all factorizations of ``self`` as `uv`, where `u` @@ -494,7 +493,6 @@ def stanley_symmetric_function_as_polynomial(self, max_length=None): for (u,v) in self.left_pieri_factorizations(max_length) if u != W.one())) - def stanley_symmetric_function(self): r""" Return the affine Stanley symmetric function indexed by ``self``. diff --git a/src/sage/coding/encoder.py b/src/sage/coding/encoder.py index 56f244e3ab9..ba1070633fd 100644 --- a/src/sage/coding/encoder.py +++ b/src/sage/coding/encoder.py @@ -194,7 +194,6 @@ def __call__(self, m): """ return self.encode(m) - def unencode(self, c, nocheck=False): r""" Return the message corresponding to the codeword ``c``. diff --git a/src/sage/coding/extended_code.py b/src/sage/coding/extended_code.py index 83c3c0143c4..6065d4c2c96 100644 --- a/src/sage/coding/extended_code.py +++ b/src/sage/coding/extended_code.py @@ -179,14 +179,6 @@ def random_element(self): return vector(F, c_list) - - - - - - - - class ExtendedCodeExtendedMatrixEncoder(Encoder): r""" Encoder using original code's generator matrix to compute the extended code's one. @@ -286,14 +278,6 @@ def generator_matrix(self): return M - - - - - - - - class ExtendedCodeOriginalCodeDecoder(Decoder): r""" Decoder which decodes through a decoder over the original code. diff --git a/src/sage/coding/golay_code.py b/src/sage/coding/golay_code.py index 029c572209e..16d395ffc15 100644 --- a/src/sage/coding/golay_code.py +++ b/src/sage/coding/golay_code.py @@ -396,8 +396,6 @@ def parity_check_matrix(self): return H - - ####################### registration ############################### GolayCode._registered_encoders["GeneratorMatrix"] = LinearCodeGeneratorMatrixEncoder diff --git a/src/sage/coding/guruswami_sudan/gs_decoder.py b/src/sage/coding/guruswami_sudan/gs_decoder.py index bfc04fee8ed..830d49238dc 100644 --- a/src/sage/coding/guruswami_sudan/gs_decoder.py +++ b/src/sage/coding/guruswami_sudan/gs_decoder.py @@ -534,8 +534,6 @@ def gs_satisfactory(tau, s, l, C = None, n_k = None): n,k = n_k_params(C, n_k) return l > 0 and s > 0 and n * s * (s+1) < (l+1) * (2*s*(n-tau) - (k-1) * l) - - ####################### decoder itself ############################### def __init__(self, code, tau = None, parameters = None, interpolation_alg = None, root_finder = None): r""" @@ -712,7 +710,6 @@ def parameters(self): """ return (self._s, self._ell) - def multiplicity(self): r""" Returns the multiplicity parameter of ``self``. diff --git a/src/sage/coding/information_set_decoder.py b/src/sage/coding/information_set_decoder.py index a2cbf94fc5e..31f6a255643 100644 --- a/src/sage/coding/information_set_decoder.py +++ b/src/sage/coding/information_set_decoder.py @@ -341,8 +341,6 @@ def _latex_(self): return "\\textnormal{{ISD Algorithm ({}) for }}{} \\textnormal{{decoding {} errors}}".format(self._algorithm_name, self.code()._latex_(), _format_decoding_interval(self.decoding_interval())) - - class LeeBrickellISDAlgorithm(InformationSetAlgorithm): r""" The Lee-Brickell algorithm for information-set decoding. @@ -625,8 +623,6 @@ def _calibrate_select(self, estimates): self._time_estimate = estimates[search_size] - - class LinearCodeInformationSetDecoder(Decoder): r""" Information-set decoder for any linear code. diff --git a/src/sage/coding/linear_code_no_metric.py b/src/sage/coding/linear_code_no_metric.py index 9610c4e31ce..5072be89a0e 100644 --- a/src/sage/coding/linear_code_no_metric.py +++ b/src/sage/coding/linear_code_no_metric.py @@ -1148,7 +1148,6 @@ def __init__(self, code, systematic_positions=None): # Test that the systematic positions are an information set self.generator_matrix() - def __eq__(self, other): r""" Tests equality between LinearCodeSystematicEncoder objects. diff --git a/src/sage/coding/punctured_code.py b/src/sage/coding/punctured_code.py index 4b3ae5f0a39..0c85dddbd77 100644 --- a/src/sage/coding/punctured_code.py +++ b/src/sage/coding/punctured_code.py @@ -92,7 +92,6 @@ def _insert_punctured_positions(l, punctured_points, value = None): return final - class PuncturedCode(AbstractLinearCode): r""" Representation of a punctured code. @@ -425,13 +424,6 @@ def generator_matrix(self): return M - - - - - - - class PuncturedCodeOriginalCodeDecoder(Decoder): r""" Decoder decoding through a decoder over the original code of its punctured code. @@ -580,7 +572,6 @@ def _repr_(self): """ return "Decoder of %s through %s" % (self.code(), self.original_decoder()) - def _latex_(self): r""" Returns a latex representation of ``self``. diff --git a/src/sage/coding/self_dual_codes.py b/src/sage/coding/self_dual_codes.py index 49125e8fb01..4dcdcdff82f 100644 --- a/src/sage/coding/self_dual_codes.py +++ b/src/sage/coding/self_dual_codes.py @@ -606,7 +606,6 @@ def self_dual_binary_codes(n): "6":self_dual_codes_18_6,"7":self_dual_codes_18_7,"8":self_dual_codes_18_8} return self_dual_codes - if n == 20: # all of these of these are Type I; 2 of these codes # are formally equivalent but with different automorphism groups; diff --git a/src/sage/combinat/designs/bibd.py b/src/sage/combinat/designs/bibd.py index 72be454ec63..2d93c5d3833 100644 --- a/src/sage/combinat/designs/bibd.py +++ b/src/sage/combinat/designs/bibd.py @@ -333,7 +333,6 @@ def balanced_incomplete_block_design(v, k, lambd=1, existence=False, use_LJCR=Fa else: return BIBD(B.ground_set(), B.blocks(), k=k, lambd=1, copy=False) - if ( (k+lambd)*(k+lambd-1) == lambd*(v+k+lambd-1) and balanced_incomplete_block_design(v+k+lambd, k+lambd, lambd, existence=True) is True): # By removing a block and all points of that block from the @@ -661,7 +660,6 @@ def BIBD_from_TD(v,k,existence=False): return BIBD - def BIBD_from_difference_family(G, D, lambd=None, check=True): r""" Return the BIBD associated to the difference family ``D`` on the group ``G``. diff --git a/src/sage/combinat/designs/database.py b/src/sage/combinat/designs/database.py index 564f1ea141a..d13823082ec 100644 --- a/src/sage/combinat/designs/database.py +++ b/src/sage/combinat/designs/database.py @@ -543,7 +543,6 @@ def OA_8_69(): for BB in OA_8_7: OA.append([B[i] for i in BB]) - # Adding the missing 0..0,1..1,... rows done = sum(O1,[])+sum(O2,[]) missing = [x for x in range(73) if x not in done and x not in oval] diff --git a/src/sage/combinat/designs/difference_family.py b/src/sage/combinat/designs/difference_family.py index ed9bb493616..277c27af950 100644 --- a/src/sage/combinat/designs/difference_family.py +++ b/src/sage/combinat/designs/difference_family.py @@ -923,7 +923,6 @@ def radical_difference_family(K, k, l=1, existence=False, check=True): elif existence: return True - if check and not is_difference_family(K, D, v, k, l): raise RuntimeError("radical_difference_family produced a wrong " "difference family with parameters v={}, " @@ -1807,7 +1806,6 @@ def supplementary_difference_set(q, existence=False, check=True): psi1 = ((1 + P.monomial((q-1)//2)) * theta1).mod(P.monomial(q-1) - 1) psi2 = (1 + (1 + P.monomial((q-1)//2)) * theta2).mod(P.monomial(q-1) - 1) - K1 = list(map(Integer, psi1.exponents())) K2 = list(map(Integer, psi2.exponents())) K3 = list(map(Integer, psi3.exponents())) @@ -1991,7 +1989,6 @@ def skew_supplementary_difference_set(n, existence=False, check=True): True """ - indices = { 67: [[0,3,5,6,9,10,13,14,17,18,20], [0,2,4,9,11,12,13,16,19,21], @@ -2061,7 +2058,6 @@ def generate_set(index_set, cosets): S += cosets[idx] return S - if existence: return n in indices diff --git a/src/sage/combinat/designs/ext_rep.py b/src/sage/combinat/designs/ext_rep.py index 2a463bc793e..6b02f95f2ac 100644 --- a/src/sage/combinat/designs/ext_rep.py +++ b/src/sage/combinat/designs/ext_rep.py @@ -660,7 +660,6 @@ def __init__(self, node): ('block', {}, [[6, 8, 10]])] """ - if isinstance(node, str): node = (node, {}, []) name, attributes, children = node diff --git a/src/sage/combinat/designs/incidence_structures.py b/src/sage/combinat/designs/incidence_structures.py index dfb6c90f652..8ed80d70171 100644 --- a/src/sage/combinat/designs/incidence_structures.py +++ b/src/sage/combinat/designs/incidence_structures.py @@ -2000,7 +2000,6 @@ def is_resolvable(self, certificate=False, solver=None, verbose=0, check=True, else: return True - def coloring(self, k=None, solver=None, verbose=0, *, integrality_tolerance=1e-3): r""" diff --git a/src/sage/combinat/designs/orthogonal_arrays_build_recursive.py b/src/sage/combinat/designs/orthogonal_arrays_build_recursive.py index 526487adb97..833136dbfe9 100644 --- a/src/sage/combinat/designs/orthogonal_arrays_build_recursive.py +++ b/src/sage/combinat/designs/orthogonal_arrays_build_recursive.py @@ -1604,7 +1604,6 @@ def brouwer_separable_design(k,t,q,x,check=False,verbose=False,explain_construct # The set of size x OA.extend([N-xx-1 for xx in B] for B in orthogonal_array(k,x)) - # iv) elif (x == q**2+1 and orthogonal_array( k , x ,existence=True) and # d0 diff --git a/src/sage/combinat/designs/steiner_quadruple_systems.py b/src/sage/combinat/designs/steiner_quadruple_systems.py index 2a8713fe323..ee8d8102f28 100644 --- a/src/sage/combinat/designs/steiner_quadruple_systems.py +++ b/src/sage/combinat/designs/steiner_quadruple_systems.py @@ -190,7 +190,6 @@ def three_n_minus_eight(B): for i in range(3): Y.append([r(i,x) if x<= n-5 else x+2*(n-4) for x in s]) - # Line 3. for a in range(4): for aa in range(n-4): @@ -198,7 +197,6 @@ def three_n_minus_eight(B): aaaa = -(a+aa+aaa)%(n-4) Y.append([r(0,aa),r(1,aaa), r(2,aaaa),3*(n-4)+a]) - # Line 4. k = (n-14) // 12 for i in range(3): @@ -335,8 +333,6 @@ def four_n_minus_six(B): Y.append([r(h,0,2*c+eps) , r(h,1,2*cc-eps), r(h+1,0,rc), r(h+1,0,sc)]) Y.append([r(h,0,2*c-1+eps), r(h,1,2*cc-eps), r(h+1,1,rc), r(h+1,1,sc)]) - - # Line 8/9 for h in range(2): for eps in range(2): @@ -347,7 +343,6 @@ def four_n_minus_six(B): Y.append([r(h,0,2*c+eps) , r(h,1,2*cc-eps), r(h+1,1,rc), r(h+1,1,sc)]) Y.append([r(h,0,2*c-1+eps), r(h,1,2*cc-eps), r(h+1,0,rc), r(h+1,0,sc)]) - # Line 10 for h in range(2): for alpha in range(n-3): diff --git a/src/sage/combinat/k_tableau.py b/src/sage/combinat/k_tableau.py index 24f00e12926..5fb1d56b82c 100644 --- a/src/sage/combinat/k_tableau.py +++ b/src/sage/combinat/k_tableau.py @@ -1215,7 +1215,6 @@ def _height_of_restricted_subword(self, sw, r): return max(v[0] for v in L + R) - class WeakTableaux_core(WeakTableaux_abstract): r""" The class of (skew) weak `k`-tableaux in the core representation of shape ``shape`` diff --git a/src/sage/combinat/matrices/hadamard_matrix.py b/src/sage/combinat/matrices/hadamard_matrix.py index 91f73d29101..fa21194866b 100644 --- a/src/sage/combinat/matrices/hadamard_matrix.py +++ b/src/sage/combinat/matrices/hadamard_matrix.py @@ -937,7 +937,6 @@ def _get_baumert_hall_units(n, existence=False): """ assert n%4 == 0 and n > 0 - delta_codes_len = n//4 if not four_symbol_delta_code_smallcases(delta_codes_len, existence=True): if existence: @@ -1037,7 +1036,6 @@ def hadamard_matrix_turyn_type(a, b, c, d, e1, e2, e3, e4, check=True): for j in range(i+1, len(units)): assert units[i]*units[j].T + units[j]*units[i].T == 0*I(t4) - H = e1.tensor_product(A) + e2.tensor_product(B) + e3.tensor_product(C) + e4.tensor_product(D) if check: assert is_hadamard_matrix(H) diff --git a/src/sage/combinat/root_system/type_B.py b/src/sage/combinat/root_system/type_B.py index 9175d87bfa7..7a9b634b207 100644 --- a/src/sage/combinat/root_system/type_B.py +++ b/src/sage/combinat/root_system/type_B.py @@ -340,7 +340,6 @@ def _default_folded_cartan_type(self): [[i] for i in range(1, n)] + [[n, n + 1]]) - # For unpickling backward compatibility (Sage <= 4.1) from sage.misc.persist import register_unpickle_override register_unpickle_override('sage.combinat.root_system.type_B', diff --git a/src/sage/combinat/root_system/type_D.py b/src/sage/combinat/root_system/type_D.py index be106a845a7..d250a3643b6 100644 --- a/src/sage/combinat/root_system/type_D.py +++ b/src/sage/combinat/root_system/type_D.py @@ -116,7 +116,6 @@ def fundamental_weight(self, i): return self.sum(self.monomial(j) for j in range(i)) - from sage.misc.persist import register_unpickle_override register_unpickle_override('sage.combinat.root_system.type_A', 'ambient_space', AmbientSpace) diff --git a/src/sage/combinat/t_sequences.py b/src/sage/combinat/t_sequences.py index 883d55c87bd..73993267638 100644 --- a/src/sage/combinat/t_sequences.py +++ b/src/sage/combinat/t_sequences.py @@ -215,7 +215,6 @@ def is_T_sequences_set(sequences, verbose=False): print(f"T-Sequence should contain 4 sequences, found {len(sequences)} instead") return False - t = len(sequences[0]) for i in range(t): @@ -684,7 +683,6 @@ def is_base_sequences_tuple(base_sequences, verbose=False): print(f'Base sequences should only contiain -1, +1, found {el}') return False - for j in range(1, n+p): autocorr = _nonperiodic_autocorrelation(A, j) + _nonperiodic_autocorrelation(B, j) + _nonperiodic_autocorrelation(C, j) + _nonperiodic_autocorrelation(D, j) if autocorr != 0: diff --git a/src/sage/combinat/vector_partition.py b/src/sage/combinat/vector_partition.py index ba1a51c29d4..03a142c8034 100644 --- a/src/sage/combinat/vector_partition.py +++ b/src/sage/combinat/vector_partition.py @@ -102,7 +102,6 @@ def IntegerVectorsIterator(vect, min = None): yield [j] + vec - class VectorPartition(CombinatorialElement): r""" A vector partition is a multiset of integer vectors. diff --git a/src/sage/crypto/block_cipher/miniaes.py b/src/sage/crypto/block_cipher/miniaes.py index 49cb0564d2c..95fcf1a258c 100644 --- a/src/sage/crypto/block_cipher/miniaes.py +++ b/src/sage/crypto/block_cipher/miniaes.py @@ -1510,7 +1510,6 @@ def shift_row(self, block): [block[1][1], block[1][0]] ] ) return mat - ### conversion functions to convert between different data formats def GF_to_binary(self, G): diff --git a/src/sage/crypto/lwe.py b/src/sage/crypto/lwe.py index bc027e97362..4c6ef830987 100644 --- a/src/sage/crypto/lwe.py +++ b/src/sage/crypto/lwe.py @@ -345,7 +345,6 @@ def _repr_(self): else: return "LWE(%d, %d, %s, %s, %s)"%(self.n,self.K.order(),self.D,self.secret_dist, self.m) - def __call__(self): """ EXAMPLES:: @@ -581,7 +580,6 @@ def _repr_(self): else: return "RingLWE(%d, %d, %s, %s, %s, %s)"%(self.N, self.K.order(), self.D, self.poly, self.secret_dist, self.m) - def __call__(self): """ EXAMPLES:: diff --git a/src/sage/crypto/mq/sr.py b/src/sage/crypto/mq/sr.py index 81ae146e204..9f28d216923 100644 --- a/src/sage/crypto/mq/sr.py +++ b/src/sage/crypto/mq/sr.py @@ -963,7 +963,6 @@ def mix_columns(self, d): # AES uses the column major ordering return Matrix(k, d.ncols(), d.nrows(), ret).transpose() - def add_round_key(self, d, key): r""" Perform the ``AddRoundKey`` operation on @@ -1509,7 +1508,6 @@ def _insert_matrix_into_matrix(self, dst, src, row, col): dst[row+i, col+j] = src[i, j] return dst - def varformatstr(self, name, n=None, rc=None, e=None): r""" Return a format string which is understood by print et al. @@ -1799,7 +1797,6 @@ def ring(self, order=None, reverse_variables=None): else: names = self.varstrs("k", 0, r*c, e) - for _n in process(list(range(n))): names += self.varstrs("k", _n+1, r*c, e) names += self.varstrs("x", _n+1, r*c, e) @@ -1880,7 +1877,6 @@ def round_polynomials(self, i, plaintext=None, ciphertext=None): lin = (wj + ki + M * xj + rcon).list() - wi = Matrix(R, r*c*e, 1, _vars("w", i, r*c, e)) xi = Matrix(R, r*c*e, 1, _vars("x", i, r*c, e)) sbox = [] @@ -2713,8 +2709,6 @@ def mix_columns_matrix(self): k = self.k a = k.gen() - - if r == 1: M = Matrix(k, r, r, 1) @@ -2777,7 +2771,6 @@ def lin_matrix(self, length=None): 1, 0, 1, 1, \ 1, 1, 0, 1]) - Z = Z.transpose() # account for endianess mismatch lin = Matrix(GF(2), length*e, length*e) From c64c79505ac5cff165f805f3df87a0695910655a Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Thu, 16 Feb 2023 21:42:54 -0800 Subject: [PATCH 095/249] src/sage/matrix/operation_table.py: Move plot imports into method --- src/sage/matrix/operation_table.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/sage/matrix/operation_table.py b/src/sage/matrix/operation_table.py index 9b59fa8dcee..08260e44ec6 100644 --- a/src/sage/matrix/operation_table.py +++ b/src/sage/matrix/operation_table.py @@ -14,12 +14,10 @@ # https://www.gnu.org/licenses/ # **************************************************************************** +from copy import copy + from sage.structure.sage_object import SageObject -from matplotlib.cm import gist_rainbow, Greys -from sage.plot.matrix_plot import matrix_plot from sage.matrix.constructor import Matrix -from sage.plot.text import text -from copy import copy class OperationTable(SageObject): @@ -985,6 +983,9 @@ def color_table(self, element_names=True, cmap=gist_rainbow_copy, **options): OTa = OperationTable(SymmetricGroup(3), operation=operator.mul) sphinx_plot(OTa.color_table(), figsize=(3.0,3.0)) """ + from matplotlib.cm import gist_rainbow, Greys + from sage.plot.matrix_plot import matrix_plot + from sage.plot.text import text # Base matrix plot object, without text plot = matrix_plot(Matrix(self._table), cmap=cmap, From 30858af9c5e3b16a1180fd70b24d990d03a62379 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Fri, 17 Feb 2023 11:07:51 -0800 Subject: [PATCH 096/249] src/sage/matrix/operation_table.py: Fix more modularization violations, add/update docstrings --- src/sage/matrix/operation_table.py | 51 +++++++++++++++++++----------- 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/src/sage/matrix/operation_table.py b/src/sage/matrix/operation_table.py index 08260e44ec6..a5ac1a03db5 100644 --- a/src/sage/matrix/operation_table.py +++ b/src/sage/matrix/operation_table.py @@ -948,45 +948,37 @@ def matrix_of_variables(self): for i in range(self._n) for j in range(self._n)] return MS(entries) - # documentation hack - # makes the cmap default argument look nice in the docs - # by copying the gist_rainbow object and overriding __repr__ - gist_rainbow_copy=copy(gist_rainbow) - class ReprOverrideLinearSegmentedColormap(gist_rainbow_copy.__class__): - def __repr__(self): - return "gist_rainbow" - gist_rainbow_copy.__class__=ReprOverrideLinearSegmentedColormap - - - def color_table(self, element_names=True, cmap=gist_rainbow_copy, **options): + def color_table(self, element_names=True, cmap=None, **options): r""" - Returns a graphic image as a square grid where entries are color coded. + Return a graphic image as a square grid where entries are color coded. INPUT: - ``element_names`` - (default : ``True``) Whether to display text with element names on the image - - ``cmap`` - (default : ``gist_rainbow``) colour map for plot, see matplotlib.cm + - ``cmap`` - (default: :obj:`matplotlib.cm.gist_rainbow`) color map for plot, see :mod:`matplotlib.cm` - - ``**options`` - passed on to matrix_plot call + - ``**options`` - passed on to :func:`~sage.plot.matrix_plot.matrix_plot` EXAMPLES:: sage: from sage.matrix.operation_table import OperationTable - sage: OTa = OperationTable(SymmetricGroup(3), operation=operator.mul) - sage: OTa.color_table() + sage: OTa = OperationTable(SymmetricGroup(3), operation=operator.mul) # optional - sage.plot, sage.groups + sage: OTa.color_table() # optional - sage.plot, sage.groups Graphics object consisting of 37 graphics primitives .. PLOT:: from sage.matrix.operation_table import OperationTable OTa = OperationTable(SymmetricGroup(3), operation=operator.mul) - sphinx_plot(OTa.color_table(), figsize=(3.0,3.0)) + sphinx_plot(OTa.color_table(), figsize=(3.0, 3.0)) """ - from matplotlib.cm import gist_rainbow, Greys from sage.plot.matrix_plot import matrix_plot from sage.plot.text import text + if cmap is None: + from matplotlib.cm import gist_rainbow as cmap + # Base matrix plot object, without text plot = matrix_plot(Matrix(self._table), cmap=cmap, frame=False, **options) @@ -1019,6 +1011,29 @@ def color_table(self, element_names=True, cmap=gist_rainbow_copy, **options): return plot def gray_table(self, **options): + r""" + Return a graphic image as a square grid where entries are displayed in grayscale. + + INPUT: + + - ``element_names`` - (default: ``True``) Whether to display text with element names on the image + + - ``**options`` - passed on to :func:`~sage.plot.matrix_plot.matrix_plot` + + EXAMPLES:: + + sage: from sage.matrix.operation_table import OperationTable + sage: OTa = OperationTable(SymmetricGroup(3), operation=operator.mul) # optional - sage.plot, sage.groups + sage: OTa.gray_table() # optional - sage.plot, sage.groups + Graphics object consisting of 37 graphics primitives + + .. PLOT:: + + from sage.matrix.operation_table import OperationTable + OTa = OperationTable(SymmetricGroup(3), operation=operator.mul) + sphinx_plot(OTa.gray_table(), figsize=(3.0, 3.0)) + """ + from matplotlib.cm import Greys return self.color_table(cmap=Greys, **options) def _ascii_table(self): From fb4f6abff964b5c9f72d096ecb91b06b21916770 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20K=C3=B6ppe?= Date: Fri, 17 Feb 2023 23:22:43 -0800 Subject: [PATCH 097/249] Apply suggestions from code review Co-authored-by: Travis Scrimshaw --- src/sage/matrix/operation_table.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sage/matrix/operation_table.py b/src/sage/matrix/operation_table.py index a5ac1a03db5..79acaaf8390 100644 --- a/src/sage/matrix/operation_table.py +++ b/src/sage/matrix/operation_table.py @@ -956,9 +956,9 @@ def color_table(self, element_names=True, cmap=None, **options): - ``element_names`` - (default : ``True``) Whether to display text with element names on the image - - ``cmap`` - (default: :obj:`matplotlib.cm.gist_rainbow`) color map for plot, see :mod:`matplotlib.cm` + - ``cmap`` -- (default: :obj:`matplotlib.cm.gist_rainbow`) color map for plot, see :mod:`matplotlib.cm` - - ``**options`` - passed on to :func:`~sage.plot.matrix_plot.matrix_plot` + - ``**options`` -- passed on to :func:`~sage.plot.matrix_plot.matrix_plot` EXAMPLES:: @@ -1016,9 +1016,9 @@ def gray_table(self, **options): INPUT: - - ``element_names`` - (default: ``True``) Whether to display text with element names on the image + - ``element_names`` -- (default: ``True``) whether to display text with element names on the image - - ``**options`` - passed on to :func:`~sage.plot.matrix_plot.matrix_plot` + - ``**options`` -- passed on to :func:`~sage.plot.matrix_plot.matrix_plot` EXAMPLES:: From df50caa0a93d7297b0f1de27cd21b619355f1f68 Mon Sep 17 00:00:00 2001 From: Priyanshu Kumar Rai <58476539+prirai@users.noreply.github.com> Date: Sat, 18 Feb 2023 15:09:11 +0530 Subject: [PATCH 098/249] Update README.md Updated the logo to use the svg available at - https://raw.githubusercontent.com/sagemath/artwork/master/bare_logo_sagemath.svg. The original image seems broken while accessing from GitHub's web interface. Please tell me if this works. After careful consideration, I decided not to use the original black logo (at /src/doc/common/static/logo_sagemath_black.svg) due to potential disparities in its visibility when viewed by users with different display settings, such as light and dark modes. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1a0582d87c5..5b72cb4034f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ - + # Sage: Open Source Mathematical Software From 730a34e5e3ad3b4609952266e464d6a8e8a097c8 Mon Sep 17 00:00:00 2001 From: sheerluck Date: Sat, 18 Feb 2023 15:51:47 +0300 Subject: [PATCH 099/249] Fix index out of range exception (#35031) Reported by: seblabbe --- src/sage/plot/arrow.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/sage/plot/arrow.py b/src/sage/plot/arrow.py index 13b3b07d241..ce63c175d62 100644 --- a/src/sage/plot/arrow.py +++ b/src/sage/plot/arrow.py @@ -413,7 +413,10 @@ def get_paths(self, renderer): return paths def __call__(self, renderer, gc, tpath, affine, rgbFace): - path = self.get_paths(renderer)[self._n] + paths = self.get_paths(renderer) + if self._n >= len(paths): + return False + path = paths[self._n] vert1, code1 = path.vertices, path.codes import numpy as np From c6fbaa1466c49a4b57fa980436dd55d9adfff5af Mon Sep 17 00:00:00 2001 From: Dima Pasechnik Date: Sat, 18 Feb 2023 23:13:44 +0000 Subject: [PATCH 100/249] update msolve to 0.4.9 --- build/pkgs/msolve/checksums.ini | 8 ++++---- build/pkgs/msolve/package-version.txt | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/build/pkgs/msolve/checksums.ini b/build/pkgs/msolve/checksums.ini index 0b7558afd2b..9385392eec9 100644 --- a/build/pkgs/msolve/checksums.ini +++ b/build/pkgs/msolve/checksums.ini @@ -1,5 +1,5 @@ tarball=msolve-VERSION.tar.gz -sha1=5b227de8b222bfe8d143e1d7ea77ad71cd209dc8 -md5=2f34bd9ccb089688ae169201281108dc -cksum=941373315 -upstream_url=https://trac.sagemath.org/raw-attachment/ticket/31664/msolve-VERSION.tar.gz +sha1=4a33630bb5916e0947f8108cff85406c21040851 +md5=4847bf41a1f8e5656abefda2ba34549d +cksum=105445469 +upstream_url=https://github.com/dimpase/msolve/releases/download/VERSION/msolve-VERSION.tar.gz diff --git a/build/pkgs/msolve/package-version.txt b/build/pkgs/msolve/package-version.txt index fb78594e923..76914ddc02f 100644 --- a/build/pkgs/msolve/package-version.txt +++ b/build/pkgs/msolve/package-version.txt @@ -1 +1 @@ -0.4.4+sage-2022-09-11 +0.4.9 From 2cada2c6899fd7bf5f44e22f93e51d896bc8c257 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 18 Feb 2023 22:17:35 -0800 Subject: [PATCH 101/249] sage.all: Import from sage.all__sagemath_repl, move filterwarnings there --- src/sage/all.py | 79 +--------------------------------- src/sage/all__sagemath_repl.py | 75 +++++++++++++++++++++++++++++++- 2 files changed, 75 insertions(+), 79 deletions(-) diff --git a/src/sage/all.py b/src/sage/all.py index 93588df1b93..288039a72f4 100644 --- a/src/sage/all.py +++ b/src/sage/all.py @@ -54,87 +54,12 @@ # **************************************************************************** import os -import sys import operator import math -############ setup warning filters before importing Sage stuff #### -import warnings - -__with_pydebug = hasattr(sys, 'gettotalrefcount') # This is a Python debug build (--with-pydebug) -if __with_pydebug: - # a debug build does not install the default warning filters. Sadly, this breaks doctests so we - # have to re-add them: - warnings.filterwarnings('ignore', category=PendingDeprecationWarning) - warnings.filterwarnings('ignore', category=ImportWarning) - warnings.filterwarnings('ignore', category=ResourceWarning) -else: - deprecationWarning = ('ignore', None, DeprecationWarning, None, 0) - if deprecationWarning in warnings.filters: - warnings.filters.remove(deprecationWarning) - -# Ignore all deprecations from IPython etc. -warnings.filterwarnings('ignore', category=DeprecationWarning, - module='(IPython|ipykernel|jupyter_client|jupyter_core|nbformat|notebook|ipywidgets|storemagic|jedi)') - -# scipy 1.18 introduced reprecation warnings on a number of things they are moving to -# numpy, e.g. DeprecationWarning: scipy.array is deprecated -# and will be removed in SciPy 2.0.0, use numpy.array instead -# This affects networkx 2.2 up and including 2.4 (cf. :trac:29766) -warnings.filterwarnings('ignore', category=DeprecationWarning, - module='(scipy|networkx)') - -# However, be sure to keep OUR deprecation warnings -warnings.filterwarnings('default', category=DeprecationWarning, - message=r'[\s\S]*See https?://trac\.sagemath\.org/[0-9]* for details.') - -# Ignore Python 3.9 deprecation warnings -warnings.filterwarnings('ignore', category=DeprecationWarning, - module='ast') - -# Ignore packaging 20.5 deprecation warnings -warnings.filterwarnings('ignore', category=DeprecationWarning, - module='(.*[.]_vendor[.])?packaging') - -# Ignore numpy warnings triggered by pythran -warnings.filterwarnings('ignore', category=DeprecationWarning, - module='pythran') - -warnings.filterwarnings('ignore', category=DeprecationWarning, - message='The distutils(.sysconfig module| package) is deprecated', - module='Cython|distutils|numpy|sage.env|sage.features') - -# triggered by cython 0.29.32 -warnings.filterwarnings('ignore', category=DeprecationWarning, - message="'cgi' is deprecated and slated for removal in Python 3.13", - module='Cython') - -# triggered by pyparsing 2.4.7 -warnings.filterwarnings('ignore', category=DeprecationWarning, - message="module 'sre_constants' is deprecated", - module='pyparsing') - -# importlib.resources.path and ...read_binary are deprecated in python 3.11, -# but the replacement importlib.resources.files needs python 3.9 -warnings.filterwarnings('ignore', category=DeprecationWarning, - message=r'(path|read_binary) is deprecated\. Use files\(\) instead\.', - module='sage.repl.rich_output.output_(graphics|graphics3d|video)') - -# triggered by sphinx -warnings.filterwarnings('ignore', category=DeprecationWarning, - message="'imghdr' is deprecated and slated for removal in Python 3.13", - module='sphinx.util.images') - -# triggered by docutils 0.19 on Python 3.11 -warnings.filterwarnings('ignore', category=DeprecationWarning, - message=r"Use setlocale\(\), getencoding\(\) and getlocale\(\) instead", - module='docutils.io') - ################ end setup warnings ############################### - -from .all__sagemath_environment import * - +from .all__sagemath_repl import * # includes .all__sagemath_objects, .all__sagemath_environment ################################################################### @@ -149,13 +74,11 @@ from sage.misc.all import * # takes a while from sage.typeset.all import * -from sage.repl.all import * from sage.misc.sh import sh from sage.libs.all import * from sage.data_structures.all import * -from sage.doctest.all import * from sage.structure.all import * from sage.rings.all import * diff --git a/src/sage/all__sagemath_repl.py b/src/sage/all__sagemath_repl.py index c9508c15bbe..95dc2a15a80 100644 --- a/src/sage/all__sagemath_repl.py +++ b/src/sage/all__sagemath_repl.py @@ -1,7 +1,80 @@ +############ setup warning filters before importing Sage stuff #### +import sys +import warnings + +__with_pydebug = hasattr(sys, 'gettotalrefcount') # This is a Python debug build (--with-pydebug) +if __with_pydebug: + # a debug build does not install the default warning filters. Sadly, this breaks doctests so we + # have to re-add them: + warnings.filterwarnings('ignore', category=PendingDeprecationWarning) + warnings.filterwarnings('ignore', category=ImportWarning) + warnings.filterwarnings('ignore', category=ResourceWarning) +else: + deprecationWarning = ('ignore', None, DeprecationWarning, None, 0) + if deprecationWarning in warnings.filters: + warnings.filters.remove(deprecationWarning) + +# Ignore all deprecations from IPython etc. +warnings.filterwarnings('ignore', category=DeprecationWarning, + module='(IPython|ipykernel|jupyter_client|jupyter_core|nbformat|notebook|ipywidgets|storemagic|jedi)') + +# scipy 1.18 introduced reprecation warnings on a number of things they are moving to +# numpy, e.g. DeprecationWarning: scipy.array is deprecated +# and will be removed in SciPy 2.0.0, use numpy.array instead +# This affects networkx 2.2 up and including 2.4 (cf. :trac:29766) +warnings.filterwarnings('ignore', category=DeprecationWarning, + module='(scipy|networkx)') + +# However, be sure to keep OUR deprecation warnings +warnings.filterwarnings('default', category=DeprecationWarning, + message=r'[\s\S]*See https?://trac\.sagemath\.org/[0-9]* for details.') + +# Ignore Python 3.9 deprecation warnings +warnings.filterwarnings('ignore', category=DeprecationWarning, + module='ast') + +# Ignore packaging 20.5 deprecation warnings +warnings.filterwarnings('ignore', category=DeprecationWarning, + module='(.*[.]_vendor[.])?packaging') + +# Ignore numpy warnings triggered by pythran +warnings.filterwarnings('ignore', category=DeprecationWarning, + module='pythran') + +warnings.filterwarnings('ignore', category=DeprecationWarning, + message='The distutils(.sysconfig module| package) is deprecated', + module='Cython|distutils|numpy|sage.env|sage.features') + +# triggered by cython 0.29.32 +warnings.filterwarnings('ignore', category=DeprecationWarning, + message="'cgi' is deprecated and slated for removal in Python 3.13", + module='Cython') + +# triggered by pyparsing 2.4.7 +warnings.filterwarnings('ignore', category=DeprecationWarning, + message="module 'sre_constants' is deprecated", + module='pyparsing') + +# importlib.resources.path and ...read_binary are deprecated in python 3.11, +# but the replacement importlib.resources.files needs python 3.9 +warnings.filterwarnings('ignore', category=DeprecationWarning, + message=r'(path|read_binary) is deprecated\. Use files\(\) instead\.', + module='sage.repl.rich_output.output_(graphics|graphics3d|video)') + +# triggered by sphinx +warnings.filterwarnings('ignore', category=DeprecationWarning, + message="'imghdr' is deprecated and slated for removal in Python 3.13", + module='sphinx.util.images') + +# triggered by docutils 0.19 on Python 3.11 +warnings.filterwarnings('ignore', category=DeprecationWarning, + message=r"Use setlocale\(\), getencoding\(\) and getlocale\(\) instead", + module='docutils.io') + + from .all__sagemath_objects import * from .all__sagemath_environment import * -# FIXME: all.py should import from here and remove these imports. from sage.doctest.all import * from sage.repl.all import * from sage.misc.all__sagemath_repl import * From 8ccb84275b5bb35de086147913da8f35f28baa41 Mon Sep 17 00:00:00 2001 From: jnash10 Date: Sun, 19 Feb 2023 17:03:27 +0530 Subject: [PATCH 102/249] aesthetic changes to code --- src/sage/plot/misc.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/sage/plot/misc.py b/src/sage/plot/misc.py index 1b279b5bb5d..3dd79a8b56e 100644 --- a/src/sage/plot/misc.py +++ b/src/sage/plot/misc.py @@ -139,11 +139,11 @@ def setup_for_eval_on_grid(funcs, else: vars, free_vars = unify_arguments(funcs) - #check for invalid range entered by user - if (ranges[0][-2]>ranges[0][-1]): + # check for invalid range entered by user + if (ranges[0][-2] > ranges[0][-1]): raise ValueError("xrange not correctly defined: xmin(={}) > xmax(={})".format(ranges[0][-2], ranges[0][-1])) - if (ranges[1][-2]>ranges[1][-1]): + if (ranges[1][-2] > ranges[1][-1]): raise ValueError("xrange not correctly defined: ymin(={}) > ymax(={})".format(ranges[1][-2], ranges[1][-1])) # pad the variables if we don't have enough From 3689c193aec318de47157250080da27f689cf0cd Mon Sep 17 00:00:00 2001 From: Priyanshu Rai Date: Sun, 19 Feb 2023 20:20:16 +0530 Subject: [PATCH 103/249] Added dark and light theme logos --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5c05c4150f3..2b342f8dfe6 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,9 @@ - + + + + + + # Sage: Open Source Mathematical Software From f9a0d54099d758ccec731a38929902b2b9d0b988 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Sun, 19 Feb 2023 20:48:46 -0300 Subject: [PATCH 104/249] Fix a slow doctest in matrix_integer_dense_hnf.py The hnf for integer dense matrices is quite slow, reported in #35161. While that issue is resolved, it doesn't make sense to keep this very slow test, so tune it down to an acceptable time. --- src/sage/matrix/matrix_integer_dense_hnf.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/sage/matrix/matrix_integer_dense_hnf.py b/src/sage/matrix/matrix_integer_dense_hnf.py index acdb0f09cc4..5ff5a9a7935 100644 --- a/src/sage/matrix/matrix_integer_dense_hnf.py +++ b/src/sage/matrix/matrix_integer_dense_hnf.py @@ -1189,9 +1189,9 @@ def benchmark_hnf(nrange, bits=4): EXAMPLES:: sage: import sage.matrix.matrix_integer_dense_hnf as hnf - sage: hnf.benchmark_hnf([50,100],32) - ('sage', 50, 32, ...), - ('sage', 100, 32, ...), + sage: hnf.benchmark_hnf([10,25],32) + ('sage', 10, 32, ...), + ('sage', 25, 32, ...), """ b = 2**bits for n in nrange: From 9164993622d4f5fba988c50e32299995162f061f Mon Sep 17 00:00:00 2001 From: Travis Scrimshaw Date: Mon, 20 Feb 2023 11:51:46 +0900 Subject: [PATCH 105/249] Fixing the documentation for the so Lie algebra. --- .../lie_algebras/classical_lie_algebra.py | 64 +++++++++++++------ src/sage/algebras/lie_algebras/examples.py | 10 ++- 2 files changed, 53 insertions(+), 21 deletions(-) diff --git a/src/sage/algebras/lie_algebras/classical_lie_algebra.py b/src/sage/algebras/lie_algebras/classical_lie_algebra.py index 39f7be6c856..0134b5fdd96 100644 --- a/src/sage/algebras/lie_algebras/classical_lie_algebra.py +++ b/src/sage/algebras/lie_algebras/classical_lie_algebra.py @@ -629,9 +629,34 @@ class so(ClassicalMatrixLieAlgebra): r""" The matrix Lie algebra `\mathfrak{so}_n`. - The Lie algebra `\mathfrak{so}_n`, which consists of all real - anti-symmetric `n \times n` matrices. This is the Lie algebra of - type `B_{(n-1)/2}` or `D_{n/2}` if `n` is odd or even respectively. + The Lie algebra `\mathfrak{so}_n`, which is isomorphic to the + Lie algebra of all anti-symmetric `n \times n` matrices. + The implementation here uses a different bilinear form and follows + the description in Chapter 8 of [HK2002]_. More precisely, this + is the set of matrices: + + .. MATH:: + + \begin{pmatrix} + A & B \\ + C & D + \end{pmatrix} + + such that `A^t = -D`, `B^t = -B`, `C^t = -C` for `n` even and + + .. MATH:: + + \begin{pmatrix} + A & B & a \\ + C & D & b \\ + c & d & 0 + \end{pmatrix} + + such that `A^t = -D`, `B^t = -B`, `C^t = -C`, `a^t = -d`, + and `b^t = -c` for `n` odd. + + This is the Lie algebra of type `B_{(n-1)/2}` or `D_{n/2}` if `n` + is odd or even respectively. """ def __init__(self, R, n): """ @@ -647,25 +672,26 @@ def __init__(self, R, n): MS = MatrixSpace(R, n) one = R.one() self._n = n - if n % 2 == 0: # Even - m = n / 2 - 1 # -1 for indexing + if n % 2 == 0: # Even + m = n // 2 - 1 # -1 for indexing n -= 1 - e = [MS({(m-1,n):one, (m,n-1):-one})] - f = [MS({(n,m-1):one, (n-1,m):-one})] - h = [MS({(m-1,m-1):one, (m,m):one, (n-1,n-1):-one, (n,n):-one})] + e = [MS({(m-1, n): one, (m, n-1): -one})] + f = [MS({(n, m-1): one, (n-1, m): -one})] + h = [MS({(m-1, m-1): one, (m, m): one, (n-1, n-1): -one, (n, n): -one})] m += 1 ct = CartanType(['D', m]) - else: # Odd - m = (n-1) / 2 - 1 # -1 for indexing + else: # Odd + m = (n-1) // 2 - 1 # -1 for indexing n -= 1 - e = [MS({(m,n):2, (n,n-1):-2})] - f = [MS({(n,m):one, (n-1,n):-one})] - h = [MS({(m,m):2, (n-1,n-1):-2})] + e = [MS({(m, n): 2, (n, n-1): -2})] + f = [MS({(n, m): one, (n-1, n): -one})] + h = [MS({(m, m): 2, (n-1, n-1): -2})] m += 1 ct = CartanType(['B', m]) - e = [MS({(i,i+1):one, (m+i+1,m+i):-one}) for i in range(m-1)] + e - f = [MS({(i+1,i):one, (m+i,m+i+1):-one}) for i in range(m-1)] + f - h = [MS({(i,i):one, (i+1,i+1):-one, (m+i,m+i):-one, (m+i+1,m+i+1):one}) for i in range(m-1)] + h + e = [MS({(i, i+1): one, (m+i+1, m+i): -one}) for i in range(m-1)] + e + f = [MS({(i+1, i): one, (m+i, m+i+1): -one}) for i in range(m-1)] + f + h = [MS({(i, i): one, (i+1, i+1): -one, (m+i, m+i): -one, (m+i+1, m+i+1): one}) + for i in range(m-1)] + h ClassicalMatrixLieAlgebra.__init__(self, R, ct, e, f, h) def _repr_(self): @@ -735,10 +761,10 @@ def simple_root(self, i, h): i = self.index_set().index(i) if i == len(self.index_set()) - 1: if self._n % 2 == 0: - return h[i-1,i-1] + h[i,i] + return h[i-1, i-1] + h[i, i] # otherwise we are odd - return h[i,i] - return h[i,i] - h[i+1,i+1] + return h[i, i] + return h[i, i] - h[i+1, i+1] class sp(ClassicalMatrixLieAlgebra): r""" diff --git a/src/sage/algebras/lie_algebras/examples.py b/src/sage/algebras/lie_algebras/examples.py index 2017ad3c6d2..89ad4362e5e 100644 --- a/src/sage/algebras/lie_algebras/examples.py +++ b/src/sage/algebras/lie_algebras/examples.py @@ -522,8 +522,14 @@ def so(R, n, representation='bracket'): The Lie algebra `\mathfrak{so}_n` is the type `B_k` Lie algebra if `n = 2k - 1` or the type `D_k` Lie algebra if `n = 2k`, and in - either case is finite dimensional. As a matrix Lie algebra, it - is given by the set of all real anti-symmetric `n \times n` matrices. + either case is finite dimensional. + + A classical description of this as a matrix Lie algebra is + the set of all anti-symmetric `n \times n` matrices. However, + the implementation here uses a different bilinear form for the Lie + group and follows the description in Chapter 8 of [HK2002]_. + See :class:`sage.algebras.lie_algebras.classical_lie_algebra.so` + for a precise description. INPUT: From 8435f06c290e6eccb3c701ba6cb873b1ca91eb59 Mon Sep 17 00:00:00 2001 From: jnash10 Date: Mon, 20 Feb 2023 11:52:49 +0530 Subject: [PATCH 106/249] Switch range values in case of invalid range (min > max) by user. Update docstest to account for the same --- src/sage/plot/misc.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/sage/plot/misc.py b/src/sage/plot/misc.py index 3dd79a8b56e..4a804529079 100644 --- a/src/sage/plot/misc.py +++ b/src/sage/plot/misc.py @@ -96,7 +96,7 @@ def setup_for_eval_on_grid(funcs, ValueError: At least one variable range has more than 3 entries: each should either have 2 or 3 entries, with one of the forms (xmin, xmax) or (x, xmin, xmax) sage: sage.plot.misc.setup_for_eval_on_grid(x+y, [(y,1,-1),(x,-1,1)], plot_points=5) - (, [(1.0, -1.0, 0.5), (-1.0, 1.0, 0.5)]) + (, [(-1.0, 1.0, 0.5), (-1.0, 1.0, 0.5)]) sage: sage.plot.misc.setup_for_eval_on_grid(x+y, [(x,1,-1),(x,-1,1)], plot_points=5) Traceback (most recent call last): ... @@ -106,9 +106,9 @@ def setup_for_eval_on_grid(funcs, ... ValueError: plot start point and end point must be different sage: sage.plot.misc.setup_for_eval_on_grid(x+y, [(x,1,-1),(y,-1,1)], return_vars=True) - (, [(1.0, -1.0, 2.0), (-1.0, 1.0, 2.0)], [x, y]) + (, [(-1.0, 1.0, 2.0), (-1.0, 1.0, 2.0)], [x, y]) sage: sage.plot.misc.setup_for_eval_on_grid(x+y, [(y,1,-1),(x,-1,1)], return_vars=True) - (, [(1.0, -1.0, 2.0), (-1.0, 1.0, 2.0)], [y, x]) + (, [(-1.0, 1.0, 2.0), (-1.0, 1.0, 2.0)], [y, x]) TESTS: @@ -139,12 +139,14 @@ def setup_for_eval_on_grid(funcs, else: vars, free_vars = unify_arguments(funcs) - # check for invalid range entered by user - if (ranges[0][-2] > ranges[0][-1]): - raise ValueError("xrange not correctly defined: xmin(={}) > xmax(={})".format(ranges[0][-2], ranges[0][-1])) - - if (ranges[1][-2] > ranges[1][-1]): - raise ValueError("xrange not correctly defined: ymin(={}) > ymax(={})".format(ranges[1][-2], ranges[1][-1])) + # check for invalid range entered by user (xmin > xmax or ymin > ymax) and swap the values if True + if len(ranges) > 1: + for i in range(len(ranges)): + if ranges[i][-2] > ranges[i][-1]: + ranges[i] = list(ranges[i]) + ranges[i][-1], ranges[i][-2] = ranges[i][-2], ranges[i][-1] + ranges[i] = tuple(ranges[i]) + #raise ValueError("xrange not correctly defined: xmin(={}) > xmax(={})".format(ranges[0][-2], ranges[0][-1])) # pad the variables if we don't have enough nargs = len(ranges) From 2962a9a79f647f2011f36cb9d7542b0507cdd4a1 Mon Sep 17 00:00:00 2001 From: Agamdeep Singh <67156641+jnash10@users.noreply.github.com> Date: Mon, 20 Feb 2023 11:54:24 +0530 Subject: [PATCH 107/249] Update misc.py --- src/sage/plot/misc.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/sage/plot/misc.py b/src/sage/plot/misc.py index 4a804529079..a667306cee1 100644 --- a/src/sage/plot/misc.py +++ b/src/sage/plot/misc.py @@ -146,7 +146,6 @@ def setup_for_eval_on_grid(funcs, ranges[i] = list(ranges[i]) ranges[i][-1], ranges[i][-2] = ranges[i][-2], ranges[i][-1] ranges[i] = tuple(ranges[i]) - #raise ValueError("xrange not correctly defined: xmin(={}) > xmax(={})".format(ranges[0][-2], ranges[0][-1])) # pad the variables if we don't have enough nargs = len(ranges) From 72485aec7de9bdf43380c30e1babd4b3db8e98d5 Mon Sep 17 00:00:00 2001 From: jnash10 Date: Mon, 13 Feb 2023 17:05:25 +0530 Subject: [PATCH 108/249] Added check for invalid range (xmin >xmax or ymin > ymax) and swap values if so --- src/sage/plot/misc.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/sage/plot/misc.py b/src/sage/plot/misc.py index 37a8000f9aa..a667306cee1 100644 --- a/src/sage/plot/misc.py +++ b/src/sage/plot/misc.py @@ -96,7 +96,7 @@ def setup_for_eval_on_grid(funcs, ValueError: At least one variable range has more than 3 entries: each should either have 2 or 3 entries, with one of the forms (xmin, xmax) or (x, xmin, xmax) sage: sage.plot.misc.setup_for_eval_on_grid(x+y, [(y,1,-1),(x,-1,1)], plot_points=5) - (, [(1.0, -1.0, 0.5), (-1.0, 1.0, 0.5)]) + (, [(-1.0, 1.0, 0.5), (-1.0, 1.0, 0.5)]) sage: sage.plot.misc.setup_for_eval_on_grid(x+y, [(x,1,-1),(x,-1,1)], plot_points=5) Traceback (most recent call last): ... @@ -106,9 +106,9 @@ def setup_for_eval_on_grid(funcs, ... ValueError: plot start point and end point must be different sage: sage.plot.misc.setup_for_eval_on_grid(x+y, [(x,1,-1),(y,-1,1)], return_vars=True) - (, [(1.0, -1.0, 2.0), (-1.0, 1.0, 2.0)], [x, y]) + (, [(-1.0, 1.0, 2.0), (-1.0, 1.0, 2.0)], [x, y]) sage: sage.plot.misc.setup_for_eval_on_grid(x+y, [(y,1,-1),(x,-1,1)], return_vars=True) - (, [(1.0, -1.0, 2.0), (-1.0, 1.0, 2.0)], [y, x]) + (, [(-1.0, 1.0, 2.0), (-1.0, 1.0, 2.0)], [y, x]) TESTS: @@ -139,6 +139,14 @@ def setup_for_eval_on_grid(funcs, else: vars, free_vars = unify_arguments(funcs) + # check for invalid range entered by user (xmin > xmax or ymin > ymax) and swap the values if True + if len(ranges) > 1: + for i in range(len(ranges)): + if ranges[i][-2] > ranges[i][-1]: + ranges[i] = list(ranges[i]) + ranges[i][-1], ranges[i][-2] = ranges[i][-2], ranges[i][-1] + ranges[i] = tuple(ranges[i]) + # pad the variables if we don't have enough nargs = len(ranges) if len(vars) < nargs: From b4fd94ccfd460f6951d38382bb7b6690e97f4e68 Mon Sep 17 00:00:00 2001 From: Lorenz Panny Date: Wed, 21 Dec 2022 12:24:26 +0800 Subject: [PATCH 109/249] compute the matrix of an isogeny on a given n-torsion subgroup --- src/sage/schemes/elliptic_curves/hom.py | 89 +++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/src/sage/schemes/elliptic_curves/hom.py b/src/sage/schemes/elliptic_curves/hom.py index e4de0f2cf42..e0f6e223e3b 100644 --- a/src/sage/schemes/elliptic_curves/hom.py +++ b/src/sage/schemes/elliptic_curves/hom.py @@ -21,6 +21,8 @@ - Lorenz Panny (2021): Refactor isogenies and isomorphisms into the common :class:`EllipticCurveHom` interface. + +- Lorenz Panny (2022): :meth:`~EllipticCurveHom.matrix_on_subgroup` """ from sage.misc.cachefunc import cached_method from sage.structure.richcmp import richcmp_not_equal, richcmp, op_EQ, op_NE @@ -722,6 +724,93 @@ def as_morphism(self): Y_affine = Curve(self.codomain()).affine_patch(2) return X_affine.hom(self.rational_maps(), Y_affine).homogenize(2) + def matrix_on_subgroup(self, domain_gens, codomain_gens=None): + r""" + Return the matrix as which this isogeny acts on the + `n`-torsion subgroup with respect to the given bases. + + (This is useful for tasks such as computing a set of + generators for the kernel subgroup.) + + INPUT: + + - ``domain_gens`` -- basis `(P,Q)` of some `n`-torsion + subgroup on the domain of this elliptic-curve morphism + + - ``codomain_gens`` -- basis `(R,S)` of the `n`-torsion + on the codomain of this morphism, or (default) ``None`` + if ``self`` is an endomorphism + + OUTPUT: + + A `2\times 2` matrix `M` over `\ZZ/n`, such that the + image of any point `[a]P + [b]Q` under this morphism + equals `[c]R + [d]S` where `(c\ d)^T = (a\ b) M`. + + EXAMPLES:: + + sage: F. = GF(419^2, modulus=[1,0,1]) + sage: E = EllipticCurve(F, [1,0]) + sage: P = E(3, 176*i) + sage: Q = E(i+7, 67*i+48) + sage: P.weil_pairing(Q, 420).multiplicative_order() + 420 + sage: iota = E.automorphisms()[2]; iota + Elliptic-curve endomorphism of Elliptic Curve defined by y^2 = x^3 + x over Finite Field in i of size 419^2 + Via: (u,r,s,t) = (i, 0, 0, 0) + sage: iota^2 == E.scalar_multiplication(-1) + True + sage: mat = iota.matrix_on_subgroup((P,Q)); mat + [301 386] + [ 83 119] + sage: mat.parent() + Full MatrixSpace of 2 by 2 dense matrices over Ring of integers modulo 420 + sage: iota(P) == 301*P + 386*Q + True + sage: iota(Q) == 83*P + 119*Q + True + sage: a,b = 123, 456 + sage: c,d = vector((a,b)) * mat; (c,d) + (111, 102) + sage: iota(a*P + b*Q) == c*P + d*Q + True + + .. SEEALSO:: + + To compute a basis of the `n`-torsion, you may use + :meth:`~sage.schemes.elliptic_curves.ell_finite_field.EllipticCurve_finite_field.torsion_basis`. + """ + if codomain_gens is None: + if not self.is_endomorphism(): + raise ValueError('basis of codomain subgroup is required for non-endomorphisms') + codomain_gens = domain_gens + + P,Q = domain_gens + R,S = codomain_gens + + ords = {P.order() for P in (P,Q,R,S)} + if len(ords) != 1: + #TODO: Is there some meaningful way to lift this restriction? + raise ValueError('generator points must all have the same order') + n, = ords + + if P.weil_pairing(Q, n).multiplicative_order() != n: + raise ValueError('generator points on domain are not independent') + if R.weil_pairing(S, n).multiplicative_order() != n: + raise ValueError('generator points on codomain are not independent') + + imP = self(P) + imQ = self(Q) + + from sage.groups.additive_abelian.additive_abelian_wrapper import AdditiveAbelianGroupWrapper + H = AdditiveAbelianGroupWrapper(self.codomain().point_homset(), [R,S], [n,n]) + vecP = H.discrete_log(imP) + vecQ = H.discrete_log(imQ) + + from sage.matrix.constructor import matrix + from sage.rings.finite_rings.integer_mod_ring import Zmod + return matrix(Zmod(n), [vecP, vecQ]) + def compare_via_evaluation(left, right): r""" From 10aff667b8cfb0177eedf5ef692b27122aceeacd Mon Sep 17 00:00:00 2001 From: Lorenz Panny Date: Mon, 20 Feb 2023 16:25:08 +0800 Subject: [PATCH 110/249] add another example --- src/sage/schemes/elliptic_curves/hom.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/sage/schemes/elliptic_curves/hom.py b/src/sage/schemes/elliptic_curves/hom.py index e0f6e223e3b..eeb2bdd530d 100644 --- a/src/sage/schemes/elliptic_curves/hom.py +++ b/src/sage/schemes/elliptic_curves/hom.py @@ -775,6 +775,21 @@ def matrix_on_subgroup(self, domain_gens, codomain_gens=None): sage: iota(a*P + b*Q) == c*P + d*Q True + We can compute the matrix of a Frobenius endomorphism + (:class:`~sage.schemes.elliptic_curves.hom_frobenius.EllipticCurveHom_frobenius`) + on a large enough subgroup to verify point-counting results:: + + sage: F. = GF((101, 36)) + sage: E = EllipticCurve(GF(101), [1,1]) + sage: EE = E.change_ring(F) + sage: P,Q = EE.torsion_basis(37) + sage: pi = EE.frobenius_isogeny() + sage: M = pi.matrix_on_subgroup((P,Q)) + sage: M.trace() + 34 + sage: E.trace_of_frobenius() + -3 + .. SEEALSO:: To compute a basis of the `n`-torsion, you may use From 8efdadea1e13d0af666103f78400775aaf64c1f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Chapoton?= Date: Mon, 20 Feb 2023 10:50:28 +0100 Subject: [PATCH 111/249] activate W293 and E714 in pyx files --- src/sage/graphs/graph_coloring.pyx | 6 +-- src/sage/matrix/matrix_polynomial_dense.pyx | 48 ++++++++++---------- src/sage/modular/hypergeometric_misc.pyx | 7 +-- src/sage/numerical/linear_tensor_element.pyx | 16 +++---- src/tox.ini | 3 +- 5 files changed, 41 insertions(+), 39 deletions(-) diff --git a/src/sage/graphs/graph_coloring.pyx b/src/sage/graphs/graph_coloring.pyx index f5e4ce2ab18..a154942b92c 100644 --- a/src/sage/graphs/graph_coloring.pyx +++ b/src/sage/graphs/graph_coloring.pyx @@ -1498,11 +1498,11 @@ def _vizing_edge_coloring(g): INPUT: - - ``g`` -- a graph. + - ``g`` -- a graph OUTPUT: - - Returns a partition of the edge set into at most `\Delta + 1` matchings. + a partition of the edge set into at most `\Delta + 1` matchings .. SEEALSO:: @@ -1512,7 +1512,7 @@ def _vizing_edge_coloring(g): ALGORITHM: This function's implementation is based on the algorithm described at [MG1992]_ - + EXAMPLES: Coloring the edges of the Petersen Graph:: diff --git a/src/sage/matrix/matrix_polynomial_dense.pyx b/src/sage/matrix/matrix_polynomial_dense.pyx index 92502d9632b..6fd142b0563 100644 --- a/src/sage/matrix/matrix_polynomial_dense.pyx +++ b/src/sage/matrix/matrix_polynomial_dense.pyx @@ -224,7 +224,7 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): return self.apply_map(lambda x: x.degree()) from sage.matrix.constructor import matrix zero_degree = min(shifts) - 1 - if row_wise: + if row_wise: return matrix( ZZ, [[ self[i,j].degree() + shifts[j] if self[i,j] != 0 else zero_degree for j in range(self.ncols()) ] for i in range(self.nrows())] ) @@ -1116,7 +1116,7 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): The row degrees of an empty matrix (`0\times n` or `m\times 0`) is not defined:: - + sage: M = Matrix( pR, 0, 3 ) sage: M.row_degrees() Traceback (most recent call last): @@ -1215,7 +1215,7 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): n}`. Working row-wise and without shifts, its leading matrix is the matrix in `\Bold{K}^{m \times n}` formed by the leading coefficients of the entries of `M` which reach the degree of the corresponding row. - + More precisely, if working row-wise, let `s_1,\ldots,s_n \in \ZZ` be a shift, and let `(d_1,\ldots,d_m)` denote the shifted row degrees of `M`. Then, the shifted leading matrix of `M` is the matrix in @@ -1239,7 +1239,7 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): OUTPUT: a matrix over the base field. REFERENCES: - + [Wol1974]_ (Section 2.5, without shifts) and [VBB1992]_ (Section 3). EXAMPLES:: @@ -1335,7 +1335,7 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): False .. SEEALSO:: - + :meth:`is_popov` . """ if include_zero_vectors: @@ -1385,7 +1385,7 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): OUTPUT: a boolean value. REFERENCES: - + [Wol1974]_ (Section 2.5, without shifts) and [VBB1992]_ (Section 3). EXAMPLES:: @@ -1441,7 +1441,7 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): this vector is the index `j` of the rightmost nonzero entry `p_j` such that `\deg(p_j) + s_j` is equal to the shifted row degree of the vector. Then the pivot degree of the vector is the degree `\deg(p_j)`. - + For the zero row, both the leading positions and degree are `-1`. For a `m \times n` polynomial matrix, the leading positions and pivot degrees are the two lists containing the leading positions and the @@ -1465,7 +1465,7 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): of integers otherwise. REFERENCES: - + [Kai1980]_ (Section 6.7.2, without shifts). EXAMPLES:: @@ -1541,7 +1541,7 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): self[i,pivot_index[i]].degree()) for i in range(self.nrows()) ] return (pivot_index,pivot_degree) if return_degree else pivot_index - + # now in the column-wise case column_degrees = self.column_degrees(shifts) if shifts is None: @@ -1595,7 +1595,7 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): OUTPUT: a boolean. REFERENCES: - + [Kai1980]_ (Section 6.7.2, square case without shifts), [MS2003]_ (without shifts), [BLV1999]_ . @@ -1646,7 +1646,7 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): sage: M = Matrix([ ....: [ 6*x+4, 0, 5*x+1, 0], ....: [ 2, 5*x + 1, 6*x^2+3*x+1, 0], - ....: [2*x^2+5*x+5, 1, 2*x^3+4*x^2+6*x+4, 0] + ....: [2*x^2+5*x+5, 1, 2*x^3+4*x^2+6*x+4, 0] ....: ]) sage: M.is_weak_popov(shifts=[2,1,0], row_wise=False, ordered=True) True @@ -1724,7 +1724,7 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): OUTPUT: a boolean. REFERENCES: - + For the square case, without shifts: [Pop1972]_ and [Kai1980]_ (Section 6.7.2). For the general case: [BLV2006]_ . @@ -1908,7 +1908,7 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): False .. SEEALSO:: - + :meth:`hermite_form` . """ # shift for lower echelon @@ -2564,7 +2564,7 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): - the Hermite normal form `H` of this matrix `A` . - (optional) transformation matrix `U` such that `UA = H` . - + EXAMPLES:: sage: M. = GF(7)[] @@ -2594,7 +2594,7 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): True .. SEEALSO:: - + :meth:`is_hermite` , :meth:`popov_form` . """ @@ -2923,7 +2923,7 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): return (self.parent().zero().__copy__(), self) # Step 1: reverse input matrices # Brev = B(1/x) diag(x^(cdeg[i])) - # Arev = A(1/x) diag(x^(d+cdeg[i]-1)) + # Arev = A(1/x) diag(x^(d+cdeg[i]-1)) Brev = B.reverse(degree=cdeg, row_wise=False) Arev = self.reverse(degree=[d+c-1 for c in cdeg], row_wise=False) # Step 2: compute quotient @@ -2953,7 +2953,7 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): and such a quotient and remainder is returned by the method. Or this matrix equation has no solution and this method fails: this raises ``ValueError``; however this is not a proof that there is no valid - division with remainder (see the last example below). + division with remainder (see the last example below). EXAMPLES:: @@ -3245,12 +3245,12 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): Return ``True`` if and only if this matrix is an approximant basis in ``shifts``-ordered weak Popov form for the polynomial matrix ``pmat`` at order ``order``. - + If ``normal_form`` is ``True``, then the polynomial matrix must furthermore be in ``shifts``-Popov form. An error is raised if the input dimensions are not sound. If a single integer is provided for ``order``, then it is interpreted as a list of repeated integers with - this value. (See :meth:`minimal_approximant_basis` for definitions and + this value. (See :meth:`minimal_approximant_basis` for definitions and more details.) INPUT: @@ -3327,14 +3327,14 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): sage: appbas.is_minimal_approximant_basis(pmat, [8,8], shifts) Traceback (most recent call last): ... - ValueError: order length should be the column dimension + ValueError: order length should be the column dimension of the input matrix sage: appbas.is_minimal_approximant_basis(pmat, \ order, shifts, row_wise=False) Traceback (most recent call last): ... - ValueError: shifts length should be the column dimension + ValueError: shifts length should be the column dimension of the input matrix sage: Matrix(pR, [x^8]).is_minimal_approximant_basis(pmat, 8) @@ -3612,7 +3612,7 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): def _approximant_basis_iterative(self, order, shifts): r""" Return a ``shifts``-ordered weak Popov approximant basis for this - polynomial matrix at order ``order`` + polynomial matrix at order ``order`` (see :meth:`minimal_approximant_basis` for definitions). The output basis is considered row-wise, that is, its rows are @@ -3974,7 +3974,7 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): P = self.minimal_approximant_basis(orders,shifts,True,normal_form) row_indices = [] for i in range(m): - if P[i,i].degree() + shifts[i] <= degree_bound: + if P[i, i].degree() + shifts[i] <= degree_bound: row_indices.append(i) return P[row_indices,:] @@ -4000,6 +4000,6 @@ cdef class Matrix_polynomial_dense(Matrix_generic_dense): P = self.minimal_approximant_basis(orders,shifts,False,normal_form) column_indices = [] for j in range(n): - if P[j,j].degree() + shifts[j] <= degree_bound: + if P[j, j].degree() + shifts[j] <= degree_bound: column_indices.append(j) return P[:,column_indices] diff --git a/src/sage/modular/hypergeometric_misc.pyx b/src/sage/modular/hypergeometric_misc.pyx index 7f3c8ee494d..4b68e85e618 100644 --- a/src/sage/modular/hypergeometric_misc.pyx +++ b/src/sage/modular/hypergeometric_misc.pyx @@ -5,6 +5,7 @@ significantly from Cythonization. from cpython cimport array from cysignals.signals cimport sig_check + cpdef hgm_coeffs(long long p, int f, int prec, gamma, m, int D, gtable, int gtable_prec, bint use_longs): r""" @@ -24,9 +25,9 @@ cpdef hgm_coeffs(long long p, int f, int prec, gamma, m, int D, sage: D = 1 sage: hgm_coeffs(7, 1, 2, gamma, [0]*6, D, gtable, prec, False) [7, 2*7, 6*7, 7, 6, 4*7] - + Check issue from :trac:`28404`:: - + sage: H = Hyp(cyclotomic=[[10,2],[1,1,1,1,1]]) sage: u = H.euler_factor(2,79) # indirect doctest sage: u.reverse().is_weil_polynomial() @@ -116,7 +117,7 @@ cpdef hgm_coeffs(long long p, int f, int prec, gamma, m, int D, if flip: gv = -gv if use_longs: - w2 = gtab2[r1] # cast to long long to avoid overflow + w2 = gtab2[r1] # cast to long long to avoid overflow if gv > 0: for j in range(gv): w = w * w2 % q2 diff --git a/src/sage/numerical/linear_tensor_element.pyx b/src/sage/numerical/linear_tensor_element.pyx index f04949d6c02..c77aa290e21 100644 --- a/src/sage/numerical/linear_tensor_element.pyx +++ b/src/sage/numerical/linear_tensor_element.pyx @@ -54,10 +54,10 @@ cdef class LinearTensor(ModuleElement): Constructor taking a dictionary as its argument. INPUT: - + - ``parent`` -- the parent :class:`~sage.numerical.linear_tensor.LinearTensorParent_class`. - + - ``f`` -- A linear function tensored by a free module is represented as a dictionary. The values are the coefficient (free module elements) of the variable represented by the @@ -70,7 +70,7 @@ cdef class LinearTensor(ModuleElement): sage: LT = MixedIntegerLinearProgram().linear_functions_parent().tensor(RDF^2) sage: LT({0: [1,2], 3: [-7,-8]}) (1.0, 2.0)*x_0 + (-7.0, -8.0)*x_3 - + sage: TestSuite(LT).run(skip=['_test_an_element', '_test_elements_eq_reflexive', ....: '_test_elements_eq_symmetric', '_test_elements_eq_transitive', ....: '_test_elements_neq', '_test_additive_associativity', @@ -191,7 +191,7 @@ cdef class LinearTensor(ModuleElement): OUTPUT: String. - + EXAMPLES:: sage: from sage.numerical.linear_functions import LinearFunctionsParent @@ -221,7 +221,7 @@ cdef class LinearTensor(ModuleElement): term = '{1}*x_{0}'.format(key, coeff) terms.append(term) return ' + '.join(terms) - + def _repr_matrix(self): """ Return a matrix-like string representation. @@ -266,7 +266,7 @@ cdef class LinearTensor(ModuleElement): Return sum. INPUT: - + - ``b`` -- a :class:`LinearTensor`. OUTPUT: @@ -310,7 +310,7 @@ cdef class LinearTensor(ModuleElement): Return difference. INPUT: - + - ``b`` -- a :class:`LinearTensor`. OUTPUT: @@ -402,7 +402,7 @@ cdef class LinearTensor(ModuleElement): Arithmetic performed after coercions. Result lives in Tensor product of Vector space of dimension 2 over Real Double Field and Linear functions over Real Double Field Tensor product of Vector space of dimension 2 over Real Double Field and Linear functions over Real Double Field - + sage: operator.le(10, lt) (10.0, 10.0) <= (1.0, 2.0)*x_0 sage: lt <= 1 diff --git a/src/tox.ini b/src/tox.ini index 81f82aef3c5..c3147f88a01 100644 --- a/src/tox.ini +++ b/src/tox.ini @@ -119,12 +119,13 @@ description = # E721: do not compare types, use isinstance() # E722: do not use bare except, specify exception instead # W291: trailing whitespace + # W293: blank line contains whitespace # W391: blank line at end of file # W605: invalid escape sequence ‘x’ # See https://pycodestyle.pycqa.org/en/latest/intro.html#error-codes deps = pycodestyle commands = pycodestyle --select E111,E211,E306,E401,E701,E702,E703,W291,W391,W605,E711,E712,E713,E721,E722 {posargs:{toxinidir}/sage/} - pycodestyle --select E111,E306,E401,E703,W605,E712,E713,E721,E722 --filename *.pyx {posargs:{toxinidir}/sage/} + pycodestyle --select E111,E306,E401,E703,W293,W605,E712,E713,E714,E721,E722 --filename *.pyx {posargs:{toxinidir}/sage/} [pycodestyle] max-line-length = 160 From 687f7f49791e29370f48f356bde82a34f4a027f5 Mon Sep 17 00:00:00 2001 From: Dima Pasechnik Date: Mon, 20 Feb 2023 10:04:10 +0000 Subject: [PATCH 112/249] use proper upstream tarball --- build/pkgs/msolve/checksums.ini | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build/pkgs/msolve/checksums.ini b/build/pkgs/msolve/checksums.ini index 9385392eec9..a2ef7368790 100644 --- a/build/pkgs/msolve/checksums.ini +++ b/build/pkgs/msolve/checksums.ini @@ -1,5 +1,5 @@ tarball=msolve-VERSION.tar.gz -sha1=4a33630bb5916e0947f8108cff85406c21040851 -md5=4847bf41a1f8e5656abefda2ba34549d -cksum=105445469 -upstream_url=https://github.com/dimpase/msolve/releases/download/VERSION/msolve-VERSION.tar.gz +sha1=db99898afd03c2491d7d2190b89cea9ff0c41313 +md5=4ff5909d27f164aad9f7bdff633c037d +cksum=507678049 +upstream_url=https://github.com/algebraic-solving/msolve/releases/download/vVERSION/msolve-VERSION.tar.gz From 5e79f6a969133274fc30c709974ea48d20b7fe6f Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Mon, 20 Feb 2023 10:56:39 -0800 Subject: [PATCH 113/249] build/pkgs/msolve/SPKG.rst: Update --- build/pkgs/msolve/SPKG.rst | 3 --- 1 file changed, 3 deletions(-) diff --git a/build/pkgs/msolve/SPKG.rst b/build/pkgs/msolve/SPKG.rst index 00c1c417208..17f4802b4b1 100644 --- a/build/pkgs/msolve/SPKG.rst +++ b/build/pkgs/msolve/SPKG.rst @@ -16,6 +16,3 @@ Upstream Contact ---------------- https://github.com/algebraic-solving/msolve - -Upstream does not make source tarballs. -We make tarballs from the fork https://github.com/mkoeppe/msolve (branch 0.4.4+sage) From b04edc8b613c5fe276d25b377b602c96be01af42 Mon Sep 17 00:00:00 2001 From: Lorenz Panny Date: Tue, 21 Feb 2023 10:50:25 +0800 Subject: [PATCH 114/249] tweak documentation following reviewer feedback --- src/sage/schemes/elliptic_curves/hom.py | 30 ++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/src/sage/schemes/elliptic_curves/hom.py b/src/sage/schemes/elliptic_curves/hom.py index eeb2bdd530d..e1c5ed25c84 100644 --- a/src/sage/schemes/elliptic_curves/hom.py +++ b/src/sage/schemes/elliptic_curves/hom.py @@ -726,12 +726,9 @@ def as_morphism(self): def matrix_on_subgroup(self, domain_gens, codomain_gens=None): r""" - Return the matrix as which this isogeny acts on the + Return the matrix by which this isogeny acts on the `n`-torsion subgroup with respect to the given bases. - (This is useful for tasks such as computing a set of - generators for the kernel subgroup.) - INPUT: - ``domain_gens`` -- basis `(P,Q)` of some `n`-torsion @@ -775,7 +772,28 @@ def matrix_on_subgroup(self, domain_gens, codomain_gens=None): sage: iota(a*P + b*Q) == c*P + d*Q True - We can compute the matrix of a Frobenius endomorphism + One important application of this is to compute generators of + the kernel subgroup of an isogeny, when the `n`-torsion subgroup + containing the kernel is accessible:: + + sage: K = E(83*i-16, 9*i-147) + sage: K.order() + 7 + sage: phi = E.isogeny(K) + sage: R,S = phi.codomain().gens() + sage: mat = phi.matrix_on_subgroup((P,Q), (R,S)) + sage: mat # random -- depends on R,S + [124 263] + [115 141] + sage: kermat = mat.left_kernel_matrix(); kermat + [300 60] + sage: ker = [ZZ(v[0])*P + ZZ(v[1])*Q for v in kermat] + sage: {phi(T) for T in ker} + {(0 : 1 : 0)} + sage: phi == E.isogeny(ker) + True + + We can also compute the matrix of a Frobenius endomorphism (:class:`~sage.schemes.elliptic_curves.hom_frobenius.EllipticCurveHom_frobenius`) on a large enough subgroup to verify point-counting results:: @@ -785,6 +803,8 @@ def matrix_on_subgroup(self, domain_gens, codomain_gens=None): sage: P,Q = EE.torsion_basis(37) sage: pi = EE.frobenius_isogeny() sage: M = pi.matrix_on_subgroup((P,Q)) + sage: M.parent() + Full MatrixSpace of 2 by 2 dense matrices over Ring of integers modulo 37 sage: M.trace() 34 sage: E.trace_of_frobenius() From 1c433678ed497cae7262fc996588cb254c0180b3 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 21 Feb 2023 16:00:23 -0800 Subject: [PATCH 115/249] .github/workflows/doc-build-pdf.yml: New --- .github/workflows/doc-build-pdf.yml | 51 +++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 .github/workflows/doc-build-pdf.yml diff --git a/.github/workflows/doc-build-pdf.yml b/.github/workflows/doc-build-pdf.yml new file mode 100644 index 00000000000..ad78d82260a --- /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 doc-pdf + env: + MAKE: make -j2 + SAGE_NUM_THREADS: 2 + + - name: Copy docs + run: | + # For some reason the deploy step below cannot find /sage/... + # So copy everything from there to local folder + # We also need to replace the symlinks because netlify is not following them + 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 From eae8838a2925c814c86a31dd82934ec148278727 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 21 Feb 2023 22:08:54 -0800 Subject: [PATCH 116/249] .github/workflows/doc-build-pdf.yml: Set TEXMFHOME --- .github/workflows/doc-build-pdf.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/doc-build-pdf.yml b/.github/workflows/doc-build-pdf.yml index ad78d82260a..c6640895db5 100644 --- a/.github/workflows/doc-build-pdf.yml +++ b/.github/workflows/doc-build-pdf.yml @@ -33,6 +33,7 @@ jobs: env: MAKE: make -j2 SAGE_NUM_THREADS: 2 + TEXMFHOME: /sage/texmf - name: Copy docs run: | From d5e626245cc2a96ab9a57b5794878acb110ce20a Mon Sep 17 00:00:00 2001 From: dcoudert Date: Wed, 22 Feb 2023 09:52:37 +0100 Subject: [PATCH 117/249] Issue #35168: fix bug --- src/sage/graphs/generic_graph.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/sage/graphs/generic_graph.py b/src/sage/graphs/generic_graph.py index 38e1f8d5751..6a56a8f955b 100644 --- a/src/sage/graphs/generic_graph.py +++ b/src/sage/graphs/generic_graph.py @@ -4115,12 +4115,18 @@ def is_eulerian(self, path=False): sage: g = Graph({0:[], 1:[], 2:[], 3:[]}); g.is_eulerian() True - """ + Issue :trac:`35168` is fixed:: + + sage: Graph([[0, 42, 'John'], [(42, 0)]]).is_eulerian() + False + sage: Graph([[0, 42, 'John'], [(42, 'John')]]).is_eulerian() + False + """ # unconnected graph can still be Eulerian if all components # up to one doesn't contain any edge nontrivial_components = 0 - for cc in self.connected_components(): + for cc in self.connected_components(sort=False): if len(cc) > 1: nontrivial_components += 1 if nontrivial_components > 1: From baca43d18a66ef08425171a069c4c7f3934029f8 Mon Sep 17 00:00:00 2001 From: "Trevor K. Karn" Date: Wed, 22 Feb 2023 13:14:02 -0600 Subject: [PATCH 118/249] Add special method for Moebius function computation with minimal element, add cached_method to HasseDiagram.bottom, change to sum over bottom_moebius_function --- src/sage/combinat/posets/hasse_diagram.py | 56 +++++++++++++++++++++++ src/sage/combinat/posets/posets.py | 3 +- 2 files changed, 57 insertions(+), 2 deletions(-) diff --git a/src/sage/combinat/posets/hasse_diagram.py b/src/sage/combinat/posets/hasse_diagram.py index d857092f9c7..0ebced5d68e 100644 --- a/src/sage/combinat/posets/hasse_diagram.py +++ b/src/sage/combinat/posets/hasse_diagram.py @@ -419,6 +419,7 @@ def maximal_elements(self): """ return self.sinks() + @cached_method def bottom(self): """ Return the bottom element of the poset, if it exists. @@ -968,6 +969,61 @@ def moebius_function(self, i, j): # dumb algorithm self._moebius_function_values[(i, j)] = -sum(self.moebius_function(i, k) for k in ci[:-1]) return self._moebius_function_values[(i, j)] + def bottom_moebius_function(self, j): + r""" + Return the value of the Möbius function of the poset + on the elements ``zero`` and ``j``, where ``zero`` is + ``self.bottom()``, the unique minimal element of the poset. + + EXAMPLES:: + + sage: P = Poset({0: [1,2]}) + sage: hasse = P._hasse_diagram + sage: hasse.bottom_moebius_function(1) + -1 + sage: hasse.bottom_moebius_function(2) + -1 + sage: P = Poset({0: [1,3], 1:[2], 2:[4], 3:[4]}) + sage: hasse = P._hasse_diagram + sage: for i in range(5): + ....: print(hasse.bottom_moebius_function(i)) + 1 + -1 + 0 + -1 + 1 + + TESTS:: + + sage: P = Poset({0:[2], 1:[2]}) + sage: hasse = P._hasse_diagram + sage: hasse.bottom_moebius_function(1) + Traceback (most recent call last): + ... + ValueError: the poset has not a bottom element + """ + zero = self.bottom() + if zero is None: + raise ValueError("the poset has not a bottom element") + # if the value has already been computed, either by self.moebius_function + # or by self.bottom_moebius_function, then just use the cached value. + try: + return self._moebius_function_values[(zero, j)] + # if the dict has not been initialized, do that and try again + except AttributeError: + self._moebius_function_values = {} + return self.bottom_moebius_function(j) + # if mu(zero, j) has not already been computed, we'll get a key error. + except KeyError: + if zero == j: + self._moebius_function_values[(zero, j)] = 1 + # since zero is the minimal element, we can ignore the case that zero > j, + # and move on to computing the interval, which is exactly the order ideal. + else: + ci = self.order_ideal([j]) + self._moebius_function_values[(zero, j)] = -sum(self.bottom_moebius_function(k) for k in ci[:-1]) + return self._moebius_function_values[(zero, j)] + def moebius_function_matrix(self, algorithm='cython'): r""" Return the matrix of the Möbius function of this poset. diff --git a/src/sage/combinat/posets/posets.py b/src/sage/combinat/posets/posets.py index 2836d59d960..be4bf6dff7d 100644 --- a/src/sage/combinat/posets/posets.py +++ b/src/sage/combinat/posets/posets.py @@ -7614,9 +7614,8 @@ def characteristic_polynomial(self): if not self.has_bottom(): raise ValueError("the poset has not a bottom element") n = rk(hasse.maximal_elements()[0]) - x0 = hasse.minimal_elements()[0] q = polygen(ZZ, 'q') - return sum(hasse.moebius_function(x0, x) * q**(n - rk(x)) for x in hasse) + return sum(hasse.bottom_moebius_function(x) * q**(n - rk(x)) for x in hasse) def chain_polynomial(self): """ From 1fe100383a12251201783614d8fca813eb4d98d8 Mon Sep 17 00:00:00 2001 From: "Trevor K. Karn" Date: Wed, 22 Feb 2023 14:31:32 -0600 Subject: [PATCH 119/249] Remove unnecessary sort --- src/sage/combinat/posets/hasse_diagram.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/sage/combinat/posets/hasse_diagram.py b/src/sage/combinat/posets/hasse_diagram.py index 0ebced5d68e..f5845636993 100644 --- a/src/sage/combinat/posets/hasse_diagram.py +++ b/src/sage/combinat/posets/hasse_diagram.py @@ -1020,8 +1020,10 @@ def bottom_moebius_function(self, j): # since zero is the minimal element, we can ignore the case that zero > j, # and move on to computing the interval, which is exactly the order ideal. else: - ci = self.order_ideal([j]) - self._moebius_function_values[(zero, j)] = -sum(self.bottom_moebius_function(k) for k in ci[:-1]) + # do the depth_first_search over order_ideal, because we don't care + # about sorting the elements of the order + ci = self.depth_first_search([j], neighbors=self.neighbors_in) + self._moebius_function_values[(zero, j)] = -sum(self.bottom_moebius_function(k) for k in ci if k != j) return self._moebius_function_values[(zero, j)] def moebius_function_matrix(self, algorithm='cython'): From 0cd8ab437cd3da711c39f6e4ccc90f90dcf6160f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Bissey?= Date: Thu, 23 Feb 2023 10:32:14 +1300 Subject: [PATCH 120/249] MPL 3.7.0 doesn't give a user warning --- src/sage/plot/contour_plot.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/sage/plot/contour_plot.py b/src/sage/plot/contour_plot.py index c0cab456686..4accb309580 100644 --- a/src/sage/plot/contour_plot.py +++ b/src/sage/plot/contour_plot.py @@ -848,9 +848,7 @@ def f(x,y): return cos(x) + sin(y) sage: contour_plot(lambda x,y: 0, (-1,1), (-1,1), ....: contours=[0], fill=False, cmap=['blue']) - ... - UserWarning: No contour levels were found within the data range. - Graphics object consisting of 1 graphics primitive + ...Graphics object consisting of 1 graphics primitive .. PLOT:: @@ -874,8 +872,7 @@ def f(x,y): return cos(x) + sin(y) Check that :trac:`18074` is fixed:: sage: contour_plot(0, (0,1), (0,1)) - ... UserWarning: No contour levels were found within the data range. - Graphics object consisting of 1 graphics primitive + ...Graphics object consisting of 1 graphics primitive Domain points in :trac:`11648` with complex output are now skipped:: From fd4ae7706de075c15282c4edea5f9f2ca0dec2c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Bissey?= Date: Thu, 23 Feb 2023 10:39:31 +1300 Subject: [PATCH 121/249] Change in axis labelling: no more subplots --- src/sage/plot/graphics.py | 2 +- src/sage/plot/multigraphics.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sage/plot/graphics.py b/src/sage/plot/graphics.py index 64ea1a7e10f..cdc99ced263 100644 --- a/src/sage/plot/graphics.py +++ b/src/sage/plot/graphics.py @@ -2341,7 +2341,7 @@ def _matplotlib_tick_formatter(self, subplot, base=(10, 10), sage: subplot = Figure().add_subplot(111) sage: p._objects[0]._render_on_subplot(subplot) sage: p._matplotlib_tick_formatter(subplot, **d) - (, + (, , , , diff --git a/src/sage/plot/multigraphics.py b/src/sage/plot/multigraphics.py index 99c817f03a6..ae85183dc93 100644 --- a/src/sage/plot/multigraphics.py +++ b/src/sage/plot/multigraphics.py @@ -1207,7 +1207,7 @@ def _add_subplot(self, figure, index, **options): sage: fig = Figure() sage: ax1 = G._add_subplot(fig, 0) sage: type(ax1) - + sage: ax2 = G._add_subplot(fig, 1) sage: fig.get_axes() == [ax1, ax2] True From 876a62a7517f2ede6005ec6a4f8617d2ed5bb8b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Bissey?= Date: Thu, 23 Feb 2023 11:09:03 +1300 Subject: [PATCH 122/249] Move from cm.get_cmap to colormaps.get_cmap. The former is deprecated and will be removed. --- src/sage/plot/complex_plot.pyx | 6 +++--- src/sage/plot/plot3d/plot_field3d.py | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/sage/plot/complex_plot.pyx b/src/sage/plot/complex_plot.pyx index 6f0aeab87ae..494f083e98b 100644 --- a/src/sage/plot/complex_plot.pyx +++ b/src/sage/plot/complex_plot.pyx @@ -561,7 +561,7 @@ def complex_to_cmap_rgb(z_values, cmap='turbo', contoured=False, tiled=False, import matplotlib as mpl if isinstance(cmap, str): - cmap = mpl.cm.get_cmap(cmap) + cmap = mpl.colormaps.get_cmap(cmap) if contour_base is None: if contour_type == "linear": @@ -1204,11 +1204,11 @@ def complex_plot(f, x_range, y_range, contoured=False, tiled=False, cmap=None, domain = np.linspace(0, 1, 256) shifted_domain = np.roll(domain, 128) default_cmap = mpl.colors.LinearSegmentedColormap.from_list( - "sage_default", mpl.cm.get_cmap('hsv')(shifted_domain) + "sage_default", mpl.colormaps.get_cmap('hsv')(shifted_domain) ) cmap = default_cmap else: - cmap = mpl.cm.get_cmap(cmap) + cmap = mpl.colormaps.get_cmap(cmap) rgbs = complex_to_cmap_rgb( z_values, cmap=cmap, contoured=contoured, tiled=tiled, contour_type=contour_type, contour_base=contour_base, diff --git a/src/sage/plot/plot3d/plot_field3d.py b/src/sage/plot/plot3d/plot_field3d.py index bdf39391d3e..1e6ed982f6f 100644 --- a/src/sage/plot/plot3d/plot_field3d.py +++ b/src/sage/plot/plot3d/plot_field3d.py @@ -126,8 +126,7 @@ def plot_vector_field3d(functions, xrange, yrange, zrange, vectors = [vector((ff(*point), gg(*point), hh(*point))) for point in points] try: - from matplotlib.cm import get_cmap - cm = get_cmap(colors) + cm = matplotlib.colormaps.get_cmap(color) except (TypeError, ValueError): cm = None if cm is None: From c66682fc0d7e234b5ad33ae11098611500394551 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Bissey?= Date: Thu, 23 Feb 2023 14:12:47 +1300 Subject: [PATCH 123/249] correct mistakes in plot_field3d.py --- src/sage/plot/plot3d/plot_field3d.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/sage/plot/plot3d/plot_field3d.py b/src/sage/plot/plot3d/plot_field3d.py index 1e6ed982f6f..a9ff1360b91 100644 --- a/src/sage/plot/plot3d/plot_field3d.py +++ b/src/sage/plot/plot3d/plot_field3d.py @@ -126,7 +126,8 @@ def plot_vector_field3d(functions, xrange, yrange, zrange, vectors = [vector((ff(*point), gg(*point), hh(*point))) for point in points] try: - cm = matplotlib.colormaps.get_cmap(color) + import matplotlib + cm = matplotlib.colormaps.get_cmap(colors) except (TypeError, ValueError): cm = None if cm is None: From 9671739368a0e2055c382bf43d28952420dab80b Mon Sep 17 00:00:00 2001 From: jnash10 Date: Thu, 23 Feb 2023 09:57:27 +0530 Subject: [PATCH 124/249] Invalid range (xmin> xmax) check. Updated comment. --- src/sage/plot/misc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/plot/misc.py b/src/sage/plot/misc.py index a667306cee1..1adeb938859 100644 --- a/src/sage/plot/misc.py +++ b/src/sage/plot/misc.py @@ -139,7 +139,7 @@ def setup_for_eval_on_grid(funcs, else: vars, free_vars = unify_arguments(funcs) - # check for invalid range entered by user (xmin > xmax or ymin > ymax) and swap the values if True + # check for invalid range (xmin > xmax or ymin > ymax) and swap if len(ranges) > 1: for i in range(len(ranges)): if ranges[i][-2] > ranges[i][-1]: From cd0c618604dabf93583d80ae2c8c811d801f23ee Mon Sep 17 00:00:00 2001 From: jnash10 Date: Thu, 23 Feb 2023 16:36:57 +0530 Subject: [PATCH 125/249] check for inavlid range. removed trailing whitespace --- src/sage/plot/misc.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/plot/misc.py b/src/sage/plot/misc.py index 1adeb938859..d0ec1c60295 100644 --- a/src/sage/plot/misc.py +++ b/src/sage/plot/misc.py @@ -139,7 +139,7 @@ def setup_for_eval_on_grid(funcs, else: vars, free_vars = unify_arguments(funcs) - # check for invalid range (xmin > xmax or ymin > ymax) and swap + # check for invalid range (xmin > xmax or ymin > ymax) and swap if len(ranges) > 1: for i in range(len(ranges)): if ranges[i][-2] > ranges[i][-1]: From b9d5917981343f4b788f62b95b106b4a6eb81715 Mon Sep 17 00:00:00 2001 From: minaminao Date: Fri, 24 Feb 2023 00:38:31 +0900 Subject: [PATCH 126/249] fix(docs): use double backquotes for a command --- src/doc/ja/tutorial/introduction.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/doc/ja/tutorial/introduction.rst b/src/doc/ja/tutorial/introduction.rst index 79d90c9d5c1..1edcc18f7d9 100644 --- a/src/doc/ja/tutorial/introduction.rst +++ b/src/doc/ja/tutorial/introduction.rst @@ -83,7 +83,7 @@ Sageの使いかた Sageを使うには以下のようなやり方がある. -- **ノートブック グラフィカル インターフェイス:** `sage -n jupyter` を起動します。 +- **ノートブック グラフィカル インターフェイス:** ``sage -n jupyter`` を起動します。 `Jupyter documentation on-line `_ を読む. - **対話的コマンドライン:** :ref:`chapter-interactive_shell` 節を参照. From 5ad0848c0cd4a6f996846d676fbc6b80642b9b8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Bissey?= Date: Fri, 24 Feb 2023 11:04:54 +1300 Subject: [PATCH 127/249] Adopt more idiomatic form suggested in review. --- src/sage/plot/complex_plot.pyx | 6 +++--- src/sage/plot/plot3d/plot_field3d.py | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/sage/plot/complex_plot.pyx b/src/sage/plot/complex_plot.pyx index 494f083e98b..4d02ae57cf2 100644 --- a/src/sage/plot/complex_plot.pyx +++ b/src/sage/plot/complex_plot.pyx @@ -561,7 +561,7 @@ def complex_to_cmap_rgb(z_values, cmap='turbo', contoured=False, tiled=False, import matplotlib as mpl if isinstance(cmap, str): - cmap = mpl.colormaps.get_cmap(cmap) + cmap = mpl.colormaps[cmap] if contour_base is None: if contour_type == "linear": @@ -1204,11 +1204,11 @@ def complex_plot(f, x_range, y_range, contoured=False, tiled=False, cmap=None, domain = np.linspace(0, 1, 256) shifted_domain = np.roll(domain, 128) default_cmap = mpl.colors.LinearSegmentedColormap.from_list( - "sage_default", mpl.colormaps.get_cmap('hsv')(shifted_domain) + "sage_default", mpl.colormaps['hsv'](shifted_domain) ) cmap = default_cmap else: - cmap = mpl.colormaps.get_cmap(cmap) + cmap = mpl.colormaps[cmap] rgbs = complex_to_cmap_rgb( z_values, cmap=cmap, contoured=contoured, tiled=tiled, contour_type=contour_type, contour_base=contour_base, diff --git a/src/sage/plot/plot3d/plot_field3d.py b/src/sage/plot/plot3d/plot_field3d.py index a9ff1360b91..fe10e27f58f 100644 --- a/src/sage/plot/plot3d/plot_field3d.py +++ b/src/sage/plot/plot3d/plot_field3d.py @@ -126,9 +126,9 @@ def plot_vector_field3d(functions, xrange, yrange, zrange, vectors = [vector((ff(*point), gg(*point), hh(*point))) for point in points] try: - import matplotlib - cm = matplotlib.colormaps.get_cmap(colors) - except (TypeError, ValueError): + import matplotlib as mpl + cm = mpl.colormaps[colors] + except (TypeError, KeyError): cm = None if cm is None: if isinstance(colors, (list, tuple)): From f21e9511b8dd407d964e3e16c4886de10fc5e946 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Feb 2023 00:46:50 +0000 Subject: [PATCH 128/249] Bump codecov/codecov-action from 2 to 3 Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2 to 3. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v2...v3) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From 53773fb3cc99edda4dc47b99495b072d32e252c6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Feb 2023 00:46:56 +0000 Subject: [PATCH 129/249] Bump actions/github-script from 3.1.0 to 6.4.0 Bumps [actions/github-script](https://github.com/actions/github-script) from 3.1.0 to 6.4.0. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/v3.1.0...v6.4.0) --- updated-dependencies: - dependency-name: actions/github-script dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/doc-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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({ From e8a475bb00ec784d94c6a3da34ea19b064a14e6b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Feb 2023 00:47:05 +0000 Subject: [PATCH 130/249] Bump actions/cache from 2 to 3 Bumps [actions/cache](https://github.com/actions/cache) from 2 to 3. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/cache dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci-conda.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-conda.yml b/.github/workflows/ci-conda.yml index bc1f1c5a634..2d947d7fdf0 100644 --- a/.github/workflows/ci-conda.yml +++ b/.github/workflows/ci-conda.yml @@ -45,7 +45,7 @@ jobs: run: ./bootstrap-conda - name: Cache conda packages - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/conda_pkgs_dir key: From d008a9cfb377a6c2e1916991b45e496a08138314 Mon Sep 17 00:00:00 2001 From: Travis Scrimshaw Date: Fri, 24 Feb 2023 16:11:51 +0900 Subject: [PATCH 131/249] Various improvements to Weyl character rings. --- src/sage/algebras/fusion_rings/fusion_ring.py | 2 +- .../combinat/root_system/weyl_characters.py | 33 ++++++++++++++----- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/src/sage/algebras/fusion_rings/fusion_ring.py b/src/sage/algebras/fusion_rings/fusion_ring.py index 915ca62e73b..8f4ed4b3cb7 100644 --- a/src/sage/algebras/fusion_rings/fusion_ring.py +++ b/src/sage/algebras/fusion_rings/fusion_ring.py @@ -401,7 +401,7 @@ def test_braid_representation(self, max_strands=6, anyon=None): sage: A21 = FusionRing("A2", 1) sage: A21.test_braid_representation(max_strands=4) True - sage: F41 = FusionRing("F4", 1) # long time + sage: F41 = FusionRing("F4", 1) # long time sage: F41.test_braid_representation() # long time True """ diff --git a/src/sage/combinat/root_system/weyl_characters.py b/src/sage/combinat/root_system/weyl_characters.py index f306df7eddf..b65e3eff5e5 100644 --- a/src/sage/combinat/root_system/weyl_characters.py +++ b/src/sage/combinat/root_system/weyl_characters.py @@ -154,9 +154,11 @@ def next_level(wt): else: B = self._space - cat = AlgebrasWithBasis(base_ring).Subobjects() + cat = AlgebrasWithBasis(base_ring).Commutative() if k is None: - cat = cat.Graded() + cat = cat.Subobjects().Graded() + else: + cat = cat.FiniteDimensional() CombinatorialFreeModule.__init__(self, base_ring, B, category=cat) # Register the embedding of self into ambient as a coercion @@ -537,7 +539,7 @@ def _product_helper(self, d1, b): d[g] = d.get(g,0) + d1[k] elif epsilon == -1: d[g] = d.get(g,0) - d1[k] - return self._from_dict(d) + return self._from_dict(d, coerce=True) def dot_reduce(self, a): r""" @@ -715,8 +717,15 @@ def _demazure_helper(self, dd, word="long", debug=False): alpha = self._space.simple_roots() r = self.rank() cm = {} + supp = [] for i in index_set: - cm[i] = tuple(int(alpha[i].inner_product(alphacheck[j])) for j in index_set) + temp = [] + cm[i] = [0] * r + for ind,j in enumerate(index_set): + cm[i][ind] = int(alpha[i].inner_product(alphacheck[j])) + if cm[i][ind]: + temp.append(ind) + supp.append(temp) if debug: print("cm[%s]=%s" % (i, cm[i])) accum = dd @@ -733,15 +742,21 @@ def _demazure_helper(self, dd, word="long", debug=False): if coroot >= 0: mu = v for j in range(coroot+1): - next[mu] = next.get(mu,0)+accum[v] + next[mu] = next.get(mu,0) + accum[v] if debug: print(" mu=%s, next[mu]=%s" % (mu, next[mu])) - mu = tuple(mu[k] - cm[i][k] for k in range(r)) + mu = list(mu) + for k in supp[i-1]: + mu[k] -= cm[i][k] + mu = tuple(mu) else: mu = v for j in range(-1-coroot): - mu = tuple(mu[k] + cm[i][k] for k in range(r)) - next[mu] = next.get(mu,0)-accum[v] + mu = list(mu) + for k in supp[i-1]: + mu[k] += cm[i][k] + mu = tuple(mu) + next[mu] = next.get(mu,0) - accum[v] if debug: print(" mu=%s, next[mu]=%s" % (mu, next[mu])) accum = {} @@ -1779,7 +1794,7 @@ def __init__(self, parent, prefix): # TODO: this only works for irreducible Cartan types! prefix = (self._cartan_type[0].lower() + str(self._rank)) self._prefix = prefix - category = AlgebrasWithBasis(self._base_ring) + category = AlgebrasWithBasis(self._base_ring).Commutative() CombinatorialFreeModule.__init__(self, self._base_ring, self._space, category=category) def _repr_(self): From d3c837634378057aa64dde2366527d873fde2125 Mon Sep 17 00:00:00 2001 From: minaminao Date: Fri, 24 Feb 2023 17:44:02 +0900 Subject: [PATCH 132/249] fix: use double backquotes --- src/doc/de/tutorial/introduction.rst | 2 +- src/doc/es/tutorial/introduction.rst | 2 +- src/doc/fr/tutorial/introduction.rst | 2 +- src/doc/pt/tutorial/introduction.rst | 2 +- src/doc/ru/tutorial/introduction.rst | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/doc/de/tutorial/introduction.rst b/src/doc/de/tutorial/introduction.rst index bb80efc7cec..f64ed7ee796 100644 --- a/src/doc/de/tutorial/introduction.rst +++ b/src/doc/de/tutorial/introduction.rst @@ -107,7 +107,7 @@ Wie man Sage benutzen kann Sie können Sage auf verschiedene Weise benutzen. -- **graphisches Notebook-Interface:** rufen Sie `sage -n jupyter` auf; lesen Sie +- **graphisches Notebook-Interface:** rufen Sie ``sage -n jupyter`` auf; lesen Sie `Jupyter documentation on-line `_, - **interaktive Kommandozeile:** lesen Sie :ref:`chapter-interactive_shell`, diff --git a/src/doc/es/tutorial/introduction.rst b/src/doc/es/tutorial/introduction.rst index fdd811d7f96..92e01281ef6 100644 --- a/src/doc/es/tutorial/introduction.rst +++ b/src/doc/es/tutorial/introduction.rst @@ -101,7 +101,7 @@ Formas de usar Sage Puedes usar Sage de varias maneras. -- **Interfaz gráfico del Notebook:** iniciar `sage -n jupyter`; leer +- **Interfaz gráfico del Notebook:** iniciar ``sage -n jupyter``; leer `Jupyter documentation on-line `_, - **Línea de comandos interactiva:**, diff --git a/src/doc/fr/tutorial/introduction.rst b/src/doc/fr/tutorial/introduction.rst index 6edb2362061..cfc10a965a3 100644 --- a/src/doc/fr/tutorial/introduction.rst +++ b/src/doc/fr/tutorial/introduction.rst @@ -105,7 +105,7 @@ Les différentes manières d'utiliser Sage Il y a plusieurs façons d'utiliser Sage. -- **Interface graphique (« notebook ») :** démarrer `sage -n jupyter`; lire +- **Interface graphique (« notebook ») :** démarrer ``sage -n jupyter``; lire `Jupyter documentation on-line `_ ; - **Ligne de commande :** voir :ref:`chapter-interactive_shell` ; diff --git a/src/doc/pt/tutorial/introduction.rst b/src/doc/pt/tutorial/introduction.rst index b0b2fac6e1b..8ddf257d3c7 100644 --- a/src/doc/pt/tutorial/introduction.rst +++ b/src/doc/pt/tutorial/introduction.rst @@ -100,7 +100,7 @@ Formas de usar o Sage Você pode usar o Sage de diversas formas. -- **Interface gráfica Notebook:** inicie `sage -n jupyter`; leia +- **Interface gráfica Notebook:** inicie ``sage -n jupyter``; leia `Jupyter documentation on-line `_, - **Linha de comando interativa:** veja diff --git a/src/doc/ru/tutorial/introduction.rst b/src/doc/ru/tutorial/introduction.rst index 445d17fb505..fe8681d8a79 100644 --- a/src/doc/ru/tutorial/introduction.rst +++ b/src/doc/ru/tutorial/introduction.rst @@ -97,7 +97,7 @@ Sage в разделе документации: [SA]_ Здесь мы прив Работа в Sage может быть осуществлена несколькими путями: -- **Notebook (графический интерфейс):** запустите `sage -n jupyter`; читайте +- **Notebook (графический интерфейс):** запустите ``sage -n jupyter``; читайте `Jupyter documentation on-line `_, - **Интерактивная командная строка:** см. :ref:`chapter-interactive_shell`; From 9ae245b599ed9f5d404f8d157fed7c10e3120e10 Mon Sep 17 00:00:00 2001 From: minaminao Date: Fri, 24 Feb 2023 17:46:13 +0900 Subject: [PATCH 133/249] fix: improper Japanese expression --- src/doc/ja/tutorial/introduction.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/doc/ja/tutorial/introduction.rst b/src/doc/ja/tutorial/introduction.rst index 1edcc18f7d9..c71737d7177 100644 --- a/src/doc/ja/tutorial/introduction.rst +++ b/src/doc/ja/tutorial/introduction.rst @@ -83,7 +83,7 @@ Sageの使いかた Sageを使うには以下のようなやり方がある. -- **ノートブック グラフィカル インターフェイス:** ``sage -n jupyter`` を起動します。 +- **ノートブック グラフィカル インターフェイス:** ``sage -n jupyter`` を実行する. `Jupyter documentation on-line `_ を読む. - **対話的コマンドライン:** :ref:`chapter-interactive_shell` 節を参照. From 3e6e2af6bbe50b76df6274f4da78bd950ce2fb18 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Fri, 24 Feb 2023 14:12:28 +0000 Subject: [PATCH 134/249] Add typing to tangent vectors --- src/sage/manifolds/differentiable/diff_map.py | 7 +++++- .../manifolds/differentiable/scalarfield.py | 8 ++++--- .../manifolds/differentiable/tangent_space.py | 6 +++-- .../manifolds/differentiable/tensorfield.py | 3 ++- .../tensor/modules/free_module_element.py | 12 +++++++++- .../tensor/modules/free_module_morphism.py | 11 +++++++-- src/sage/tensor/modules/free_module_tensor.py | 23 +++++++++++-------- 7 files changed, 51 insertions(+), 19 deletions(-) diff --git a/src/sage/manifolds/differentiable/diff_map.py b/src/sage/manifolds/differentiable/diff_map.py index 7f0c09a6b7c..3a7c2bd505a 100644 --- a/src/sage/manifolds/differentiable/diff_map.py +++ b/src/sage/manifolds/differentiable/diff_map.py @@ -33,10 +33,15 @@ # https://www.gnu.org/licenses/ # **************************************************************************** +from typing import TYPE_CHECKING + from sage.manifolds.continuous_map import ContinuousMap from sage.parallel.decorate import parallel from sage.parallel.parallelism import Parallelism +if TYPE_CHECKING: + from sage.manifolds.point import ManifoldPoint + from sage.tensor.modules.free_module_morphism import FiniteRankFreeModuleMorphism class DiffMap(ContinuousMap): r""" @@ -515,7 +520,7 @@ def _del_derived(self): # class self._diff.clear() - def differential(self, point): + def differential(self, point: ManifoldPoint) -> FiniteRankFreeModuleMorphism: r""" Return the differential of ``self`` at a given point. diff --git a/src/sage/manifolds/differentiable/scalarfield.py b/src/sage/manifolds/differentiable/scalarfield.py index 9763bf46352..1b9a3c2ae2d 100644 --- a/src/sage/manifolds/differentiable/scalarfield.py +++ b/src/sage/manifolds/differentiable/scalarfield.py @@ -38,13 +38,15 @@ #****************************************************************************** from __future__ import annotations -from typing import Union, TYPE_CHECKING + +from typing import TYPE_CHECKING, Union + from sage.manifolds.scalarfield import ScalarField if TYPE_CHECKING: from sage.manifolds.differentiable.diff_form import DiffForm - from sage.manifolds.differentiable.symplectic_form import SymplecticForm from sage.manifolds.differentiable.metric import PseudoRiemannianMetric + from sage.manifolds.differentiable.symplectic_form import SymplecticForm class DiffScalarField(ScalarField): @@ -713,7 +715,7 @@ def tensor_type(self): """ return self._tensor_type - def differential(self): + def differential(self) -> DiffForm: r""" Return the differential of ``self``. diff --git a/src/sage/manifolds/differentiable/tangent_space.py b/src/sage/manifolds/differentiable/tangent_space.py index aa14cc90f70..414e93e8570 100644 --- a/src/sage/manifolds/differentiable/tangent_space.py +++ b/src/sage/manifolds/differentiable/tangent_space.py @@ -25,9 +25,11 @@ # http://www.gnu.org/licenses/ #****************************************************************************** +from sage.manifolds.differentiable.tangent_vector import TangentVector +from sage.manifolds.point import ManifoldPoint from sage.symbolic.ring import SR from sage.tensor.modules.finite_rank_free_module import FiniteRankFreeModule -from sage.manifolds.differentiable.tangent_vector import TangentVector + class TangentSpace(FiniteRankFreeModule): r""" @@ -222,7 +224,7 @@ class TangentSpace(FiniteRankFreeModule): """ Element = TangentVector - def __init__(self, point, base_ring=None): + def __init__(self, point: ManifoldPoint, base_ring=None): r""" Construct the tangent space at a given point. diff --git a/src/sage/manifolds/differentiable/tensorfield.py b/src/sage/manifolds/differentiable/tensorfield.py index db4a2a05aa1..1390fc8076f 100644 --- a/src/sage/manifolds/differentiable/tensorfield.py +++ b/src/sage/manifolds/differentiable/tensorfield.py @@ -69,6 +69,7 @@ from sage.manifolds.differentiable.poisson_tensor import PoissonTensorField from sage.manifolds.differentiable.symplectic_form import SymplecticForm from sage.manifolds.differentiable.vectorfield_module import VectorFieldModule + from sage.manifolds.point import ManifoldPoint from sage.tensor.modules.comp import Components @@ -3634,7 +3635,7 @@ def lie_derivative(self, vector): lie_der = lie_derivative - def at(self, point): + def at(self, point: ManifoldPoint) -> FreeModuleTensor: r""" Value of ``self`` at a point of its domain. diff --git a/src/sage/tensor/modules/free_module_element.py b/src/sage/tensor/modules/free_module_element.py index 0bde6363822..b2f5edd5448 100644 --- a/src/sage/tensor/modules/free_module_element.py +++ b/src/sage/tensor/modules/free_module_element.py @@ -29,8 +29,12 @@ # http://www.gnu.org/licenses/ #****************************************************************************** +from typing import Optional + from sage.tensor.modules.alternating_contr_tensor import AlternatingContrTensor from sage.tensor.modules.comp import Components +from sage.tensor.modules.finite_rank_free_module import FiniteRankFreeModule + class FiniteRankFreeModuleElement(AlternatingContrTensor): r""" @@ -185,7 +189,13 @@ class FiniteRankFreeModuleElement(AlternatingContrTensor): a∧b = -2 e_0∧e_1 - 6 e_0∧e_2 + 7 e_1∧e_2 """ - def __init__(self, fmodule, name=None, latex_name=None): + + def __init__( + self, + fmodule: FiniteRankFreeModule, + name: Optional[str] = None, + latex_name: Optional[str] = None, + ): r""" TESTS:: diff --git a/src/sage/tensor/modules/free_module_morphism.py b/src/sage/tensor/modules/free_module_morphism.py index abb24e89203..a92197fb08a 100644 --- a/src/sage/tensor/modules/free_module_morphism.py +++ b/src/sage/tensor/modules/free_module_morphism.py @@ -23,8 +23,13 @@ # the License, or (at your option) any later version. # https://www.gnu.org/licenses/ # ***************************************************************************** -from sage.rings.integer import Integer +from typing import TYPE_CHECKING + from sage.categories.morphism import Morphism +from sage.rings.integer import Integer + +if TYPE_CHECKING: + from sage.tensor.modules.free_module_element import FiniteRankFreeModuleElement class FiniteRankFreeModuleMorphism(Morphism): @@ -764,7 +769,9 @@ def __neg__(self): # Map methods # - def _call_(self, element): + def _call_( + self, element: FiniteRankFreeModuleElement + ) -> FiniteRankFreeModuleElement: r""" Action of the homomorphism ``self`` on some free module element diff --git a/src/sage/tensor/modules/free_module_tensor.py b/src/sage/tensor/modules/free_module_tensor.py index a7865299688..da85d6c455b 100644 --- a/src/sage/tensor/modules/free_module_tensor.py +++ b/src/sage/tensor/modules/free_module_tensor.py @@ -194,17 +194,22 @@ class being: # ***************************************************************************** from __future__ import annotations -from typing import TYPE_CHECKING, Dict +from typing import TYPE_CHECKING, Dict, Optional +from sage.parallel.decorate import parallel +from sage.parallel.parallelism import Parallelism from sage.rings.integer import Integer from sage.structure.element import ModuleElementWithMutability -from sage.tensor.modules.comp import (Components, CompWithSym, CompFullySym, - CompFullyAntiSym) +from sage.tensor.modules.comp import ( + CompFullyAntiSym, + CompFullySym, + Components, + CompWithSym, +) from sage.tensor.modules.tensor_with_indices import TensorWithIndices -from sage.parallel.decorate import parallel -from sage.parallel.parallelism import Parallelism if TYPE_CHECKING: + from sage.symbolic.expression import Expression from sage.tensor.modules.finite_rank_free_module import FiniteRankFreeModule from sage.tensor.modules.free_module_basis import FreeModuleBasis @@ -264,8 +269,8 @@ def __init__( self, fmodule: FiniteRankFreeModule, tensor_type, - name=None, - latex_name=None, + name: Optional[str] = None, + latex_name: Optional[str] = None, sym=None, antisym=None, parent=None, @@ -891,7 +896,7 @@ def display_comp(self, basis=None, format_spec=None, symbol=None, only_nonzero=only_nonzero, only_nonredundant=only_nonredundant) - def set_name(self, name=None, latex_name=None): + def set_name(self, name: Optional[str] = None, latex_name: Optional[str] = None): r""" Set (or change) the text name and LaTeX name of ``self``. @@ -2262,7 +2267,7 @@ def __truediv__(self, other): result._components[basis] = self._components[basis] / other return result - def __call__(self, *args): + def __call__(self, *args) -> Expression: r""" The tensor acting on linear forms and module elements as a multilinear map. From d2cc16018baa96bbbed8b57b7c23fae811632746 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Tue, 21 Feb 2023 16:53:04 -0300 Subject: [PATCH 135/249] #26968: add a doctest to catch ecl race in maxima init We run a new instance of sage in a subprocess to ensure maxima is not already initialized. We use a temporary MAXIMA_USERDIR so its empty, and we try to initialize maxima twice in parallel to entice the race. This temporary dir is placed within `DOT_SAGE` so it is easy to try different filesystems. The bug triggers more frequently if `DOT_SAGE` is in a high latency filesystem (e.g. sshfs on a non-local host). The next commit introduces a workaround for the bug. --- src/sage/interfaces/maxima_lib.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/sage/interfaces/maxima_lib.py b/src/sage/interfaces/maxima_lib.py index c9ca5e30939..61cac593add 100644 --- a/src/sage/interfaces/maxima_lib.py +++ b/src/sage/interfaces/maxima_lib.py @@ -77,6 +77,26 @@ sage: bar == foo True +TESTS: + +Check our workaround for a race in ecl works, see :trac:`26968`. +We use a temporary `MAXIMA_USERDIR` so it's empty; we place it +in `DOT_SAGE` since we expect it to have more latency than `/tmp`. + + sage: import tempfile, subprocess + sage: tmpdir = tempfile.TemporaryDirectory(dir=DOT_SAGE) + sage: _ = subprocess.run(['sage', '-c', # long time + ....: f''' + ....: import os + ....: os.environ["MAXIMA_USERDIR"] = "{tmpdir.name}" + ....: if not os.fork(): + ....: import sage.interfaces.maxima_lib + ....: else: + ....: import sage.interfaces.maxima_lib + ....: os.wait() + ....: ''']) + sage: tmpdir.cleanup() + """ # **************************************************************************** From bcf68b3c33e4dd5e2912d49cff6831fe0d697ff3 Mon Sep 17 00:00:00 2001 From: "Trevor K. Karn" Date: Fri, 24 Feb 2023 22:04:15 -0600 Subject: [PATCH 136/249] Bring error messages into the 21st century --- src/sage/combinat/posets/hasse_diagram.py | 6 +++--- src/sage/combinat/posets/posets.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sage/combinat/posets/hasse_diagram.py b/src/sage/combinat/posets/hasse_diagram.py index f5845636993..9199e855161 100644 --- a/src/sage/combinat/posets/hasse_diagram.py +++ b/src/sage/combinat/posets/hasse_diagram.py @@ -1000,11 +1000,11 @@ def bottom_moebius_function(self, j): sage: hasse.bottom_moebius_function(1) Traceback (most recent call last): ... - ValueError: the poset has not a bottom element + ValueError: the poset does not have a bottom element """ zero = self.bottom() if zero is None: - raise ValueError("the poset has not a bottom element") + raise ValueError("the poset does not have a bottom element") # if the value has already been computed, either by self.moebius_function # or by self.bottom_moebius_function, then just use the cached value. try: @@ -1021,7 +1021,7 @@ def bottom_moebius_function(self, j): # and move on to computing the interval, which is exactly the order ideal. else: # do the depth_first_search over order_ideal, because we don't care - # about sorting the elements of the order + # about sorting the elements of the order ideal ci = self.depth_first_search([j], neighbors=self.neighbors_in) self._moebius_function_values[(zero, j)] = -sum(self.bottom_moebius_function(k) for k in ci if k != j) return self._moebius_function_values[(zero, j)] diff --git a/src/sage/combinat/posets/posets.py b/src/sage/combinat/posets/posets.py index be4bf6dff7d..9037013f01e 100644 --- a/src/sage/combinat/posets/posets.py +++ b/src/sage/combinat/posets/posets.py @@ -7612,7 +7612,7 @@ def characteristic_polynomial(self): if not self.is_graded(): raise ValueError("the poset is not graded") if not self.has_bottom(): - raise ValueError("the poset has not a bottom element") + raise ValueError("the poset does not have a bottom element") n = rk(hasse.maximal_elements()[0]) q = polygen(ZZ, 'q') return sum(hasse.bottom_moebius_function(x) * q**(n - rk(x)) for x in hasse) From d13e48a0fb2f3551a3b5b584556fc7f3f2e43f14 Mon Sep 17 00:00:00 2001 From: "Trevor K. Karn" Date: Fri, 24 Feb 2023 22:21:19 -0600 Subject: [PATCH 137/249] Expose CGraph backend to compute downward Moebius --- src/sage/combinat/posets/hasse_diagram.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sage/combinat/posets/hasse_diagram.py b/src/sage/combinat/posets/hasse_diagram.py index 9199e855161..13ce44d8790 100644 --- a/src/sage/combinat/posets/hasse_diagram.py +++ b/src/sage/combinat/posets/hasse_diagram.py @@ -1021,8 +1021,8 @@ def bottom_moebius_function(self, j): # and move on to computing the interval, which is exactly the order ideal. else: # do the depth_first_search over order_ideal, because we don't care - # about sorting the elements of the order ideal - ci = self.depth_first_search([j], neighbors=self.neighbors_in) + # about sorting the elements of the order ideal. + ci = self._backend.depth_first_search(j, reverse=True) self._moebius_function_values[(zero, j)] = -sum(self.bottom_moebius_function(k) for k in ci if k != j) return self._moebius_function_values[(zero, j)] From 2d99bd7b27cfc2ac070a3c2a6fa3910eff863efa Mon Sep 17 00:00:00 2001 From: "Trevor K. Karn" Date: Fri, 24 Feb 2023 22:33:05 -0600 Subject: [PATCH 138/249] Add iterator next instead of checking value --- src/sage/combinat/posets/hasse_diagram.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/sage/combinat/posets/hasse_diagram.py b/src/sage/combinat/posets/hasse_diagram.py index 13ce44d8790..fb6177a9d36 100644 --- a/src/sage/combinat/posets/hasse_diagram.py +++ b/src/sage/combinat/posets/hasse_diagram.py @@ -1023,7 +1023,8 @@ def bottom_moebius_function(self, j): # do the depth_first_search over order_ideal, because we don't care # about sorting the elements of the order ideal. ci = self._backend.depth_first_search(j, reverse=True) - self._moebius_function_values[(zero, j)] = -sum(self.bottom_moebius_function(k) for k in ci if k != j) + next(ci) # throw out the first element, which is j + self._moebius_function_values[(zero, j)] = -sum(self.bottom_moebius_function(k) for k in ci) return self._moebius_function_values[(zero, j)] def moebius_function_matrix(self, algorithm='cython'): From f837d27661cb238396345cb90fb99c3dbb4734ba Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 25 Feb 2023 05:06:48 +0000 Subject: [PATCH 139/249] Fix imports --- src/sage/manifolds/differentiable/tangent_space.py | 5 ++++- src/sage/tensor/modules/free_module_element.py | 13 +++++++++---- src/sage/tensor/modules/free_module_morphism.py | 2 ++ 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/sage/manifolds/differentiable/tangent_space.py b/src/sage/manifolds/differentiable/tangent_space.py index 414e93e8570..99169dad572 100644 --- a/src/sage/manifolds/differentiable/tangent_space.py +++ b/src/sage/manifolds/differentiable/tangent_space.py @@ -25,11 +25,14 @@ # http://www.gnu.org/licenses/ #****************************************************************************** +from typing import TYPE_CHECKING + from sage.manifolds.differentiable.tangent_vector import TangentVector -from sage.manifolds.point import ManifoldPoint from sage.symbolic.ring import SR from sage.tensor.modules.finite_rank_free_module import FiniteRankFreeModule +if TYPE_CHECKING: + from sage.manifolds.point import ManifoldPoint class TangentSpace(FiniteRankFreeModule): r""" diff --git a/src/sage/tensor/modules/free_module_element.py b/src/sage/tensor/modules/free_module_element.py index b2f5edd5448..c8bec392083 100644 --- a/src/sage/tensor/modules/free_module_element.py +++ b/src/sage/tensor/modules/free_module_element.py @@ -29,11 +29,16 @@ # http://www.gnu.org/licenses/ #****************************************************************************** -from typing import Optional +from __future__ import annotations + +from typing import TYPE_CHECKING, Optional from sage.tensor.modules.alternating_contr_tensor import AlternatingContrTensor from sage.tensor.modules.comp import Components -from sage.tensor.modules.finite_rank_free_module import FiniteRankFreeModule + +if TYPE_CHECKING: + from sage.tensor.modules.finite_rank_free_module import FiniteRankFreeModule + from sage.tensor.modules.free_module_basis import FreeModuleBasis class FiniteRankFreeModuleElement(AlternatingContrTensor): @@ -219,7 +224,7 @@ def __init__( AlternatingContrTensor.__init__(self, fmodule, 1, name=name, latex_name=latex_name) - def _repr_(self): + def _repr_(self) -> str: r""" Return a string representation of ``self``. @@ -237,7 +242,7 @@ def _repr_(self): description += "of the {}".format(self._fmodule) return description - def _new_comp(self, basis): + def _new_comp(self, basis: FreeModuleBasis) -> Components: r""" Create some (uninitialized) components of ``self`` in a given basis. diff --git a/src/sage/tensor/modules/free_module_morphism.py b/src/sage/tensor/modules/free_module_morphism.py index a92197fb08a..c833d03094d 100644 --- a/src/sage/tensor/modules/free_module_morphism.py +++ b/src/sage/tensor/modules/free_module_morphism.py @@ -23,6 +23,8 @@ # the License, or (at your option) any later version. # https://www.gnu.org/licenses/ # ***************************************************************************** +from __future__ import annotations + from typing import TYPE_CHECKING from sage.categories.morphism import Morphism From 421bb597db7c0fed43ff38129219f821e71a8310 Mon Sep 17 00:00:00 2001 From: "John H. Palmieri" Date: Fri, 24 Feb 2023 21:44:33 -0800 Subject: [PATCH 140/249] Fix bug with Set equality/inequality --- src/sage/sets/set.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/sage/sets/set.py b/src/sage/sets/set.py index b988525a880..c4e39fd3df7 100644 --- a/src/sage/sets/set.py +++ b/src/sage/sets/set.py @@ -1061,10 +1061,20 @@ def __richcmp__(self, other, op): False sage: Set([1]) == set([1]) True + + Test set equality and inequality:: + + sage: L = {0} + sage: S = Set(L) + sage: S == L + True + sage: S != L + False """ if not isinstance(other, Set_object_enumerated): if isinstance(other, (set, frozenset)): - return self.set() == other + if self.set() == other: + return rich_to_bool(op, 0) return NotImplemented if self.set() == other.set(): return rich_to_bool(op, 0) From 00b3cbaa4495810a039a5713d7adf12203df6813 Mon Sep 17 00:00:00 2001 From: Tobias Diez Date: Sat, 25 Feb 2023 13:13:24 +0000 Subject: [PATCH 141/249] add missing future imports --- src/sage/manifolds/differentiable/diff_map.py | 17 +++++++++++++---- .../manifolds/differentiable/tangent_space.py | 1 + 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/sage/manifolds/differentiable/diff_map.py b/src/sage/manifolds/differentiable/diff_map.py index 3a7c2bd505a..4260f233e40 100644 --- a/src/sage/manifolds/differentiable/diff_map.py +++ b/src/sage/manifolds/differentiable/diff_map.py @@ -32,6 +32,7 @@ # the License, or (at your option) any later version. # https://www.gnu.org/licenses/ # **************************************************************************** +from __future__ import annotations from typing import TYPE_CHECKING @@ -954,8 +955,12 @@ def pullback(self, tensor_or_codomain_subset, name=None, latex_name=None): tensor = tensor_or_codomain_subset from sage.manifolds.differentiable.tensorfield_paral import TensorFieldParal - from sage.tensor.modules.comp import (Components, CompWithSym, - CompFullySym, CompFullyAntiSym) + from sage.tensor.modules.comp import ( + CompFullyAntiSym, + CompFullySym, + Components, + CompWithSym, + ) def _pullback_chart(diff_map, tensor, chart1, chart2): r""" @@ -1200,9 +1205,13 @@ def pushforward(self, tensor): Psi_*(u) = -sin(t) ∂/∂x + cos(t) ∂/∂y + ∂/∂z """ - from sage.tensor.modules.comp import (Components, CompWithSym, - CompFullySym, CompFullyAntiSym) from sage.manifolds.differentiable.tensorfield_paral import TensorFieldParal + from sage.tensor.modules.comp import ( + CompFullyAntiSym, + CompFullySym, + Components, + CompWithSym, + ) vmodule = tensor.base_module() dest_map = vmodule.destination_map() dom1 = tensor.domain() diff --git a/src/sage/manifolds/differentiable/tangent_space.py b/src/sage/manifolds/differentiable/tangent_space.py index 99169dad572..4b90e711a79 100644 --- a/src/sage/manifolds/differentiable/tangent_space.py +++ b/src/sage/manifolds/differentiable/tangent_space.py @@ -24,6 +24,7 @@ # the License, or (at your option) any later version. # http://www.gnu.org/licenses/ #****************************************************************************** +from __future__ import annotations from typing import TYPE_CHECKING From 10343a1acfb6e89fe5501216179c275df93e8ee1 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Wed, 7 Dec 2022 21:16:51 -0800 Subject: [PATCH 142/249] sagelib: Add typing_extensions as a dependency --- build/pkgs/sagelib/dependencies | 2 +- src/requirements.txt.m4 | 1 + src/setup.cfg.m4 | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/build/pkgs/sagelib/dependencies b/build/pkgs/sagelib/dependencies index abf21122c87..557feb79e6a 100644 --- a/build/pkgs/sagelib/dependencies +++ b/build/pkgs/sagelib/dependencies @@ -1,4 +1,4 @@ -FORCE $(SCRIPTS) arb boost_cropped $(BLAS) brial cliquer cypari cysignals cython ecl eclib ecm flint libgd gap giac givaro glpk gmpy2 gsl iml jinja2 jupyter_core lcalc lrcalc_python libbraiding libhomfly libpng linbox m4ri m4rie memory_allocator mpc mpfi mpfr $(MP_LIBRARY) ntl numpy pari pip pkgconfig planarity ppl pplpy primesieve primecount primecountpy pycygwin $(PYTHON) requests rw sage_conf singular symmetrica $(PCFILES) | $(PYTHON_TOOLCHAIN) sage_setup +FORCE $(SCRIPTS) arb boost_cropped $(BLAS) brial cliquer cypari cysignals cython ecl eclib ecm flint libgd gap giac givaro glpk gmpy2 gsl iml jinja2 jupyter_core lcalc lrcalc_python libbraiding libhomfly libpng linbox m4ri m4rie memory_allocator mpc mpfi mpfr $(MP_LIBRARY) ntl numpy pari pip pkgconfig planarity ppl pplpy primesieve primecount primecountpy pycygwin $(PYTHON) requests rw sage_conf singular symmetrica typing_extensions $(PCFILES) | $(PYTHON_TOOLCHAIN) sage_setup ---------- All lines of this file are ignored except the first. diff --git a/src/requirements.txt.m4 b/src/requirements.txt.m4 index a6cba21cc7e..21a67e347aa 100644 --- a/src/requirements.txt.m4 +++ b/src/requirements.txt.m4 @@ -32,6 +32,7 @@ pplpy==esyscmd(`printf $(sed "s/[.]p.*//;" ../pplpy/package-version.txt)') primecountpy==esyscmd(`printf $(sed "s/[.]p.*//;" ../primecountpy/package-version.txt)') pycygwin==esyscmd(`printf $(sed "s/[.]p.*//;" ../pycygwin/package-version.txt)'); sys_platform == 'cygwin' requests==esyscmd(`printf $(sed "s/[.]p.*//;" ../requests/package-version.txt)') +typing_extensions==esyscmd(`printf $(sed "s/[.]p.*//;" ../typing_extensions/package-version.txt)') dnl From Makefile.in: SAGERUNTIME ipython==esyscmd(`printf $(sed "s/[.]p.*//;" ../ipython/package-version.txt)') diff --git a/src/setup.cfg.m4 b/src/setup.cfg.m4 index 9f69af385e9..be4fbbf40f2 100644 --- a/src/setup.cfg.m4 +++ b/src/setup.cfg.m4 @@ -48,6 +48,7 @@ dnl From build/pkgs/sagelib/dependencies pplpy \ primecountpy \ requests \ + typing_extensions \ | sed "2,\$s/^/ /;"')dnl' dnl From Makefile.in: SAGERUNTIME esyscmd(`sage-get-system-packages install-requires \ From f7f14d1d8d809da592daa5ad6f5b43ceb278f31a Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Thu, 8 Dec 2022 09:41:03 -0800 Subject: [PATCH 143/249] src/doc/en/developer/coding_in_python.rst: Mention typing_extensions --- src/doc/en/developer/coding_in_python.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/doc/en/developer/coding_in_python.rst b/src/doc/en/developer/coding_in_python.rst index 55633c8a029..9240193d1f6 100644 --- a/src/doc/en/developer/coding_in_python.rst +++ b/src/doc/en/developer/coding_in_python.rst @@ -33,8 +33,8 @@ using one of two mechanisms: Sage library code that uses type annotations should include this ``__future__`` import and follow PEP 563. -- The Sage distribution includes the backport packages ``importlib_metadata`` - and ``importlib_resources``. +- The Sage distribution includes the backport packages ``importlib_metadata``, + ``importlib_resources``, and ``typing_extensions``. Meta-ticket :trac:`29756` keeps track of newer Python features and serves as a starting point for discussions on how to make use of them in the From feaa5d0c8112598dcca5781d8bb951cb7b6fa3be Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Thu, 8 Dec 2022 09:46:17 -0800 Subject: [PATCH 144/249] sagelib: Add importlib_metadata, importlib_resources as dependencies --- build/pkgs/sagelib/dependencies | 2 +- src/doc/en/developer/coding_in_python.rst | 5 +++-- src/requirements.txt.m4 | 2 ++ src/setup.cfg.m4 | 2 ++ 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/build/pkgs/sagelib/dependencies b/build/pkgs/sagelib/dependencies index 557feb79e6a..9b8c062d3c3 100644 --- a/build/pkgs/sagelib/dependencies +++ b/build/pkgs/sagelib/dependencies @@ -1,4 +1,4 @@ -FORCE $(SCRIPTS) arb boost_cropped $(BLAS) brial cliquer cypari cysignals cython ecl eclib ecm flint libgd gap giac givaro glpk gmpy2 gsl iml jinja2 jupyter_core lcalc lrcalc_python libbraiding libhomfly libpng linbox m4ri m4rie memory_allocator mpc mpfi mpfr $(MP_LIBRARY) ntl numpy pari pip pkgconfig planarity ppl pplpy primesieve primecount primecountpy pycygwin $(PYTHON) requests rw sage_conf singular symmetrica typing_extensions $(PCFILES) | $(PYTHON_TOOLCHAIN) sage_setup +FORCE $(SCRIPTS) arb boost_cropped $(BLAS) brial cliquer cypari cysignals cython ecl eclib ecm flint libgd gap giac givaro glpk gmpy2 gsl iml importlib_metadata importlib_resources jinja2 jupyter_core lcalc lrcalc_python libbraiding libhomfly libpng linbox m4ri m4rie memory_allocator mpc mpfi mpfr $(MP_LIBRARY) ntl numpy pari pip pkgconfig planarity ppl pplpy primesieve primecount primecountpy pycygwin $(PYTHON) requests rw sage_conf singular symmetrica typing_extensions $(PCFILES) | $(PYTHON_TOOLCHAIN) sage_setup ---------- All lines of this file are ignored except the first. diff --git a/src/doc/en/developer/coding_in_python.rst b/src/doc/en/developer/coding_in_python.rst index 9240193d1f6..5cfa03d9f30 100644 --- a/src/doc/en/developer/coding_in_python.rst +++ b/src/doc/en/developer/coding_in_python.rst @@ -33,8 +33,9 @@ using one of two mechanisms: Sage library code that uses type annotations should include this ``__future__`` import and follow PEP 563. -- The Sage distribution includes the backport packages ``importlib_metadata``, - ``importlib_resources``, and ``typing_extensions``. +- Backport packages ``importlib_metadata``, ``importlib_resources``, and + ``typing_extensions``; the Sage library declares these packages as + dependencies. Meta-ticket :trac:`29756` keeps track of newer Python features and serves as a starting point for discussions on how to make use of them in the diff --git a/src/requirements.txt.m4 b/src/requirements.txt.m4 index 21a67e347aa..346ea3c6301 100644 --- a/src/requirements.txt.m4 +++ b/src/requirements.txt.m4 @@ -20,6 +20,8 @@ dnl ... but building bdist_wheel of cypari2 fails with recent pip... https://git cysignals==esyscmd(`printf $(sed "s/[.]p.*//;" ../cysignals/package-version.txt)') Cython==esyscmd(`printf $(sed "s/[.]p.*//;" ../cython/package-version.txt)') gmpy2==esyscmd(`printf $(sed "s/[.]p.*//;" ../gmpy2/package-version.txt)') +importlib_metadata==esyscmd(`printf $(sed "s/[.]p.*//;" ../importlib_metadata/package-version.txt)') +importlib_resources==esyscmd(`printf $(sed "s/[.]p.*//;" ../importlib_resources/package-version.txt)') jinja2==esyscmd(`printf $(sed "s/[.]p.*//;" ../jinja2/package-version.txt)') dnl ... for sage_setup.autogen.interpreters jupyter_core==esyscmd(`printf $(sed "s/[.]p.*//;" ../jupyter_core/package-version.txt)') diff --git a/src/setup.cfg.m4 b/src/setup.cfg.m4 index be4fbbf40f2..bbd9133902e 100644 --- a/src/setup.cfg.m4 +++ b/src/setup.cfg.m4 @@ -39,6 +39,8 @@ dnl From build/pkgs/sagelib/dependencies cysignals \ cython \ gmpy2 \ + importlib_metadata \ + importlib_resources \ jinja2 \ jupyter_core \ lrcalc_python \ From 89e86114e44706c36dbb1af1767a83aea37655db Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Thu, 8 Dec 2022 10:11:58 -0800 Subject: [PATCH 145/249] build/pkgs/{importlib_metadata,importlib_resources,typing_extensions}/install-requires.txt: Set lower bounds for Python 3.11 features --- build/pkgs/importlib_metadata/SPKG.rst | 10 ++++--- .../importlib_metadata/install-requires.txt | 4 ++- .../importlib_resources/install-requires.txt | 4 ++- .../typing_extensions/install-requires.txt | 4 ++- src/doc/en/developer/coding_in_python.rst | 26 ++++++++++++------- 5 files changed, 31 insertions(+), 17 deletions(-) diff --git a/build/pkgs/importlib_metadata/SPKG.rst b/build/pkgs/importlib_metadata/SPKG.rst index d1b490d0082..c9b0bae0392 100644 --- a/build/pkgs/importlib_metadata/SPKG.rst +++ b/build/pkgs/importlib_metadata/SPKG.rst @@ -4,17 +4,19 @@ importlib_metadata: Library to access the metadata for a Python package Description ----------- -importlib_metadata is a library to access the metadata for a Python package. -It is intended to be ported to Python 3.8. +This is a backport package, supplying access to the functionality of +``importlib.metadata`` including improvements added to subsequent Python versions. + License ------- -Apache Software License +Apache Software License Upstream Contact ---------------- -Home page: http://importlib-metadata.readthedocs.io/ +- https://pypi.org/project/importlib-metadata/ +- http://importlib-metadata.readthedocs.io/ diff --git a/build/pkgs/importlib_metadata/install-requires.txt b/build/pkgs/importlib_metadata/install-requires.txt index 715fbb76b3a..7a0ebd24888 100644 --- a/build/pkgs/importlib_metadata/install-requires.txt +++ b/build/pkgs/importlib_metadata/install-requires.txt @@ -1 +1,3 @@ -importlib_metadata >=1.7.0 +# According to https://pypi.org/project/importlib-metadata/, +# 4.13 provides the features of Python 3.11 importlib.metadata +importlib_metadata >=4.13 diff --git a/build/pkgs/importlib_resources/install-requires.txt b/build/pkgs/importlib_resources/install-requires.txt index 2b0146fc669..632e716f5a0 100644 --- a/build/pkgs/importlib_resources/install-requires.txt +++ b/build/pkgs/importlib_resources/install-requires.txt @@ -1 +1,3 @@ -importlib-resources +# According to https://pypi.org/project/importlib-resources/, +# version 5.7 provides the features of Python 3.11 importlib.resources +importlib_resources >= 5.7 diff --git a/build/pkgs/typing_extensions/install-requires.txt b/build/pkgs/typing_extensions/install-requires.txt index 3492fa57976..22c3dd116b6 100644 --- a/build/pkgs/typing_extensions/install-requires.txt +++ b/build/pkgs/typing_extensions/install-requires.txt @@ -1 +1,3 @@ -typing-extensions +# According to https://github.com/python/typing_extensions/blob/main/CHANGELOG.md, +# version 4.4.0 adds another Python 3.11 typing backport +typing_extensions >= 4.4.0 diff --git a/src/doc/en/developer/coding_in_python.rst b/src/doc/en/developer/coding_in_python.rst index 5cfa03d9f30..9b4b5639b68 100644 --- a/src/doc/en/developer/coding_in_python.rst +++ b/src/doc/en/developer/coding_in_python.rst @@ -26,16 +26,22 @@ doctests. Some key language and library features have been backported to Python 3.8 using one of two mechanisms: -- ``from __future__ import annotations`` (see - https://docs.python.org/3.7/library/__future__.html) modernizes type - annotations according to PEP 563 (Postponed evaluation of - annotations, see https://www.python.org/dev/peps/pep-0563). All - Sage library code that uses type annotations should include this - ``__future__`` import and follow PEP 563. - -- Backport packages ``importlib_metadata``, ``importlib_resources``, and - ``typing_extensions``; the Sage library declares these packages as - dependencies. +- ``from __future__ import annotations`` (see Python reference for + `__future__ `_) + modernizes type annotations according to `PEP 563 + `_ (Postponed evaluation + of annotations). All Sage library code that uses type annotations + should include this ``__future__`` import and follow PEP 563. + +- Backport packages + - `importlib_metadata <../reference/spkg/importlib_metadata>`_ + (to be used in place of ``importlib.metadata``), + - `importlib_resources <../reference/spkg/importlib_resources>`_ + (to be used in place of ``importlib.resources``), + - `typing_extensions <../reference/spkg/typing_extensions>`_ + (to be used in place of ``typing``). + The Sage library declares these packages as dependencies and ensures that + versions that provide features of Python 3.11 are available. Meta-ticket :trac:`29756` keeps track of newer Python features and serves as a starting point for discussions on how to make use of them in the From 5e6c7cb9daa29748d6f5965f7f85928ff1d6b612 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Thu, 8 Dec 2022 14:34:22 -0800 Subject: [PATCH 146/249] src/doc/en/developer/coding_in_python.rst: Fix markup --- src/doc/en/developer/coding_in_python.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/doc/en/developer/coding_in_python.rst b/src/doc/en/developer/coding_in_python.rst index 9b4b5639b68..22447c04512 100644 --- a/src/doc/en/developer/coding_in_python.rst +++ b/src/doc/en/developer/coding_in_python.rst @@ -34,12 +34,14 @@ using one of two mechanisms: should include this ``__future__`` import and follow PEP 563. - Backport packages + - `importlib_metadata <../reference/spkg/importlib_metadata>`_ (to be used in place of ``importlib.metadata``), - `importlib_resources <../reference/spkg/importlib_resources>`_ (to be used in place of ``importlib.resources``), - `typing_extensions <../reference/spkg/typing_extensions>`_ (to be used in place of ``typing``). + The Sage library declares these packages as dependencies and ensures that versions that provide features of Python 3.11 are available. From 3be50c1130b812d3baf994786abf641e19036ee0 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 25 Feb 2023 10:56:10 -0800 Subject: [PATCH 147/249] build/pkgs/typing_extensions: Update to 4.5.0 --- build/pkgs/typing_extensions/checksums.ini | 6 +++--- build/pkgs/typing_extensions/package-version.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/pkgs/typing_extensions/checksums.ini b/build/pkgs/typing_extensions/checksums.ini index d6cbf2607c0..83d8ece48e9 100644 --- a/build/pkgs/typing_extensions/checksums.ini +++ b/build/pkgs/typing_extensions/checksums.ini @@ -1,5 +1,5 @@ tarball=typing_extensions-VERSION.tar.gz -sha1=9dbf798784009efaef80c8198a75b2a9e519eb95 -md5=5cfcb56ea6fc4972c3600c0030f4d136 -cksum=386983249 +sha1=544dc62dfcd6871ad6ca72f840ecd1b8c29ccf96 +md5=03a01698ace869506cab825697dfb7e1 +cksum=106787813 upstream_url=https://pypi.io/packages/source/t/typing_extensions/typing_extensions-VERSION.tar.gz diff --git a/build/pkgs/typing_extensions/package-version.txt b/build/pkgs/typing_extensions/package-version.txt index fdc6698807a..a84947d6ffe 100644 --- a/build/pkgs/typing_extensions/package-version.txt +++ b/build/pkgs/typing_extensions/package-version.txt @@ -1 +1 @@ -4.4.0 +4.5.0 From a5228132eb102013f08bfd83f5080d9aae2f4f85 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 25 Feb 2023 10:56:22 -0800 Subject: [PATCH 148/249] build/pkgs/importlib_metadata: Update to 6.0.0 --- build/pkgs/importlib_metadata/checksums.ini | 6 +++--- build/pkgs/importlib_metadata/package-version.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/pkgs/importlib_metadata/checksums.ini b/build/pkgs/importlib_metadata/checksums.ini index 4d326297be6..dfcaf149224 100644 --- a/build/pkgs/importlib_metadata/checksums.ini +++ b/build/pkgs/importlib_metadata/checksums.ini @@ -1,5 +1,5 @@ tarball=importlib_metadata-VERSION.tar.gz -sha1=4a49e8c6d8e2eb02e9ea821444b5ba153d8c34a6 -md5=56d34f2e854bb0f318baa9e47aba3439 -cksum=3438247256 +sha1=b9b1f85f9d7ea8464990aa48078c2bc18c88b17d +md5=a7d0734680f70b03368b69fe3e89dc56 +cksum=579037727 upstream_url=https://pypi.io/packages/source/i/importlib_metadata/importlib_metadata-VERSION.tar.gz diff --git a/build/pkgs/importlib_metadata/package-version.txt b/build/pkgs/importlib_metadata/package-version.txt index 831446cbd27..09b254e90c6 100644 --- a/build/pkgs/importlib_metadata/package-version.txt +++ b/build/pkgs/importlib_metadata/package-version.txt @@ -1 +1 @@ -5.1.0 +6.0.0 From 1467860e79e0fc41f421f10f8d15e242f1c00259 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 25 Feb 2023 10:56:28 -0800 Subject: [PATCH 149/249] build/pkgs/importlib_resources: Update to 5.12.0 --- build/pkgs/importlib_resources/checksums.ini | 6 +++--- build/pkgs/importlib_resources/package-version.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/pkgs/importlib_resources/checksums.ini b/build/pkgs/importlib_resources/checksums.ini index 9885db7ffb4..ac6747edaec 100644 --- a/build/pkgs/importlib_resources/checksums.ini +++ b/build/pkgs/importlib_resources/checksums.ini @@ -1,5 +1,5 @@ tarball=importlib_resources-VERSION.tar.gz -sha1=a8c7a6a976fffb9841c548230cb633eda3111c4f -md5=8afc48c5f3a7c4ba63cb38163340d78b -cksum=196052500 +sha1=b793f4fb94148414679e3192e731fef25e3e9bc9 +md5=5457c25b89b19fcaca8af03e541dfa41 +cksum=527125049 upstream_url=https://pypi.io/packages/source/i/importlib_resources/importlib_resources-VERSION.tar.gz diff --git a/build/pkgs/importlib_resources/package-version.txt b/build/pkgs/importlib_resources/package-version.txt index 509b0b618ad..dd0ad7ae60c 100644 --- a/build/pkgs/importlib_resources/package-version.txt +++ b/build/pkgs/importlib_resources/package-version.txt @@ -1 +1 @@ -5.10.0 +5.12.0 From 0b13dfcd50129072aa08d5daba90c96b4caffc09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= Date: Tue, 21 Feb 2023 17:03:08 -0300 Subject: [PATCH 150/249] #26968: workaround for an ecl race in maxima init When maxima is initialized a bug in ecl implementation of `ensure-directories-exist` might result in a runtime error. As a workaround, in case we get a runtime error we use python to create the directory and then continue with maxima initialization. Note that for normal usage the directory will already exist within the user's `DOT_SAGE` so this code will almost never run. However, when running doctests on CI this occasionally triggers. --- src/sage/interfaces/maxima_lib.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/sage/interfaces/maxima_lib.py b/src/sage/interfaces/maxima_lib.py index 61cac593add..9459cb70334 100644 --- a/src/sage/interfaces/maxima_lib.py +++ b/src/sage/interfaces/maxima_lib.py @@ -136,7 +136,23 @@ ecl_eval("(setq $nolabels t))") ecl_eval("(defvar *MAXIMA-LANG-SUBDIR* NIL)") ecl_eval("(set-locale-subdir)") -ecl_eval("(set-pathnames)") + +try: + ecl_eval("(set-pathnames)") +except RuntimeError: + # Recover from :trac:`26968` by creating `*maxima-objdir*` here. + # This cannot be done before calling `(set-pathnames)` since + # `*maxima-objdir*` is computed there. + # We use python `os.makedirs()` which is immune to the race. + # Using `(ensure-directories-exist ...)` in lisp would be + # subject to the same race condition and since `*maxima-objdir*` + # has multiple components this is quite plausible to happen. + maxima_objdir = ecl_eval("*maxima-objdir*").python()[1:-1] + import os + os.makedirs(maxima_objdir, exist_ok=True) + # Call `(set-pathnames)` again to complete its job. + ecl_eval("(set-pathnames)") + ecl_eval("(defun add-lineinfo (x) x)") ecl_eval('(defun principal nil (cond ($noprincipal (diverg)) ((not pcprntd) (merror "Divergent Integral"))))') ecl_eval("(remprop 'mfactorial 'grind)") # don't use ! for factorials (#11539) From 2b155c77e43e2901f0858854d1f253a1e44b5fde Mon Sep 17 00:00:00 2001 From: Andy Howell Date: Sun, 5 May 2019 16:44:45 -0500 Subject: [PATCH 151/249] Remove directories leftover from improper shutdown --- src/bin/sage-cleaner | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/bin/sage-cleaner b/src/bin/sage-cleaner index e2e578eec60..dc7d8f0482e 100755 --- a/src/bin/sage-cleaner +++ b/src/bin/sage-cleaner @@ -99,6 +99,15 @@ def cleanup(): return len(pid_list) +def cleanup_cruft(): + """ remove directories leftover from improper shutdown """ + tmp_dirs = os.listdir(SAGE_TMP_ROOT) + for dir_entry in tmp_dirs: + baddir = os.path.join(SAGE_TMP_ROOT, dir_entry) + if os.path.isdir(baddir): + logger.warning('Removing old directory %s from SAGE_TMP_ROOT', baddir) + rm_rf(baddir) + def kill_spawned_jobs(jobfile, parent_pid): logger.info("Killing %s's spawned jobs", parent_pid) killed_them_all = True @@ -193,6 +202,7 @@ if __name__ == '__main__': setup_daemon() fix_old_mistakes() logger.info("Starting sage-cleaner with PID %s", os.getpid()) + cleanup_cruft() if len(sys.argv) > 1: wait = int(sys.argv[1]) From 1488b7b5631e6f88109372da71118c931bcd7b84 Mon Sep 17 00:00:00 2001 From: sheerluck Date: Sun, 26 Feb 2023 14:15:53 +0300 Subject: [PATCH 152/249] add a doctest (#35031) --- src/sage/plot/arrow.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/sage/plot/arrow.py b/src/sage/plot/arrow.py index ce63c175d62..0d09c2881d9 100644 --- a/src/sage/plot/arrow.py +++ b/src/sage/plot/arrow.py @@ -473,6 +473,13 @@ def arrow(tailpoint=None, headpoint=None, **kwds): sphinx_plot(arrow((0,0,1), (1,1,1))) + TESTS: + + Check that :trac:`35031` is fixed:: + + sage: arrow((0,0), (0,0), linestyle='dashed') + Graphics object consisting of 1 graphics primitive + """ try: return arrow2d(tailpoint, headpoint, **kwds) From 436e2edf80b3b0c2ac015ee42422c883372bfa9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Chapoton?= Date: Sun, 26 Feb 2023 15:40:07 +0100 Subject: [PATCH 153/249] fixing some E502 (unnecessary backslash) in pyx files --- .../automorphism_group_canonical_label.pyx | 7 +++--- .../partn_ref/canonical_augmentation.pyx | 8 ++++--- .../perm_gps/partn_ref/double_coset.pyx | 7 +++--- src/sage/libs/mpmath/ext_impl.pyx | 12 +++++----- src/sage/libs/mpmath/ext_main.pyx | 8 ++++--- src/sage/libs/mpmath/utils.pyx | 2 +- src/sage/libs/ntl/ntl_ZZ.pyx | 4 ++-- src/sage/rings/complex_mpc.pyx | 8 +++---- src/sage/rings/finite_rings/integer_mod.pyx | 4 ++-- src/sage/rings/finite_rings/residue_field.pyx | 4 ++-- src/sage/rings/morphism.pyx | 13 ++++++----- src/sage/rings/padics/padic_printing.pyx | 23 +++++++++---------- src/sage/rings/polynomial/pbori/pbori.pyx | 7 +++--- src/sage/rings/polynomial/plural.pyx | 2 +- .../polynomial/polynomial_zmod_flint.pyx | 2 +- 15 files changed, 58 insertions(+), 53 deletions(-) diff --git a/src/sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pyx b/src/sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pyx index ad30101e161..7cc848695d3 100644 --- a/src/sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pyx +++ b/src/sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pyx @@ -393,9 +393,10 @@ cdef void deallocate_agcl_work_space(agcl_work_space *work_space): cdef aut_gp_and_can_lab *get_aut_gp_and_can_lab(void *S, PartitionStack *partition, int n, bint (*all_children_are_equivalent)(PartitionStack *PS, void *S), - int (*refine_and_return_invariant)\ - (PartitionStack *PS, void *S, int *cells_to_refine_by, int ctrb_len), - int (*compare_structures)(int *gamma_1, int *gamma_2, void *S1, void *S2, int degree), + int (*refine_and_return_invariant)(PartitionStack *PS, void *S, + int *cells_to_refine_by, int ctrb_len), + int (*compare_structures)(int *gamma_1, int *gamma_2, void *S1, void *S2, + int degree), bint canonical_label, StabilizerChain *input_group, agcl_work_space *work_space_prealloc, aut_gp_and_can_lab *output_prealloc) except NULL: """ diff --git a/src/sage/groups/perm_gps/partn_ref/canonical_augmentation.pyx b/src/sage/groups/perm_gps/partn_ref/canonical_augmentation.pyx index ac4c40b9b34..41d132d8fb7 100644 --- a/src/sage/groups/perm_gps/partn_ref/canonical_augmentation.pyx +++ b/src/sage/groups/perm_gps/partn_ref/canonical_augmentation.pyx @@ -380,11 +380,13 @@ cdef void deallocate_cgd(canonical_generator_data *cgd): sig_free(cgd.parent_stack) sig_free(cgd) + cdef iterator *setup_canonical_generator(int degree, bint (*all_children_are_equivalent)(PartitionStack *PS, void *S), - int (*refine_and_return_invariant)\ - (PartitionStack *PS, void *S, int *cells_to_refine_by, int ctrb_len), - int (*compare_structures)(int *gamma_1, int *gamma_2, void *S1, void *S2, int degree), + int (*refine_and_return_invariant)(PartitionStack *PS, void *S, + int *cells_to_refine_by, int ctrb_len), + int (*compare_structures)(int *gamma_1, int *gamma_2, void *S1, void *S2, + int degree), int (*generate_children)(void *, aut_gp_and_can_lab *, iterator *), void *(*apply_augmentation)(void *, void *, void *, int *, bint *), void (*free_object)(void *), diff --git a/src/sage/groups/perm_gps/partn_ref/double_coset.pyx b/src/sage/groups/perm_gps/partn_ref/double_coset.pyx index 3f726879292..1d8aa42c28d 100644 --- a/src/sage/groups/perm_gps/partn_ref/double_coset.pyx +++ b/src/sage/groups/perm_gps/partn_ref/double_coset.pyx @@ -268,9 +268,10 @@ cdef void deallocate_dc_work_space(dc_work_space *work_space): cdef int double_coset(void *S1, void *S2, PartitionStack *partition1, int *ordering2, int n, bint (*all_children_are_equivalent)(PartitionStack *PS, void *S), - int (*refine_and_return_invariant)\ - (PartitionStack *PS, void *S, int *cells_to_refine_by, int ctrb_len), - int (*compare_structures)(int *gamma_1, int *gamma_2, void *S1, void *S2, int degree), + int (*refine_and_return_invariant)(PartitionStack *PS, void *S, + int *cells_to_refine_by, int ctrb_len), + int (*compare_structures)(int *gamma_1, int *gamma_2, void *S1, void *S2, + int degree), StabilizerChain *input_group, dc_work_space *work_space_prealloc, int *isom) except -1: """ diff --git a/src/sage/libs/mpmath/ext_impl.pyx b/src/sage/libs/mpmath/ext_impl.pyx index 15557561806..05653d5b25b 100644 --- a/src/sage/libs/mpmath/ext_impl.pyx +++ b/src/sage/libs/mpmath/ext_impl.pyx @@ -1847,8 +1847,8 @@ cdef MPF_complex_pow_int(MPF *zre, MPF *zim, MPF *xre, MPF *xim, mpz_t n, MPopts xret = MPF_to_tuple(xre) ximt = MPF_to_tuple(xim) from mpmath.libmp import mpc_pow_int - vr, vi = mpc_pow_int((xret, ximt), mpzi(n), \ - opts.prec, rndmode_to_python(opts.rounding)) + vr, vi = mpc_pow_int((xret, ximt), mpzi(n), + opts.prec, rndmode_to_python(opts.rounding)) MPF_set_tuple(zre, vr) MPF_set_tuple(zim, vi) @@ -1892,8 +1892,8 @@ cdef MPF_complex_pow_re(MPF *zre, MPF *zim, MPF *xre, MPF *xim, MPF *y, MPopts o ximt = MPF_to_tuple(xim) yret = MPF_to_tuple(y) from mpmath.libmp import mpc_pow_mpf, fzero - vr, vi = mpc_pow_mpf((xret, ximt), yret, \ - opts.prec, rndmode_to_python(opts.rounding)) + vr, vi = mpc_pow_mpf((xret, ximt), yret, + opts.prec, rndmode_to_python(opts.rounding)) MPF_set_tuple(zre, vr) MPF_set_tuple(zim, vi) @@ -1910,8 +1910,8 @@ cdef MPF_complex_pow(MPF *zre, MPF *zim, MPF *xre, MPF *xim, MPF *yre, MPF *yim, yret = MPF_to_tuple(yre) yimt = MPF_to_tuple(yim) from mpmath.libmp import mpc_pow - vr, vi = mpc_pow((xret,ximt), (yret,yimt), \ - opts.prec, rndmode_to_python(opts.rounding)) + vr, vi = mpc_pow((xret, ximt), (yret, yimt), + opts.prec, rndmode_to_python(opts.rounding)) MPF_set_tuple(zre, vr) MPF_set_tuple(zim, vi) diff --git a/src/sage/libs/mpmath/ext_main.pyx b/src/sage/libs/mpmath/ext_main.pyx index 81abdf0cd4b..93b58131b39 100644 --- a/src/sage/libs/mpmath/ext_main.pyx +++ b/src/sage/libs/mpmath/ext_main.pyx @@ -2602,13 +2602,15 @@ def hypsum_internal(int p, int q, param_types, str ztype, coeffs, z, sage: print(mp.hyp1f1(1,2,3)) 6.36184564106256 - TODO: convert mpf/mpc parameters to fixed-point numbers here - instead of converting to tuples within MPF_hypsum. + .. TODO:: + + convert mpf/mpc parameters to fixed-point numbers here + instead of converting to tuples within MPF_hypsum. """ cdef mpf f cdef mpc c c = mpc.__new__(mpc) - have_complex, magn = MPF_hypsum(&c.re, &c.im, p, q, param_types, \ + have_complex, magn = MPF_hypsum(&c.re, &c.im, p, q, param_types, ztype, coeffs, z, prec, wp, epsshift, magnitude_check, kwargs) if have_complex: v = c diff --git a/src/sage/libs/mpmath/utils.pyx b/src/sage/libs/mpmath/utils.pyx index 466334e929a..83f8108be08 100644 --- a/src/sage/libs/mpmath/utils.pyx +++ b/src/sage/libs/mpmath/utils.pyx @@ -128,7 +128,7 @@ cpdef normalize(long sign, Integer man, exp, long bc, long prec, str rnd): res = PY_NEW(Integer) if shift > 0: if rnd == 'n': - if mpz_tstbit(man.value, shift-1) and (mpz_tstbit(man.value, shift)\ + if mpz_tstbit(man.value, shift-1) and (mpz_tstbit(man.value, shift) or (mpz_scan1(man.value, 0) < (shift-1))): mpz_cdiv_q_2exp(res.value, man.value, shift) else: diff --git a/src/sage/libs/ntl/ntl_ZZ.pyx b/src/sage/libs/ntl/ntl_ZZ.pyx index 48a329f3055..8786675e6b9 100644 --- a/src/sage/libs/ntl/ntl_ZZ.pyx +++ b/src/sage/libs/ntl/ntl_ZZ.pyx @@ -93,8 +93,8 @@ cdef class ntl_ZZ(): v = str(v) if not v: v = '0' - if not ((v[0].isdigit() or v[0] == '-') and \ - (v[1:-1].isdigit() or (len(v) <= 2)) and \ + if not ((v[0].isdigit() or v[0] == '-') and + (v[1:-1].isdigit() or (len(v) <= 2)) and (v[-1].isdigit() or (v[-1].lower() in ['l','r']))): raise ValueError("invalid integer: %s" % v) ccreadstr(self.x, v) diff --git a/src/sage/rings/complex_mpc.pyx b/src/sage/rings/complex_mpc.pyx index 456883bb17a..62154af1e96 100644 --- a/src/sage/rings/complex_mpc.pyx +++ b/src/sage/rings/complex_mpc.pyx @@ -313,8 +313,8 @@ cdef class MPComplexField_class(sage.rings.ring.Field): try: n = _mpc_rounding_modes.index(rnd) except ValueError: - raise ValueError("rnd (=%s) must be of the form RNDxy"\ - "where x and y are one of N, Z, U, D" % rnd) + raise ValueError("rnd (=%s) must be of the form RNDxy" + "where x and y are one of N, Z, U, D" % rnd) self.__rnd = n self.__rnd_str = rnd @@ -1158,8 +1158,8 @@ cdef class MPComplexNumber(sage.structure.element.FieldElement): TypeError: can...t convert complex to float; use abs(z) """ if mpfr_zero_p(self.value.im): - return mpfr_get_d(self.value.re,\ - rnd_re((self._parent).__rnd)) + return mpfr_get_d(self.value.re, + rnd_re((self._parent).__rnd)) else: raise TypeError("can't convert complex to float; use abs(z)") diff --git a/src/sage/rings/finite_rings/integer_mod.pyx b/src/sage/rings/finite_rings/integer_mod.pyx index 97ae92d867b..8e723be71b7 100644 --- a/src/sage/rings/finite_rings/integer_mod.pyx +++ b/src/sage/rings/finite_rings/integer_mod.pyx @@ -779,14 +779,14 @@ cdef class IntegerMod_abstract(FiniteRingElement): na = a_red.multiplicative_order() nb = b_red.multiplicative_order() if not na.divides(nb): # cannot be a power - raise ValueError(f"no logarithm of {self} found to base {b} modulo {self.modulus()}" \ + raise ValueError(f"no logarithm of {self} found to base {b} modulo {self.modulus()}" + (f" (no solution modulo {q})" if q != self.modulus() else "")) if p == 2 and e >= 3: # (ZZ/2^e)* is not cyclic; must not give unsolvable DLPs to Pari try: v = discrete_log(a_red, b_red, nb) except ValueError: - raise ValueError(f"no logarithm of {self} found to base {b} modulo {self.modulus()}" \ + raise ValueError(f"no logarithm of {self} found to base {b} modulo {self.modulus()}" + (f" (no solution modulo {q})" if q != self.modulus() else "")) else: try: diff --git a/src/sage/rings/finite_rings/residue_field.pyx b/src/sage/rings/finite_rings/residue_field.pyx index 83436bd6582..62ab12ad8bd 100644 --- a/src/sage/rings/finite_rings/residue_field.pyx +++ b/src/sage/rings/finite_rings/residue_field.pyx @@ -1579,8 +1579,8 @@ class ResidueFiniteField_prime_modn(ResidueField_generic, FiniteField_prime_modn self._populate_coercion_lists_(coerce_list=coerce_list, convert_list=[ReductionMap(K, self, None, None, None, None)]) # could be special-cased a bit more. else: PBinv = PB**(-1) - self._populate_coercion_lists_(coerce_list=[IntegerMod_to_IntegerMod(GF(intp), self), Integer_to_IntegerMod(self), Int_to_IntegerMod(self), ResidueFieldHomomorphism_global(OK, self, to_vs, to_order, PB, PBinv)], \ - convert_list=[ReductionMap(K, self, to_vs, to_order, PB, PBinv)]) + self._populate_coercion_lists_(coerce_list=[IntegerMod_to_IntegerMod(GF(intp), self), Integer_to_IntegerMod(self), Int_to_IntegerMod(self), ResidueFieldHomomorphism_global(OK, self, to_vs, to_order, PB, PBinv)], + convert_list=[ReductionMap(K, self, to_vs, to_order, PB, PBinv)]) def _element_constructor_(self, x): """ diff --git a/src/sage/rings/morphism.pyx b/src/sage/rings/morphism.pyx index f7f83974425..4b83e1b03b7 100644 --- a/src/sage/rings/morphism.pyx +++ b/src/sage/rings/morphism.pyx @@ -2035,8 +2035,8 @@ cdef class RingHomomorphism_im_gens(RingHomomorphism): """ D = self.domain() ig = self._im_gens - s = '\n'.join(['%s |--> %s'%(D.gen(i), ig[i]) for\ - i in range(D.ngens())]) + s = '\n'.join('{} |--> {}'.format(D.gen(i), ig[i]) + for i in range(D.ngens())) if s and self._base_map is not None: s += '\nwith map of base ring' return s @@ -2866,21 +2866,22 @@ cdef class RingHomomorphism_from_quotient(RingHomomorphism): """ return hash(self.phi) - def _repr_defn(self): + def _repr_defn(self) -> str: """ Used internally for printing this function. EXAMPLES:: - sage: R. = QQ[]; S. = R.quo([x^2,y^2]); f = S.hom([yy,xx]) + sage: R. = QQ[]; S. = R.quo([x^2,y^2]) + sage: f = S.hom([yy,xx]) sage: print(f._repr_defn()) xx |--> yy yy |--> xx """ D = self.domain() ig = self.phi.im_gens() - return '\n'.join(['%s |--> %s'%(D.gen(i), ig[i]) for\ - i in range(D.ngens())]) + return '\n'.join('{} |--> {}'.format(D.gen(i), ig[i]) + for i in range(D.ngens())) cpdef Element _call_(self, x): """ diff --git a/src/sage/rings/padics/padic_printing.pyx b/src/sage/rings/padics/padic_printing.pyx index e989d236c09..bd4715a7859 100644 --- a/src/sage/rings/padics/padic_printing.pyx +++ b/src/sage/rings/padics/padic_printing.pyx @@ -483,18 +483,17 @@ cdef class pAdicPrinter_class(SageObject): sage: P._sep() '&' """ - - return pAdicPrinter, (self.ring, \ - {'mode': self._print_mode(), \ - 'pos': self.pos, \ - 'ram_name': self.ram_name, \ - 'unram_name': self.unram_name, \ - 'var_name': self.var_name, \ - 'max_ram_terms': self.max_ram_terms, \ - 'max_unram_terms': self.max_unram_terms, \ - 'max_terse_terms': self.max_terse_terms, \ - 'sep':self.sep, \ - 'alphabet': self.alphabet, \ + return pAdicPrinter, (self.ring, + {'mode': self._print_mode(), + 'pos': self.pos, + 'ram_name': self.ram_name, + 'unram_name': self.unram_name, + 'var_name': self.var_name, + 'max_ram_terms': self.max_ram_terms, + 'max_unram_terms': self.max_unram_terms, + 'max_terse_terms': self.max_terse_terms, + 'sep':self.sep, + 'alphabet': self.alphabet, 'show_prec': self.show_prec}) def __richcmp__(self, other, op): diff --git a/src/sage/rings/polynomial/pbori/pbori.pyx b/src/sage/rings/polynomial/pbori/pbori.pyx index 7765e87995d..44d28312ee1 100644 --- a/src/sage/rings/polynomial/pbori/pbori.pyx +++ b/src/sage/rings/polynomial/pbori/pbori.pyx @@ -841,8 +841,7 @@ cdef class BooleanPolynomialRing(MPolynomialRing_base): raise TypeError("cannot coerce monomial %s to %s" % (other, self)) elif isinstance(other, BooleanPolynomial) and \ - (((other)\ - ._parent)._pbring.nVariables() <= self._pbring.nVariables()): + (((other)._parent)._pbring.nVariables() <= self._pbring.nVariables()): # try PolyBoRi's built-in coercions if self._pbring.hash() == \ ((other)._parent)._pbring.hash(): @@ -2080,7 +2079,7 @@ class BooleanMonomialMonoid(UniqueRepresentation, Monoid_class): ValueError: cannot convert monomial t*x*y to MonomialMonoid of Boolean PolynomialRing in x, y, z: name t not defined """ if isinstance(other, BooleanMonomial) and \ - ((other)._parent.ngens() <= \ + ((other)._parent.ngens() <= (self._ring)._pbring.nVariables()): try: var_mapping = get_var_mapping(self, other.parent()) @@ -2182,7 +2181,7 @@ class BooleanMonomialMonoid(UniqueRepresentation, Monoid_class): return new_BM_from_PBMonom(self, (self._ring), (other)._pbpoly.lead()) - elif ((other)._pbpoly.nUsedVariables() <= \ + elif ((other)._pbpoly.nUsedVariables() <= (self._ring)._pbring.nVariables()): try: var_mapping = get_var_mapping(self, other) diff --git a/src/sage/rings/polynomial/plural.pyx b/src/sage/rings/polynomial/plural.pyx index d019a89d99e..8839fb92502 100644 --- a/src/sage/rings/polynomial/plural.pyx +++ b/src/sage/rings/polynomial/plural.pyx @@ -1780,7 +1780,7 @@ cdef class NCPolynomial_plural(RingElement): _I = idInit(len(I),1) for f in I: - if not (isinstance(f, NCPolynomial_plural) \ + if not (isinstance(f, NCPolynomial_plural) and (f)._parent is parent): try: f = parent.coerce(f) diff --git a/src/sage/rings/polynomial/polynomial_zmod_flint.pyx b/src/sage/rings/polynomial/polynomial_zmod_flint.pyx index 04c523d9788..e0c1f546f28 100644 --- a/src/sage/rings/polynomial/polynomial_zmod_flint.pyx +++ b/src/sage/rings/polynomial/polynomial_zmod_flint.pyx @@ -727,7 +727,7 @@ cdef class Polynomial_zmod_flint(Polynomial_template): ... ValueError: leading coefficient must be invertible """ - if self.base_ring().characteristic().gcd(\ + if self.base_ring().characteristic().gcd( self.leading_coefficient().lift()) != 1: raise ValueError("leading coefficient must be invertible") cdef Polynomial_zmod_flint res = self._new() From 9e7bf7d379047e38a90dcc1bb52e3294ffd884a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Chapoton?= Date: Mon, 27 Feb 2023 08:46:29 +0100 Subject: [PATCH 154/249] one backslash and some imports removed in pbori --- src/sage/rings/polynomial/pbori/pbori.pyx | 37 +++-------------------- 1 file changed, 4 insertions(+), 33 deletions(-) diff --git a/src/sage/rings/polynomial/pbori/pbori.pyx b/src/sage/rings/polynomial/pbori/pbori.pyx index 44d28312ee1..177fd02b013 100644 --- a/src/sage/rings/polynomial/pbori/pbori.pyx +++ b/src/sage/rings/polynomial/pbori/pbori.pyx @@ -178,7 +178,6 @@ native PolyBoRi counterparts. For instance, sets of points can be represented as tuples of tuples (Sage) or as ``BooleSet`` (PolyBoRi) and naturally the second option is faster. """ - from cpython.object cimport Py_EQ, Py_NE from cython.operator cimport dereference as deref from cysignals.memory cimport sig_malloc, sig_free @@ -1098,13 +1097,11 @@ cdef class BooleanPolynomialRing(MPolynomialRing_base): INPUT: - - ``gens`` - list or tuple of generators - ``coerce`` - bool (default: True) automatically coerce the given polynomials to this ring to form the ideal - EXAMPLES:: sage: P. = BooleanPolynomialRing(3) @@ -1219,7 +1216,6 @@ cdef class BooleanPolynomialRing(MPolynomialRing_base): sage: B = BooleanPolynomialRing(n, 'x') sage: r = B.random_element(terms=(n/2)**2) """ - from sage.rings.integer import Integer from sage.arith.misc import binomial if not vars_set: @@ -1270,7 +1266,6 @@ cdef class BooleanPolynomialRing(MPolynomialRing_base): INPUT: - - ``degree`` - maximum degree - ``monom_counts`` - a list containing total number @@ -1284,7 +1279,6 @@ cdef class BooleanPolynomialRing(MPolynomialRing_base): - ``l`` - number of monomials to generate - EXAMPLES:: sage: P. = BooleanPolynomialRing(3) @@ -1292,8 +1286,6 @@ cdef class BooleanPolynomialRing(MPolynomialRing_base): sage: all(t in [x, y, x*y, P(1)] for t in f.terms()) True """ - from sage.rings.integer import Integer - from sage.rings.integer_ring import ZZ if l == 0: return self._zero_element if l == 1: @@ -1302,10 +1294,10 @@ cdef class BooleanPolynomialRing(MPolynomialRing_base): else: return self._random_monomial_uniform(monom_counts, vars_set) - return self._random_uniform_rec(degree, monom_counts, - vars_set, dfirst, l//2) + \ - self._random_uniform_rec(degree, monom_counts, - vars_set, dfirst, l - l//2) + return (self._random_uniform_rec(degree, monom_counts, + vars_set, dfirst, l // 2) + + self._random_uniform_rec(degree, monom_counts, + vars_set, dfirst, l - l // 2)) def _random_monomial_uniform(self, monom_counts, vars_set): r""" @@ -1314,14 +1306,12 @@ cdef class BooleanPolynomialRing(MPolynomialRing_base): INPUT: - - ``monom_counts`` - list of number of monomials up to given degree - ``vars_set`` - list of variable indices to use in the generated monomial - EXAMPLES:: sage: P. = BooleanPolynomialRing(3) @@ -1360,12 +1350,10 @@ cdef class BooleanPolynomialRing(MPolynomialRing_base): INPUT: - - ``degree`` - maximum degree - ``vars_set`` - list of variable indices of self - EXAMPLES:: sage: P. = BooleanPolynomialRing(3) @@ -1490,14 +1478,12 @@ cdef class BooleanPolynomialRing(MPolynomialRing_base): INPUT: - - ``zeros`` - the set of interpolation points mapped to zero - ``ones`` - the set of interpolation points mapped to one - EXAMPLES: First we create a random-ish boolean polynomial. @@ -1878,7 +1864,6 @@ class BooleanMonomialMonoid(UniqueRepresentation, Monoid_class): - ``polring`` - the polynomial ring our monomials lie in - EXAMPLES:: sage: from sage.rings.polynomial.pbori.pbori import BooleanMonomialMonoid @@ -2809,7 +2794,6 @@ cdef class BooleanMonomial(MonoidElement): - ``rhs`` - a boolean monomial - EXAMPLES:: sage: B. = BooleanPolynomialRing() @@ -2953,7 +2937,6 @@ cdef class BooleanPolynomial(MPolynomial): - ``parent`` - a boolean polynomial ring - TESTS:: sage: from sage.rings.polynomial.pbori.pbori import BooleanPolynomial @@ -3822,10 +3805,8 @@ cdef class BooleanPolynomial(MPolynomial): INPUT: - - ``mon`` - a monomial - EXAMPLES:: sage: P. = BooleanPolynomialRing(2) @@ -3984,13 +3965,11 @@ cdef class BooleanPolynomial(MPolynomial): INPUT: - - ``in_dict`` - (optional) dict with variable:value pairs - ``**kwds`` - names parameters - EXAMPLES:: sage: P. = BooleanPolynomialRing(3) @@ -4387,10 +4366,8 @@ cdef class BooleanPolynomial(MPolynomial): INPUT: - - ``rhs`` - a boolean polynomial - EXAMPLES:: sage: B. = BooleanPolynomialRing(4,order='deglex') @@ -4452,10 +4429,8 @@ cdef class BooleanPolynomial(MPolynomial): INPUT: - - ``deg`` - a degree - EXAMPLES:: sage: B. = BooleanPolynomialRing(4) @@ -4508,10 +4483,8 @@ cdef class BooleanPolynomial(MPolynomial): INPUT: - - ``s`` - candidate points for evaluation to zero - EXAMPLES:: sage: B. = BooleanPolynomialRing(4) @@ -4619,11 +4592,9 @@ cdef class BooleanPolynomial(MPolynomial): INPUT: - - ``I`` - a list/set of polynomials in self.parent(). If I is an ideal, the generators are used. - EXAMPLES:: sage: B. = BooleanPolynomialRing(4) From 5f9d25650c3cfd5efe3799d22508ad5525bbf5b5 Mon Sep 17 00:00:00 2001 From: Mauricio Collares Date: Fri, 23 Sep 2022 16:02:39 -0300 Subject: [PATCH 155/249] Surround GAP_ValueGlobalVariable calls by GAP_Enter/GAP_Leave --- src/sage/libs/gap/element.pyx | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/sage/libs/gap/element.pyx b/src/sage/libs/gap/element.pyx index e3db3934baf..84e353704b0 100644 --- a/src/sage/libs/gap/element.pyx +++ b/src/sage/libs/gap/element.pyx @@ -164,9 +164,13 @@ cdef char *gap_element_repr(Obj obj): GAP on the command-line (i.e. when evaluating an expression that returns that object. """ - - cdef Obj func = GAP_ValueGlobalVariable("ViewObj") - return capture_stdout(func, obj) + cdef Obj func + try: + GAP_Enter() + func = GAP_ValueGlobalVariable("ViewObj") + return capture_stdout(func, obj) + finally: + GAP_Leave() cdef char *gap_element_str(Obj obj): @@ -179,8 +183,13 @@ cdef char *gap_element_str(Obj obj): slightly different approach more closely mirroring Python's str/repr difference (though this does not map perfectly onto GAP). """ - cdef Obj func = GAP_ValueGlobalVariable("Print") - return capture_stdout(func, obj) + cdef Obj func + try: + GAP_Enter() + func = GAP_ValueGlobalVariable("Print") + return capture_stdout(func, obj) + finally: + GAP_Leave() cdef Obj make_gap_record(sage_dict) except NULL: From 76c6eb0fb393dd22fee8827e3252b80ee6d19730 Mon Sep 17 00:00:00 2001 From: Marius Gerbershagen Date: Thu, 23 Sep 2021 14:28:48 +0200 Subject: [PATCH 156/249] symbolics: add derivative operator This allows for also using the syntax which sagemath already uses in the output of symbolic derivatives of functions like `D[0,1](f)(x+y,x-y)` in user input. --- src/sage/symbolic/all.py | 2 ++ src/sage/symbolic/operators.py | 62 ++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/src/sage/symbolic/all.py b/src/sage/symbolic/all.py index bad67459513..63e6b0037a8 100644 --- a/src/sage/symbolic/all.py +++ b/src/sage/symbolic/all.py @@ -18,3 +18,5 @@ from .units import units π = pi + +from .operators import D diff --git a/src/sage/symbolic/operators.py b/src/sage/symbolic/operators.py index a48b0e8e393..e8b79e980f1 100644 --- a/src/sage/symbolic/operators.py +++ b/src/sage/symbolic/operators.py @@ -194,3 +194,65 @@ def parameter_set(self): [0, 1] """ return self._parameter_set + +class DerivativeOperator(): + """ + Derivative operator. + + Acting with this operator onto a function gives a new operator (of + type :class:`FDerivativeOperator`) representing the function + differentiated with respect to one or multiple of its arguments. + + This operator takes a list of indices specifying the position of + the arguments to differentiate. For example, D[0, 0, 1] is an + operator that differentiates a function twice with respect to its + first argument and once with respect to its second argument. + + EXAMPLES:: + + sage: x, y = var('x,y'); f = function('f') + sage: D[0](f)(x) + diff(f(x), x) + sage: D[0](f)(x, y) + diff(f(x, y), x) + sage: D[0, 1](f)(x, y) + diff(f(x, y), x, y) + sage: D[0, 1](f)(x, x^2) + D[0, 1](f)(x, x^2) + + """ + class DerivativeOperatorWithParameters(): + def __init__(self, parameter_set): + self._parameter_set = parameter_set + def __call__(self, function): + return FDerivativeOperator(function, self._parameter_set) + def __repr__(self): + """ + Return the string representation of this derivative operator. + + EXAMPLES:: + + sage: D[0] + D[0] + sage: D[0, 1] + D[0, 1] + """ + return "D[%s]" % (", ".join(map(repr, self._parameter_set))) + + def __getitem__(self, args): + """ + TESTS: + + The order in which the indices are given should not matter:: + + sage: x, y = var('x,y'); f = function('f') + sage: bool(D[0, 1, 0](f)(x, y) == D[0, 0, 1](f)(x, y)) + True + sage: bool(D[1, 0, 0](f)(x, y) == D[0, 0, 1](f)(x, y)) + True + """ + if not isinstance(args, tuple): + args = (args,) + return self.DerivativeOperatorWithParameters(args) + +D = DerivativeOperator() From 02ab89e91efe0f0307307153e92979e7d2b5d784 Mon Sep 17 00:00:00 2001 From: dcoudert Date: Fri, 3 Mar 2023 11:44:12 +0100 Subject: [PATCH 157/249] PR #35131: fix typo --- src/sage/graphs/base/static_dense_graph.pyx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/graphs/base/static_dense_graph.pyx b/src/sage/graphs/base/static_dense_graph.pyx index fb211d5337f..81e7a14f557 100644 --- a/src/sage/graphs/base/static_dense_graph.pyx +++ b/src/sage/graphs/base/static_dense_graph.pyx @@ -681,7 +681,7 @@ def connected_full_subgraphs(G, edges_only=False, labels=False, # If vertex u has k active neighbors, we have 2^k possibilities. We # use the binary representation of n_cpt[i] to indicate which of the # k neighbors are selected. We omit the empty neighborhood which is - # considered else where. + # considered elsewhere. n_cpt[i] -= 1 c = n_cpt[i] if num_edges + _bitset_len(&c, 1) > max_edges: From d86c4e6181c7f33ed5b7c78898d5ba147c9a5081 Mon Sep 17 00:00:00 2001 From: dcoudert Date: Sat, 4 Mar 2023 13:17:12 +0100 Subject: [PATCH 158/249] PR #35131: review comments --- src/sage/graphs/base/static_dense_graph.pyx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/sage/graphs/base/static_dense_graph.pyx b/src/sage/graphs/base/static_dense_graph.pyx index 81e7a14f557..c41a4f7778f 100644 --- a/src/sage/graphs/base/static_dense_graph.pyx +++ b/src/sage/graphs/base/static_dense_graph.pyx @@ -466,7 +466,7 @@ def _yield_results_for_digraph(G, edges, edges_only, labels, min_edges, max_edge def connected_full_subgraphs(G, edges_only=False, labels=False, min_edges=None, max_edges=None): r""" - Iterator over the connected subgraphs of `G` with same vertex set. + Return an iterator over the connected subgraphs of `G` with same vertex set. This method implements a iterator over the connected subgraphs of the input (di)graph with the same ground set of vertices. That is, it iterates over @@ -641,7 +641,7 @@ def connected_full_subgraphs(G, edges_only=False, labels=False, cdef int * order = mem.calloc(n, sizeof(int)) cdef mp_bitcnt_t * n_cpt = mem.calloc(n, sizeof(mp_bitcnt_t)) - # We use a several bitsets to store the current boundary and active neighbors. + # We use several bitsets to store the current boundary and active neighbors. # We also need another bitset that we create at the same time cdef binary_matrix_t boundaries binary_matrix_init(boundaries, n + 1, n) @@ -745,7 +745,7 @@ def connected_full_subgraphs(G, edges_only=False, labels=False, def connected_subgraph_iterator(G, k=None, bint vertices_only=False, edges_only=False, labels=False, induced=True): r""" - Iterator over the induced connected subgraphs of order at most `k`. + Return an terator over the induced connected subgraphs of order at most `k`. This method implements a iterator over the induced connected subgraphs of the input (di)graph. An induced subgraph of a graph is another graph, formed From 9d177a5c29c170feb65c393f0c68ae020354c544 Mon Sep 17 00:00:00 2001 From: dcoudert Date: Sat, 4 Mar 2023 16:00:48 +0100 Subject: [PATCH 159/249] PR #35131: use decomposition into biconnected components --- src/sage/graphs/base/static_dense_graph.pyx | 47 +++++++++++++++++++-- 1 file changed, 43 insertions(+), 4 deletions(-) diff --git a/src/sage/graphs/base/static_dense_graph.pyx b/src/sage/graphs/base/static_dense_graph.pyx index c41a4f7778f..3be26ccd32e 100644 --- a/src/sage/graphs/base/static_dense_graph.pyx +++ b/src/sage/graphs/base/static_dense_graph.pyx @@ -51,6 +51,8 @@ from sage.data_structures.binary_matrix cimport * from cysignals.signals cimport sig_on, sig_off, sig_check from memory_allocator cimport MemoryAllocator from itertools import product +from sage.misc.flatten import flatten + cdef dict dense_graph_init(binary_matrix_t m, g, translation=None, force_undirected=False): r""" @@ -505,8 +507,8 @@ def connected_full_subgraphs(G, edges_only=False, labels=False, vertex, which represents a huge number of subsets. We have thus chosen to limit the degree of the vertices of the graphs that can be considered, even if the graph has a single connected subgraph (e.g., a - tree). This can certainly be improved using a decomposition into - biconnected components. + tree). It is therefore recommended to call this method on biconnected + components, as done in :meth:`connected_subgraph_iterator`. EXAMPLES: @@ -830,6 +832,16 @@ def connected_subgraph_iterator(G, k=None, bint vertices_only=False, sage: len(list(G.connected_subgraph_iterator(induced=False))) 10 + sage: G = DiGraph([(0, 1), (1, 0), (1, 2), (2, 1)]) + sage: len(list(G.connected_subgraph_iterator())) + 6 + sage: len(list(G.connected_subgraph_iterator(vertices_only=True))) + 6 + sage: len(list(G.connected_subgraph_iterator(edges_only=True))) + 6 + sage: len(list(G.connected_subgraph_iterator(induced=False))) + 18 + TESTS: The Path Graph of order `n` has `n (n + 1) / 2` connected subgraphs:: @@ -968,8 +980,35 @@ def connected_subgraph_iterator(G, k=None, bint vertices_only=False, else: yield H else: - yield from connected_full_subgraphs(H, edges_only=edges_only, - labels=labels) + # We use a decomposition into biconnected components to + # work on smaller graphs. + if H.is_directed(): + blocks = H.to_undirected().blocks_and_cut_vertices()[0] + else: + blocks = H.blocks_and_cut_vertices()[0] + if len(blocks) == 1: + # H is strongly connected or biconnected + yield from connected_full_subgraphs(H, edges_only=edges_only, + labels=labels) + else: + L = [] + for bloc in blocks: + if len(bloc) == 2: + bb = [[e] for e in H.edge_boundary(bloc, bloc, labels=labels)] + if len(bb) == 2: + # H is directed with edges (u, v) and (v, u) + bb.append(H.edge_boundary(bloc, bloc, labels=labels)) + L.append(bb) + else: + L.append(connected_full_subgraphs(H.subgraph(vertices=bloc), + edges_only=True, labels=labels)) + + for edges in product(*L): + good_edges = flatten(edges, ltypes=list) + if edges_only: + yield list(good_edges) + else: + yield H.subgraph(vertices=H, edges=good_edges) else: # We cannot extend the current subset, either due to a lack of From 62b04da4dab1e9b68b0a2b38381253ec65ae34a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Chapoton?= Date: Sun, 26 Feb 2023 13:26:38 +0100 Subject: [PATCH 160/249] remove deprecations about slicing polynomials --- .../rings/laurent_series_ring_element.pyx | 26 +++++++++----- .../rings/polynomial/laurent_polynomial.pyx | 26 ++++++++------ .../polynomial_padic_capped_relative_dense.py | 34 ++++++++----------- .../rings/polynomial/polynomial_element.pyx | 25 ++++++-------- .../polynomial/polynomial_element_generic.py | 33 +++++++++--------- src/sage/rings/power_series_poly.pyx | 22 +++++++----- 6 files changed, 87 insertions(+), 79 deletions(-) diff --git a/src/sage/rings/laurent_series_ring_element.pyx b/src/sage/rings/laurent_series_ring_element.pyx index 2dee178608b..b11989eafbe 100644 --- a/src/sage/rings/laurent_series_ring_element.pyx +++ b/src/sage/rings/laurent_series_ring_element.pyx @@ -523,22 +523,32 @@ cdef class LaurentSeries(AlgebraElement): sage: f = -5/t^(10) + 1/3 + t + t^2 - 10/3*t^3 + O(t^5); f -5*t^-10 + 1/3 + t + t^2 - 10/3*t^3 + O(t^5) - Slicing is deprecated:: + Slicing can be used to truncate, keeping the same precision:: - sage: f[-10:2] - doctest:...: DeprecationWarning: polynomial slicing with a start index is deprecated, use list() and slice the resulting list instead - See https://github.com/sagemath/sage/issues/18940 for details. + sage: f[:2] -5*t^-10 + 1/3 + t + O(t^5) + + Any other kind of slicing is an error, see :trac:`18940`:: + + sage: f[-10:2:2] + Traceback (most recent call last): + ... + IndexError: polynomial slicing with a step is not defined + sage: f[0:] - 1/3 + t + t^2 - 10/3*t^3 + O(t^5) + Traceback (most recent call last): + ... + IndexError: polynomial slicing with a start is not defined """ if isinstance(i, slice): start, stop, step = i.start, i.stop, i.step - if start is None: - start = 0 + if step is not None: + raise IndexError("polynomial slicing with a step is not defined") + if start is not None: + raise IndexError("polynomial slicing with a start is not defined") if stop > self.__u.degree() or stop is None: stop = self.__u.degree() - f = self.__u[start-self.__n:stop-self.__n:step] # deprecation(18940) + f = self.__u[:stop - self.__n] return type(self)(self._parent, f, self.__n) return self.__u[i - self.__n] diff --git a/src/sage/rings/polynomial/laurent_polynomial.pyx b/src/sage/rings/polynomial/laurent_polynomial.pyx index b6e83588af6..3fc23160e08 100644 --- a/src/sage/rings/polynomial/laurent_polynomial.pyx +++ b/src/sage/rings/polynomial/laurent_polynomial.pyx @@ -729,26 +729,30 @@ cdef class LaurentPolynomial_univariate(LaurentPolynomial): sage: f = -5/t^(10) + 1/3 + t + t^2 - 10/3*t^3; f -5*t^-10 + 1/3 + t + t^2 - 10/3*t^3 - Slicing is deprecated:: + Slicing can be used to truncate Laurent polynomials:: - sage: f[-10:2] - doctest:...: DeprecationWarning: polynomial slicing with a start index is deprecated, use list() and slice the resulting list instead - See https://github.com/sagemath/sage/issues/18940 for details. - -5*t^-10 + 1/3 + t - sage: f[0:] - 1/3 + t + t^2 - 10/3*t^3 sage: f[:3] -5*t^-10 + 1/3 + t + t^2 + + Any other kind of slicing is an error, see :trac:`18940`:: + + sage: f[-10:2] + Traceback (most recent call last): + ... + IndexError: polynomial slicing with a start is not defined + sage: f[-14:5:2] Traceback (most recent call last): ... - NotImplementedError: polynomial slicing with a step is not defined + IndexError: polynomial slicing with a step is not defined """ cdef LaurentPolynomial_univariate ret if isinstance(i, slice): - start = i.start - self.__n if i.start is not None else 0 - stop = i.stop - self.__n if i.stop is not None else self.__u.degree() + 1 - f = self.__u[start:stop:i.step] # deprecation(18940) + start, stop, step = i.start, i.stop, i.step + if start is not None or step is not None: + self.__u[start:stop:step] # error out, see issue #18940 + stop = stop - self.__n if stop is not None else self.__u.degree() + 1 + f = self.__u[:stop] ret = self._new_c() ret.__u = f ret.__n = self.__n diff --git a/src/sage/rings/polynomial/padics/polynomial_padic_capped_relative_dense.py b/src/sage/rings/polynomial/padics/polynomial_padic_capped_relative_dense.py index d41eaee7dd1..e6210db95e9 100644 --- a/src/sage/rings/polynomial/padics/polynomial_padic_capped_relative_dense.py +++ b/src/sage/rings/polynomial/padics/polynomial_padic_capped_relative_dense.py @@ -354,11 +354,12 @@ def lift(self): def __getitem__(self, n): """ - Returns the coefficient of x^n if `n` is an integer, - returns the monomials of self of degree in slice `n` if `n` is a slice. - Return the `n`-th coefficient of ``self``. + This returns the coefficient of `x^n` if `n` is an integer, + and returns the monomials of ``self`` of degree + in slice `n` if `n` is a slice ``[:k]``. + EXAMPLES:: sage: K = Qp(13,7) @@ -372,35 +373,28 @@ def __getitem__(self, n): sage: a[:2] (13^2 + O(13^4))*t + 12*13^4 + 12*13^5 + 12*13^6 + 12*13^7 + 12*13^8 + 12*13^9 + 12*13^10 + O(13^11) - Any other kind of slicing is deprecated or an error, see - :trac:`18940`:: + Any other kind of slicing is an error, see :trac:`18940`:: sage: a[1:3] - doctest:warning...: - DeprecationWarning: polynomial slicing with a start index is deprecated, use list() and slice the resulting list instead - See https://github.com/sagemath/sage/issues/18940 for details. - 0*t^2 + (13^2 + O(13^4))*t + Traceback (most recent call last): + ... + IndexError: polynomial slicing with a start is not defined + sage: a[1:3:2] Traceback (most recent call last): ... - NotImplementedError: polynomial slicing with a step is not defined + IndexError: polynomial slicing with a step is not defined """ d = len(self._relprecs) # = degree + 1 if isinstance(n, slice): start, stop, step = n.start, n.stop, n.step if step is not None: - raise NotImplementedError("polynomial slicing with a step is not defined") - if start is None: - start = 0 - else: - if start < 0: - start = 0 - from sage.misc.superseded import deprecation - deprecation(18940, "polynomial slicing with a start index is deprecated, use list() and slice the resulting list instead") + raise IndexError("polynomial slicing with a step is not defined") + if start is not None: + raise IndexError("polynomial slicing with a start is not defined") if stop is None or stop > d: stop = d - values = ([self.base_ring().zero()] * start - + [self[i] for i in range(start, stop)]) + values = [self[i] for i in range(stop)] return self.parent()(values) try: diff --git a/src/sage/rings/polynomial/polynomial_element.pyx b/src/sage/rings/polynomial/polynomial_element.pyx index ceb36976126..6d95b7e262f 100644 --- a/src/sage/rings/polynomial/polynomial_element.pyx +++ b/src/sage/rings/polynomial/polynomial_element.pyx @@ -1121,33 +1121,28 @@ cdef class Polynomial(CommutativeAlgebraElement): sage: pol[:6] 5*x^5 + 4*x^4 + 3*x^3 + 2*x^2 + x - Any other kind of slicing is deprecated or an error, see - :trac:`18940`:: + Any other kind of slicing is an error, see :trac:`18940`:: sage: f[1:3] - doctest:...: DeprecationWarning: polynomial slicing with a start index is deprecated, use list() and slice the resulting list instead - See https://github.com/sagemath/sage/issues/18940 for details. - x + Traceback (most recent call last): + ... + IndexError: polynomial slicing with a start is not defined + sage: f[1:3:2] Traceback (most recent call last): ... - NotImplementedError: polynomial slicing with a step is not defined + IndexError: polynomial slicing with a step is not defined """ cdef Py_ssize_t d = self.degree() + 1 if isinstance(n, slice): start, stop, step = n.start, n.stop, n.step if step is not None: - raise NotImplementedError("polynomial slicing with a step is not defined") - if start is None: - start = 0 - else: - if start < 0: - start = 0 - deprecation(18940, "polynomial slicing with a start index is deprecated, use list() and slice the resulting list instead") + raise IndexError("polynomial slicing with a step is not defined") + if start is not None: + raise IndexError("polynomial slicing with a start is not defined") if stop is None or stop > d: stop = d - values = ([self.base_ring().zero()] * start - + [self.get_unsafe(i) for i in xrange(start, stop)]) + values = [self.get_unsafe(i) for i in range(stop)] return self._new_generic(values) return self.get_coeff_c(pyobject_to_long(n)) diff --git a/src/sage/rings/polynomial/polynomial_element_generic.py b/src/sage/rings/polynomial/polynomial_element_generic.py index f5c38b31cac..368cbb688f6 100644 --- a/src/sage/rings/polynomial/polynomial_element_generic.py +++ b/src/sage/rings/polynomial/polynomial_element_generic.py @@ -408,7 +408,7 @@ def __normalize(self): for n in D: del x[n] - def __getitem__(self,n): + def __getitem__(self, n): """ Return the `n`-th coefficient of this polynomial. @@ -436,37 +436,36 @@ def __getitem__(self,n): sage: f[:2] -42.000*x + 8.0000 - Any other kind of slicing is deprecated or an error:: + Any other kind of slicing is an error, see :trac:`18940`:: sage: f[1:3] - doctest:...: DeprecationWarning: polynomial slicing with a start index is deprecated, use list() and slice the resulting list instead - See https://github.com/sagemath/sage/issues/18940 for details. - 73.500*x^2 - 42.000*x + Traceback (most recent call last): + ... + IndexError: polynomial slicing with a start is not defined + sage: f[1:3:2] Traceback (most recent call last): ... - NotImplementedError: polynomial slicing with a step is not defined + IndexError: polynomial slicing with a step is not defined + + TESTS:: + sage: f["hello"] Traceback (most recent call last): ... TypeError: list indices must be integers, not str """ if isinstance(n, slice): - d = self.degree() + 1 start, stop, step = n.start, n.stop, n.step if step is not None: - raise NotImplementedError("polynomial slicing with a step is not defined") - if start is None: - start = 0 - else: - if start < 0: - start = 0 - from sage.misc.superseded import deprecation - deprecation(18940, "polynomial slicing with a start index is deprecated, use list() and slice the resulting list instead") + raise IndexError("polynomial slicing with a step is not defined") + if start is not None: + raise IndexError("polynomial slicing with a start is not defined") + d = self.degree() + 1 if stop is None or stop > d: stop = d - x = self.__coeffs - v = {k: x[k] for k in x.keys() if start <= k < stop} + v = {key: val for key, val in self.__coeffs.items() + if key < stop} return self.parent()(v) try: diff --git a/src/sage/rings/power_series_poly.pyx b/src/sage/rings/power_series_poly.pyx index 987e2d3fc65..33452576f63 100644 --- a/src/sage/rings/power_series_poly.pyx +++ b/src/sage/rings/power_series_poly.pyx @@ -405,13 +405,14 @@ cdef class PowerSeries_poly(PowerSeries): """ Return the ``n``-th coefficient of ``self``. - If ``n`` is a slice object, this will return a power series of the - same precision, whose coefficients are the same as ``self`` for - those indices in the slice, and 0 otherwise. - This returns 0 for negative coefficients and raises an ``IndexError`` if trying to access beyond known coefficients. + If ``n`` is a slice object ``[:k]``, this will return a power + series of the same precision, whose coefficients are the same + as ``self`` for those indices in the slice, and 0 otherwise. + Other kinds of slicing are not allowed. + EXAMPLES:: sage: R. = QQ[[]] @@ -426,10 +427,8 @@ cdef class PowerSeries_poly(PowerSeries): Traceback (most recent call last): ... IndexError: coefficient not known - sage: f[1:4] - doctest:...: DeprecationWarning: polynomial slicing with a start index is deprecated, use list() and slice the resulting list instead - See https://github.com/sagemath/sage/issues/18940 for details. - -17/5*t^3 + O(t^5) + + Using slices:: sage: R. = ZZ[[]] sage: f = (2-t)^5; f @@ -440,6 +439,13 @@ cdef class PowerSeries_poly(PowerSeries): 1 + t^3 - 4*t^4 + O(t^7) sage: f[:4] 1 + t^3 + O(t^7) + + TESTS:: + + sage: f[1:4] + Traceback (most recent call last): + ... + NotImplementedError: polynomial slicing with a start is not defined """ if isinstance(n, slice): return PowerSeries_poly(self._parent, self.polynomial()[n], From 75e3f3125b1b56e897c2061a47d230548803d25d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Chapoton?= Date: Tue, 7 Mar 2023 08:07:41 +0100 Subject: [PATCH 161/249] fix doctest --- src/sage/rings/power_series_poly.pyx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/rings/power_series_poly.pyx b/src/sage/rings/power_series_poly.pyx index 33452576f63..9a789d7baeb 100644 --- a/src/sage/rings/power_series_poly.pyx +++ b/src/sage/rings/power_series_poly.pyx @@ -445,7 +445,7 @@ cdef class PowerSeries_poly(PowerSeries): sage: f[1:4] Traceback (most recent call last): ... - NotImplementedError: polynomial slicing with a start is not defined + IndexError: polynomial slicing with a start is not defined """ if isinstance(n, slice): return PowerSeries_poly(self._parent, self.polynomial()[n], From 0bed1504c11670d190626aa6fad42103c6755c20 Mon Sep 17 00:00:00 2001 From: DavidAyotte Date: Tue, 7 Mar 2023 18:23:11 -0500 Subject: [PATCH 162/249] fix some \mathrm{val} --- src/sage/rings/lazy_series.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/sage/rings/lazy_series.py b/src/sage/rings/lazy_series.py index 51eeaf5d065..c1fe570cd83 100644 --- a/src/sage/rings/lazy_series.py +++ b/src/sage/rings/lazy_series.py @@ -3388,9 +3388,9 @@ def __call__(self, g, *, check=True): Given two Laurent series `f` and `g` over the same base ring, the composition `(f \circ g)(z) = f(g(z))` is defined if and only if: - - `g = 0` and `val(f) >= 0`, + - `g = 0` and `\mathrm{val}(f) >= 0`, - `g` is non-zero and `f` has only finitely many non-zero coefficients, - - `g` is non-zero and `val(g) > 0`. + - `g` is non-zero and `\mathrm{val}(g) > 0`. INPUT: @@ -3574,7 +3574,7 @@ def __call__(self, g, *, check=True): y We look at cases where the composition does not exist. - `g = 0` and `val(f) < 0`:: + `g = 0` and `\mathrm{val}(f) < 0`:: sage: g = L(0) sage: f = z^-1 + z^-2 @@ -3585,7 +3585,7 @@ def __call__(self, g, *, check=True): ... ZeroDivisionError: the valuation of the series must be nonnegative - `g \neq 0` and `val(g) \leq 0` and `f` has infinitely many + `g \neq 0` and `\mathrm{val}(g) \leq 0` and `f` has infinitely many non-zero coefficients:: sage: g = z^-1 + z^-2 @@ -3797,7 +3797,7 @@ def revert(self): The compositional inverse exists if and only if: - - `val(f) = 1`, or + - `\mathrm{val}(f) = 1`, or - `f = a + b z` with `a, b \neq 0`, or @@ -3870,7 +3870,7 @@ def revert(self): ... ValueError: compositional inverse does not exist - `val(f) != 1` and `f(0) * f(1) = 0`:: + `\mathrm{val}(f) != 1` and `f(0) * f(1) = 0`:: sage: (z^2).revert() Traceback (most recent call last): @@ -4348,7 +4348,7 @@ def __call__(self, *g, check=True): - `g_i` is zero, or - setting all variables except the `i`th in `f` to zero yields a polynomial, or - - `val(g_i) > 0`. + - `\mathrm{val}(g_i) > 0`. If `f` is a univariate 'exact' series, we can check whether `f` is a actually a polynomial. However, if `f` is a @@ -4621,7 +4621,7 @@ def revert(self): The compositional inverse exists if and only if: - - `val(f) = 1`, or + - `\mathrm{val}(f) = 1`, or - `f = a + b z` with `a, b \neq 0` @@ -4681,7 +4681,7 @@ def revert(self): ... ValueError: compositional inverse does not exist - `val(f) != 1` and `f(0) * f(1) = 0`:: + `\mathrm{val}(f) != 1` and `f(0) * f(1) = 0`:: sage: (z^2).revert() Traceback (most recent call last): @@ -5290,7 +5290,7 @@ def __call__(self, *args, check=True): - setting all alphabets except the `i`th in `f` to zero yields a symmetric function with only finitely many non-zero coefficients, or - - `val(g) > 0`. + - `\mathrm{val}(g) > 0`. If `f` is a univariate 'exact' lazy symmetric function, we can check whether `f` has only finitely many non-zero @@ -5489,7 +5489,7 @@ def revert(self): The compositional inverse exists if and only if: - - `val(f) = 1`, or + - `\mathrm{val}(f) = 1`, or - `f = a + b p_1` with `a, b \neq 0`. From 28cc74e2086f494dcd504f1246ef2ba6fe74e0d2 Mon Sep 17 00:00:00 2001 From: DavidAyotte Date: Tue, 7 Mar 2023 18:23:53 -0500 Subject: [PATCH 163/249] add missing hyphen --- src/sage/rings/lazy_series.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/rings/lazy_series.py b/src/sage/rings/lazy_series.py index c1fe570cd83..6f4fbb66fb0 100644 --- a/src/sage/rings/lazy_series.py +++ b/src/sage/rings/lazy_series.py @@ -4346,7 +4346,7 @@ def __call__(self, *g, check=True): `1\leq k\leq n`: - `g_i` is zero, or - - setting all variables except the `i`th in `f` to zero + - setting all variables except the `i`-th in `f` to zero yields a polynomial, or - `\mathrm{val}(g_i) > 0`. From 51e3bfbb9da8f3818212912e60a7eb1566c50922 Mon Sep 17 00:00:00 2001 From: DavidAyotte Date: Tue, 7 Mar 2023 18:39:18 -0500 Subject: [PATCH 164/249] minor latex and string fixes --- src/sage/rings/lazy_series.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sage/rings/lazy_series.py b/src/sage/rings/lazy_series.py index 6f4fbb66fb0..c5b19acf40a 100644 --- a/src/sage/rings/lazy_series.py +++ b/src/sage/rings/lazy_series.py @@ -584,7 +584,7 @@ def map_coefficients(self, f): def truncate(self, d): r""" - Return this series with its terms of degree >= ``d`` truncated. + Return this series with its terms of degree `\geq` ``d`` truncated. INPUT: @@ -3388,7 +3388,7 @@ def __call__(self, g, *, check=True): Given two Laurent series `f` and `g` over the same base ring, the composition `(f \circ g)(z) = f(g(z))` is defined if and only if: - - `g = 0` and `\mathrm{val}(f) >= 0`, + - `g = 0` and `\mathrm{val}(f) \geq 0`, - `g` is non-zero and `f` has only finitely many non-zero coefficients, - `g` is non-zero and `\mathrm{val}(g) > 0`. @@ -4287,7 +4287,7 @@ def exponential(self): def compute_coefficients(self, i): r""" - Computes all the coefficients of self up to i. + Computes all the coefficients of ``self`` up to ``i``. This method is deprecated, it has no effect anymore. @@ -5287,7 +5287,7 @@ def __call__(self, *args, check=True): is defined if and only if for each `1\leq k\leq n`: - `g_i = 0`, or - - setting all alphabets except the `i`th in `f` to zero + - setting all alphabets except the `i`-th in `f` to zero yields a symmetric function with only finitely many non-zero coefficients, or - `\mathrm{val}(g) > 0`. From 549a59db3317b0f91cc6dbbae34ddfcfd2bfdc35 Mon Sep 17 00:00:00 2001 From: DavidAyotte Date: Tue, 7 Mar 2023 19:49:39 -0500 Subject: [PATCH 165/249] add the full name of some trigonometric functions --- src/sage/rings/lazy_series.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/sage/rings/lazy_series.py b/src/sage/rings/lazy_series.py index c5b19acf40a..3f94a6eb583 100644 --- a/src/sage/rings/lazy_series.py +++ b/src/sage/rings/lazy_series.py @@ -1989,7 +1989,7 @@ def sec(self): def arcsin(self): r""" - Return the arcsin of ``self``. + Return the arcsine of ``self``. EXAMPLES:: @@ -2021,7 +2021,7 @@ def f(n): def arccos(self): r""" - Return the arccos of ``self``. + Return the arccosine of ``self``. EXAMPLES:: @@ -2116,7 +2116,7 @@ def arccot(self): def sinh(self): r""" - Return the sinh of ``self``. + Return the hyperbolic sine of ``self``. EXAMPLES:: @@ -2144,7 +2144,7 @@ def sinh(self): def cosh(self): r""" - Return the cosh of ``self``. + Return the hyperbolic cosine of ``self``. EXAMPLES:: @@ -2171,7 +2171,7 @@ def cosh(self): def tanh(self): r""" - Return the tanh of ``self``. + Return the hyperbolic tangent of ``self``. EXAMPLES:: From 93a58eaa6ca2c74afd3d4f5a99cf0c169ed36a23 Mon Sep 17 00:00:00 2001 From: DavidAyotte Date: Thu, 9 Mar 2023 23:21:26 -0500 Subject: [PATCH 166/249] change description of truncate method --- src/sage/rings/lazy_series.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/sage/rings/lazy_series.py b/src/sage/rings/lazy_series.py index 3f94a6eb583..c156cb12538 100644 --- a/src/sage/rings/lazy_series.py +++ b/src/sage/rings/lazy_series.py @@ -584,7 +584,8 @@ def map_coefficients(self, f): def truncate(self, d): r""" - Return this series with its terms of degree `\geq` ``d`` truncated. + Return the series obtained by removing all terms of degree at least + ``d``. INPUT: From d935b6cba77016d64674e01aeed74d459903cbab Mon Sep 17 00:00:00 2001 From: Vincent Delecroix <20100.delecroix@gmail.com*> Date: Thu, 16 Jun 2022 11:02:50 +0200 Subject: [PATCH 167/249] 34000: cleaning and enhancement to polydict --- .../rings/polynomial/laurent_polynomial.pyx | 4 +- .../polynomial/multi_polynomial_element.py | 112 +-- .../rings/polynomial/multi_polynomial_ring.py | 36 +- src/sage/rings/polynomial/polydict.pxd | 9 +- src/sage/rings/polynomial/polydict.pyx | 672 +++++++++++------- 5 files changed, 525 insertions(+), 308 deletions(-) diff --git a/src/sage/rings/polynomial/laurent_polynomial.pyx b/src/sage/rings/polynomial/laurent_polynomial.pyx index b6e83588af6..1d5bb277af0 100644 --- a/src/sage/rings/polynomial/laurent_polynomial.pyx +++ b/src/sage/rings/polynomial/laurent_polynomial.pyx @@ -2254,12 +2254,12 @@ cdef class LaurentPolynomial_mpair(LaurentPolynomial): cdef dict D = self._poly.dict() cdef dict DD if self._mon.is_constant(): - self._prod = PolyDict(D, force_etuples=False) + self._prod = PolyDict(D) return DD = {} for k in D: DD[k.eadd(self._mon)] = D[k] - self._prod = PolyDict(DD, force_etuples=False) + self._prod = PolyDict(DD) def is_unit(self): """ diff --git a/src/sage/rings/polynomial/multi_polynomial_element.py b/src/sage/rings/polynomial/multi_polynomial_element.py index 702bf9af7eb..2c1c47f1ced 100644 --- a/src/sage/rings/polynomial/multi_polynomial_element.py +++ b/src/sage/rings/polynomial/multi_polynomial_element.py @@ -40,6 +40,7 @@ # Sage: Open Source Mathematical Software # # Copyright (C) 2005 William Stein +# 2022 Vincent Delecroix <20100.delecroix@gmail.com> # # Distributed under the terms of the GNU General Public License (GPL) # @@ -53,9 +54,12 @@ # https://www.gnu.org/licenses/ #***************************************************************************** -from sage.structure.element import CommutativeRingElement, coerce_binop +import operator + +from sage.structure.element import CommutativeRingElement, coerce_binop, get_coercion_model from sage.misc.misc_c import prod import sage.rings.integer +import sage.rings.integer_ring from sage.rings.qqbar_decorators import handle_AA_and_QQbar from . import polydict from sage.structure.factorization import Factorization @@ -254,17 +258,26 @@ def number_of_terms(self): hamming_weight = number_of_terms + def __neg__(self): + """ + EXAMPLES:: + + sage: R. = QQbar[] + sage: -x + -x + sage: -(y-1) + -y + 1 + """ + return self.__class__(self.parent(), -self.__element) + def _add_(self, right): - #return self.parent()(self.__element + right.__element) - return self.__class__(self.parent(),self.__element + right.__element) + return self.__class__(self.parent(), self.__element + right.__element) def _sub_(self, right): - # return self.parent()(self.__element - right.__element) - return self.__class__(self.parent(),self.__element - right.__element) + return self.__class__(self.parent(), self.__element - right.__element) def _mul_(self, right): - #return self.parent()(self.__element * right.__element) - return self.__class__(self.parent(),self.__element * right.__element) + return self.__class__(self.parent(), self.__element * right.__element) def _lmul_(self, a): """ @@ -283,7 +296,7 @@ def _lmul_(self, a): sage: 3*f 3*x + 3*y """ - return self.__class__(self.parent(),self.__element.scalar_lmult(a)) + return self.__class__(self.parent(), self.__element.scalar_lmult(a)) def _rmul_(self, a): """ @@ -302,7 +315,7 @@ def _rmul_(self, a): sage: f*3 3*x + 3*y """ - return self.__class__(self.parent(),self.__element.scalar_rmult(a)) + return self.__class__(self.parent(), self.__element.scalar_rmult(a)) def _div_(self, right): r""" @@ -334,8 +347,8 @@ def _div_(self, right): 1/2*x """ if right in self.base_ring(): - inv = self.base_ring().one()/self.base_ring()(right) - return inv*self + inv = self.base_ring().one() / self.base_ring()(right) + return inv * self return self.parent().fraction_field()(self, right, coerce=False) def __rpow__(self, n): @@ -396,7 +409,7 @@ def __init__(self, parent, x): True """ if not isinstance(x, polydict.PolyDict): - x = polydict.PolyDict(x, parent.base_ring().zero(), remove_zero=True) + x = polydict.PolyDict(x, remove_zero=True) MPolynomial_element.__init__(self, parent, x) def _new_constant_poly(self, x, P): @@ -417,18 +430,6 @@ def _new_constant_poly(self, x, P): """ return MPolynomial_polydict(P, {P._zero_tuple:x}) - def __neg__(self): - """ - EXAMPLES:: - - sage: R.=QQbar[] - sage: -x - -x - sage: -(y-1) - -y + 1 - """ - return self*(-1) - def _repr_(self): """ EXAMPLES:: @@ -535,8 +536,8 @@ def degrees(self): sage: R(0).degrees() (0, 0, 0, 0) """ - if self.is_zero(): - return polydict.ETuple({},self.parent().ngens()) + if not self: + return polydict.ETuple({}, self.parent().ngens()) else: return self._MPolynomial_element__element.max_exp() @@ -803,11 +804,7 @@ def __iter__(self): ring = self.parent() one = ring.base_ring().one() for exp in self._exponents: - yield (elt[exp], - MPolynomial_polydict(ring, polydict.PolyDict({exp:one}, - force_int_exponents=False, - force_etuples=False)) - ) + yield (elt[exp], MPolynomial_polydict(ring, polydict.PolyDict({exp:one}))) def __getitem__(self, x): """ @@ -1420,7 +1417,7 @@ def monomials(self): """ ring = self.parent() one = ring.base_ring().one() - return [MPolynomial_polydict(ring, polydict.PolyDict({m:one}, force_int_exponents=False, force_etuples=False)) + return [MPolynomial_polydict(ring, polydict.PolyDict({m:one})) for m in self._exponents] def constant_coefficient(self): @@ -1671,7 +1668,7 @@ def lm(self): R = self.parent() f = self._MPolynomial_element__element.lcmt( R.term_order().greater_tuple ) one = R.base_ring().one() - self.__lm = MPolynomial_polydict(R,polydict.PolyDict({f:one},zero=R.base_ring().zero(),force_int_exponents=False, force_etuples=False)) + self.__lm = MPolynomial_polydict(R,polydict.PolyDict({f:one})) return self.__lm def lc(self): @@ -1729,10 +1726,10 @@ def lt(self): R = self.parent() f = self._MPolynomial_element__element.dict() res = self._MPolynomial_element__element.lcmt( R.term_order().greater_tuple ) - self.__lt = MPolynomial_polydict(R,polydict.PolyDict({res:f[res]},zero=R.base_ring().zero(),force_int_exponents=False, force_etuples=False)) + self.__lt = MPolynomial_polydict(R, polydict.PolyDict({res:f[res]})) return self.__lt - def __eq__(self,right): + def __eq__(self, right): if not isinstance(right, MPolynomial_polydict): # we want comparison with zero to be fast if not right: @@ -1740,7 +1737,7 @@ def __eq__(self,right): return CommutativeRingElement.__eq__(self, right) return self._MPolynomial_element__element == right._MPolynomial_element__element - def __ne__(self,right): + def __ne__(self, right): if not isinstance(right, MPolynomial_polydict): # we want comparison with zero to be fast if not right: @@ -1759,7 +1756,7 @@ def __bool__(self): This is much faster than actually writing ``self == 0``. """ - return self._MPolynomial_element__element.dict()!={} + return bool(self._MPolynomial_element__element) def _floordiv_(self, right): r""" @@ -1844,17 +1841,11 @@ def _derivative(self, var=None): # var is not a generator; do term-by-term differentiation recursively # var may be, for example, a generator of the base ring d = dict([(e, x._derivative(var)) for (e, x) in self.dict().items()]) - d = polydict.PolyDict(d, P.base_ring().zero(), remove_zero=True) + d = polydict.PolyDict(d, remove_zero=True) return MPolynomial_polydict(P, d) # differentiate w.r.t. indicated variable - d = {} - v = polydict.ETuple({index:1}, len(gens)) - for (exp, coeff) in self.dict().items(): - if exp[index] > 0: - d[exp.esub(v)] = coeff * exp[index] - d = polydict.PolyDict(d, P.base_ring().zero(), remove_zero=True) - return MPolynomial_polydict(P, d) + return MPolynomial_polydict(P, self.element().derivative(P(var).element())) def integral(self, var=None): r""" @@ -1878,6 +1869,11 @@ def integral(self, var=None): sage: it.parent() == x.parent() True + sage: R = ZZ['x']['y, z'] + sage: y, z = R.gens() + sage: R.an_element().integral(y).parent() + Multivariate Polynomial Ring in y, z over Univariate Polynomial Ring in x over Rational Field + On polynomials with coefficients in power series:: sage: R. = PowerSeriesRing(QQbar) @@ -1905,8 +1901,15 @@ def integral(self, var=None): if var is None: raise ValueError("must specify which variable to integrate " "with respect to") - P = self.parent() + cm = get_coercion_model() + try: + S = cm.bin_op(P.one(), sage.rings.integer_ring.ZZ.one(), operator.truediv).parent() + Q = S.base_ring() + except TypeError: + Q = (P.base_ring().one() / sage.rings.integer_ring.ZZ.one()).parent() + S = P.change_ring(Q) + gens = list(P.gens()) # check if var is one of the generators @@ -1917,17 +1920,16 @@ def integral(self, var=None): # var may be, for example, a generator of the base ring d = dict([(e, x.integral(var)) for (e, x) in self.dict().items()]) - d = polydict.PolyDict(d, P.base_ring().zero(), - remove_zero=True) - return MPolynomial_polydict(P, d) + d = polydict.PolyDict(d, remove_zero=True) + if P.base_ring() is not Q: + d.coerce_coefficients(Q) + return MPolynomial_polydict(S, d) # integrate w.r.t. indicated variable - d = {} - v = polydict.ETuple({index:1}, len(gens)) - for (exp, coeff) in self.dict().items(): - d[exp.eadd(v)] = coeff / (1+exp[index]) - d = polydict.PolyDict(d, P.base_ring().zero(), remove_zero=True) - return MPolynomial_polydict(P, d) + d = self.element().integral(P(var).element()) + if P.base_ring() is not Q: + d.coerce_coefficients(Q) + return MPolynomial_polydict(S, d) def factor(self, proof=None): r""" diff --git a/src/sage/rings/polynomial/multi_polynomial_ring.py b/src/sage/rings/polynomial/multi_polynomial_ring.py index f0381318b30..5ec05589593 100644 --- a/src/sage/rings/polynomial/multi_polynomial_ring.py +++ b/src/sage/rings/polynomial/multi_polynomial_ring.py @@ -639,9 +639,7 @@ def monomial_quotient(self, f, g, coeff=False): res = f.esub(g) - return MPolynomial_polydict(self, PolyDict({res: coeff}, - force_int_exponents=False, - force_etuples=False)) + return MPolynomial_polydict(self, PolyDict({res: coeff})) def monomial_lcm(self, f, g): """ @@ -690,8 +688,7 @@ def monomial_lcm(self, f, g): res = {i: max(f[i], g[i]) for i in f.common_nonzero_positions(g)} - return self(PolyDict({ETuple(res, length): one}, - force_int_exponents=False, force_etuples=False)) + return self(PolyDict({ETuple(res, length): one})) def monomial_reduce(self, f, G): r""" @@ -891,11 +888,34 @@ def addwithcarry(tempvector, maxvector, pos): while tempvector != maxvector: tempvector = addwithcarry(list(tempvector), maxvector, pos) - M.append(R(PolyDict({ETuple(tempvector): one}, - force_int_exponents=False, - force_etuples=False))) + M.append(R(PolyDict({ETuple(tempvector): one}))) return M + def sum(self, terms): + r""" + Return a sum of elements of this multipolynomial ring. + + This is method is much faster than the Python builtin sum. + + EXAMPLES:: + + sage: R = QQ['x'] + sage: S = R['y, z'] + sage: x = R.gen() + sage: y, z = S.gens() + sage: S.sum([x*y, 2*x^2*z - 2*x*y, 1 + y + z]) + (-x + 1)*y + (2*x^2 + 1)*z + 1 + + Comparison with builtin sum:: + + sage: sum([x*y, 2*x^2*z - 2*x*y, 1 + y + z]) + (-x + 1)*y + (2*x^2 + 1)*z + 1 + """ + ans = self(0) + elt = ans.element() + for t in terms: + elt += self(t).element() + return ans class MPolynomialRing_polydict_domain(IntegralDomain, MPolynomialRing_polydict): diff --git a/src/sage/rings/polynomial/polydict.pxd b/src/sage/rings/polynomial/polydict.pxd index b2c3145c112..fdbab0e5059 100644 --- a/src/sage/rings/polynomial/polydict.pxd +++ b/src/sage/rings/polynomial/polydict.pxd @@ -1,6 +1,9 @@ cdef class PolyDict: cdef dict __repn - cdef object __zero + + cdef PolyDict _new(self, dict pdict) + cpdef _remove_zero(self) + cdef class ETuple: cdef size_t _length @@ -8,7 +11,7 @@ cdef class ETuple: cdef int *_data cpdef size_t unweighted_degree(self) - cdef size_t weighted_degree(self, tuple w) + cpdef size_t weighted_degree(self, tuple w) cdef size_t unweighted_quotient_degree(self, ETuple other) cdef size_t weighted_quotient_degree(self, ETuple other, tuple w) cpdef ETuple eadd(ETuple self, ETuple other) @@ -30,5 +33,5 @@ cdef class ETuple: cpdef list nonzero_values(ETuple self, bint sort=*) cpdef ETuple reversed(ETuple self) cdef ETuple _new(ETuple self) - cdef size_t get_exp(ETuple self, int i) + cdef int get_exp(ETuple self, size_t i) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index 51f411aed91..6e19283c4e7 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -5,7 +5,7 @@ This module provides an implementation of the underlying arithmetic for multi-variate polynomial rings using Python dicts. This class is not meant for end users, but instead for implementing -multivariate polynomial rings over a completely general base. It does +multivariate polynomial rings over a completely general base. It does not do strong type checking or have parents, etc. For speed, it has been implemented in Cython. @@ -29,6 +29,7 @@ AUTHORS: # **************************************************************************** # Copyright (C) 2005 William Stein +# 2022 Vincent Delecroix <20100.delecroix@gmail.com> # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -42,34 +43,47 @@ from cpython.dict cimport * cimport cython from cpython.object cimport (Py_EQ, Py_NE, Py_LT, Py_LE, Py_GT, Py_GE) from cysignals.memory cimport sig_malloc, sig_free + from sage.structure.richcmp cimport rich_to_bool +from sage.structure.parent cimport Parent import copy + from functools import reduce -from sage.arith.power import generic_power from pprint import pformat +from sage.arith.power import generic_power from sage.misc.misc import cputime from sage.misc.latex import latex -from sage.misc.superseded import deprecation_cython as deprecation + + +cdef size_t gen_index(PolyDict x) except *: + if len(x.__repn) != 1: + raise TypeError("x must be one of the generators of the parent") + cdef ETuple e = next(iter(x.__repn)) + if e._nonzero != 1 or e._data[1] != 1: + raise TypeError("x must be one of the generators of the parent") + return e._data[0] cdef class PolyDict: - def __init__(PolyDict self, pdict, zero=0, remove_zero=False, force_int_exponents=True, force_etuples=True): + r""" + PolyDict is essentially a dictionary all of whose keys are :class:`ETuple`. + """ + def __init__(PolyDict self, pdict, zero=None, remove_zero=False, force_int_exponents=None, force_etuples=None): """ INPUT: - ``pdict`` -- dict or list, which represents a multi-variable polynomial with the distribute representation (a copy is not made) - - ``zero`` -- (optional) zero in the base ring + - ``zero`` -- deprecated + + - ``remove_zero`` -- whether to check for zero coefficient - - ``force_int_exponents`` -- bool (optional) arithmetic with int - exponents is much faster than some of the alternatives, so this is - ``True`` by default + - ``force_int_exponents`` -- deprecated - - ``force_etuples`` -- bool (optional) enforce that the exponent tuples - are instances of ETuple class + - ``force_etuples`` -- deprecated EXAMPLES:: @@ -77,87 +91,106 @@ cdef class PolyDict: sage: PolyDict({(2,3):2, (1,2):3, (2,1):4}) PolyDict with representation {(1, 2): 3, (2, 1): 4, (2, 3): 2} - # I've removed fractional exponent support in ETuple when moving to a sparse C integer array - #sage: PolyDict({(2/3,3,5):2, (1,2,1):3, (2,1):4}, force_int_exponents=False) - #PolyDict with representation {(2, 1): 4, (1, 2, 1): 3, (2/3, 3, 5): 2} - sage: PolyDict({(2,3):0, (1,2):3, (2,1):4}, remove_zero=True) PolyDict with representation {(1, 2): 3, (2, 1): 4} sage: PolyDict({(0,0):RIF(-1,1)}, remove_zero=True) PolyDict with representation {(0, 0): 0.?} + + TESTS:: + + sage: from sage.rings.polynomial.polydict import PolyDict + sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) + sage: len(f) + 3 + sage: f = PolyDict({}, zero=3, force_int_exponents=True, force_etuples=True) + doctest:warning + ... + DeprecationWarning: the arguments "zero", "forced_int_exponents" and "forced_etuples" of PolyDict constructor are deprecated + See https://trac.sagemath.org/34000 for details. """ + if zero is not None or force_int_exponents is not None or force_etuples is not None: + from sage.misc.superseded import deprecation + deprecation(34000, 'the arguments "zero", "forced_int_exponents" and "forced_etuples" of PolyDict constructor are deprecated') + cdef dict v - if not isinstance(pdict, dict): - if isinstance(pdict, list): - v = {} - L = pdict - for w in L: - if w[0] != 0: - v[ETuple(w[1])] = w[0] - remove_zero = False - pdict = v - else: - raise TypeError("pdict must be a list") - - if isinstance(pdict, dict) and force_etuples is True: - v = pdict - pdict = {} - for k, val in v.iteritems(): - pdict[ETuple(k)] = val - - if force_int_exponents: - new_pdict = {} - if remove_zero and zero is not None: - for k, c in pdict.iteritems(): - if not c == zero: - new_pdict[ETuple([int(i) for i in k])] = c - else: - for k, c in pdict.iteritems(): - new_pdict[ETuple([int(i) for i in k])] = c - pdict = new_pdict + if isinstance(pdict, list): + v = {} + L = pdict + for w in L: + if w[0]: + v[ETuple(w[1])] = w[0] + remove_zero = False + elif isinstance(pdict, dict): + v = pdict else: - if remove_zero and zero is not None: - for k in list(pdict): - if pdict[k] == zero: - del pdict[k] - self.__repn = pdict - self.__zero = zero + raise TypeError("pdict must be a dict or a list") + + for k in list(v): + if type(k) is not ETuple: + val = v[k] + del v[k] + v[ETuple(k)] = val + + self.__repn = v + if remove_zero: + self._remove_zero() + + cpdef _remove_zero(self): + r""" + Remove the zero entries. + + EXAMPLES:: + + sage: from sage.rings.polynomial.polydict import PolyDict + sage: f = PolyDict({(2,3):0}, remove_zero=False) + sage: f + PolyDict with representation {(2, 3): 0} + sage: f._remove_zero() + sage: f + PolyDict with representation {} + """ + # TODO: this forces the creation of a list of the exponents of this polynomial which + # is a bit of a waste + for k in list(self.__repn): + if not self.__repn[k]: + del self.__repn[k] + + def coerce_coefficients(self, Parent A): + r""" + Coerce the coefficients in the parent ``A`` + """ + for k, v in self.__repn.items(): + self.__repn[k] = A.coerce(v) + + cdef PolyDict _new(self, dict pdict): + cdef PolyDict ans = PolyDict.__new__(PolyDict) + ans.__repn = pdict + return ans def __hash__(self): """ Return the hash. - The hash of two PolyDicts is the same whether or not they use ETuples - for their keys since that's just an implementation detail. - EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict sage: PD1 = PolyDict({(2,3):0, (1,2):3, (2,1):4}) - sage: PD2 = PolyDict({(2,3):0, (1,2):3, (2,1):4}, remove_zero=True) - sage: PD3 = PolyDict({(2,3):0, (1,2):3, (2,1):4}, - ....: force_etuples=False, force_int_exponents=False) - sage: PD4 = PolyDict({(2,3):0, (1,2):3, (2,1):4}, zero=4) + sage: PD2 = PolyDict({(2,3):0, (1,2):3, (2,1):4}) + sage: PD3 = PolyDict({(2,3):1, (1,2):3, (2,1):4}) sage: hash(PD1) == hash(PD2) - False - sage: hash(PD1) == hash(PolyDict({(2,3):0, (1,2):3, (2,1):4})) True sage: hash(PD1) == hash(PD3) - True - sage: hash(PD3) == hash(PolyDict({(2,3):0, (1,2):3, (2,1):4}, - ....: force_etuples=False)) - True - sage: hash(PD1) == hash(PD4) False - sage: hash(PD4) == hash(PolyDict({(2,3):0, (1,2):3, (2,1):4}, - ....: zero=4)) - True """ + return hash(frozenset(self.__repn.items())) + + def __bool__(self): + return bool(self.__repn) - repn = frozenset((tuple(key), val) for key, val in self.__repn.items()) - return hash((type(self), repn, self.__zero)) + def __len__(self): + return len(self.__repn) def __richcmp__(PolyDict left, PolyDict right, int op): """ @@ -220,15 +253,16 @@ cdef class PolyDict: sage: p3.rich_compare(p4, op_LT, O.sortkey) False """ - if sortkey is not None: - # start with biggest - left = iter(sorted(self.__repn, key=sortkey, reverse=True)) - right = iter(sorted(other.__repn, key=sortkey, reverse=True)) - elif not (op == Py_EQ or op == Py_NE): + if op == Py_EQ: + return self.__repn == other.__repn + elif op == Py_NE: + return self.__repn != other.__repn + elif sortkey is None: raise TypeError("ordering of PolyDicts requires a sortkey") - else: - return (op == Py_EQ) == (self.__repn == other.__repn) + # start with biggest + left = iter(sorted(self.__repn, key=sortkey, reverse=True)) + right = iter(sorted(other.__repn, key=sortkey, reverse=True)) for m in left: try: @@ -259,7 +293,7 @@ cdef class PolyDict: except StopIteration: return rich_to_bool(op, 0) # both have no terms - def list(PolyDict self): + def list(self): """ Return a list that defines ``self``. It is safe to change this. @@ -271,11 +305,11 @@ cdef class PolyDict: [[2, [2, 3]], [3, [1, 2]], [4, [2, 1]]] """ ret = [] - for e, c in self.__repn.iteritems(): + for e, c in self.__repn.items(): ret.append([c, list(e)]) return ret - def dict(PolyDict self): + def dict(self): """ Return a copy of the dict that defines self. It is safe to change this. For a reference, use dictref. @@ -289,7 +323,7 @@ cdef class PolyDict: """ return self.__repn.copy() - def coefficients(PolyDict self): + def coefficients(self): """ Return the coefficients of self. @@ -302,7 +336,7 @@ cdef class PolyDict: """ return list(self.__repn.values()) - def exponents(PolyDict self): + def exponents(self): """ Return the exponents of self. @@ -315,20 +349,7 @@ cdef class PolyDict: """ return list(self.__repn) - def __len__(PolyDict self): - """ - Return the number of terms of the polynomial. - - EXAMPLES:: - - sage: from sage.rings.polynomial.polydict import PolyDict - sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) - sage: len(f) - 3 - """ - return len(self.__repn) - - def __getitem__(PolyDict self, e): + def __getitem__(self, e): """ Return a coefficient of the polynomial. @@ -341,29 +362,35 @@ cdef class PolyDict: sage: f[(2,1)] 4 """ - return self.__repn[ETuple(e)] + if type(e) is not ETuple: + e = ETuple(e) + return self.__repn[e] def __repr__(PolyDict self): repn = ' '.join(pformat(self.__repn).splitlines()) return 'PolyDict with representation %s' % repn def degree(PolyDict self, PolyDict x=None): + r""" + Return the total degree or the maximum degree in the variable ``x``. + + EXAMPLES:: + + sage: from sage.rings.polynomial.polydict import PolyDict + sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) + sage: f.degree() + 5 + sage: f.degree(PolyDict({(1, 0): 1})) + 2 + sage: f.degree(PolyDict({(0, 1): 1})) + 3 + """ if x is None: return self.total_degree() - L = list(x.__repn) - if len(L) != 1: - raise TypeError("x must be one of the generators of the parent.") - L = L[0] - nonzero_positions = L.nonzero_positions() - if len(nonzero_positions) != 1: - raise TypeError("x must be one of the generators of the parent.") - i = nonzero_positions[0] - if L[i] != 1: - raise TypeError("x must be one of the generators of the parent.") - _max = [] - for v in self.__repn: - _max.append(v[i]) - return max(_max or [-1]) + cdef size_t i = gen_index(x) + if not self.__repn: + return -1 + return max(( e).get_exp(i) for e in self.__repn) def valuation(PolyDict self, PolyDict x=None): if x is None: @@ -385,26 +412,39 @@ cdef class PolyDict: _min.append(sum(m for m in v.nonzero_values(sort=False) if m < 0)) return min(_min) - L = list(x.__repn) - if len(L) != 1: - raise TypeError("x must be one of the generators of the parent.") - L = L[0] - nonzero_positions = L.nonzero_positions() - if len(nonzero_positions) != 1: - raise TypeError("x must be one of the generators of the parent.") - i = nonzero_positions[0] - if L[i] != 1: - raise TypeError("x must be one of the generators of the parent.") - _min = [] - for v in self.__repn: - _min.append(v[i]) - return min(_min) - - def total_degree(PolyDict self): - return max([-1] + [sum(k) for k in self.__repn]) + i = gen_index(x) + return min(( e).get_exp(i) for e in self.__repn) + + def total_degree(PolyDict self, tuple w=None): + r""" + Return the total degree. + + INPUT: + + - ``w`` (optional) -- a tuple of weights + + EXAMPLES:: + + sage: from sage.rings.polynomial.polydict import PolyDict + sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) + sage: f.total_degree() + 5 + sage: f.total_degree((3, 1)) + 9 + sage: PolyDict({}).degree() + -1 + """ + if not self.__repn: + return -1 + if w is None: + return max(( e).unweighted_degree() for e in self.__repn) + else: + return max(( e).weighted_degree(w) for e in self.__repn) def monomial_coefficient(PolyDict self, mon): """ + Return the coefficient of the monomial ``mon``. + INPUT: a PolyDict with a single key @@ -443,10 +483,11 @@ cdef class PolyDict: """ nz = [] cdef int i - for i from 0<=i 1: + return False + return not any(e for e in self.__repn) - def homogenize(PolyDict self, var): - R = self.__repn - H = {} + def homogenize(PolyDict self, int var): + r""" + Homogeneize self by increasing the degree of the variable ``var``. + + EXAMPLES:: + + sage: from sage.rings.polynomial.polydict import PolyDict + sage: f = PolyDict({(0, 0): 1, (2, 1): 3, (1, 1): 5}) + sage: f.homogenize(0) + PolyDict with representation {(2, 1): 8, (3, 0): 1} + sage: f.homogenize(1) + PolyDict with representation {(0, 3): 1, (1, 2): 5, (2, 1): 3} + """ + cdef dict H = {} deg = self.degree() - for e, val in R.iteritems(): - i = deg - sum(e) - f = list(e) - f[var] += i - H[ETuple(f)] = val - return PolyDict(H, zero=self.__zero, force_etuples=False) + for e, val in self.__repn.items(): + f = ( e).eadd_p(deg - ( e).unweighted_degree(), var) + if f in H: + H[f] += val + else: + H[f] = val + return self._new(H) def latex(PolyDict self, vars, atomic_exponents=True, atomic_coefficients=True, sortkey=None): @@ -543,14 +615,6 @@ cdef class PolyDict: sage: f.latex(['a', 'WW']) '2 a^{2} WW^{3} + 4 a^{2} WW + 3 a WW^{2}' - When ``atomic_exponents`` is False, the exponents are surrounded in - parenthesis, since ^ has such high precedence:: - - # I've removed fractional exponent support in ETuple when moving to a sparse C integer array - #sage: f = PolyDict({(2/3,3,5):2, (1,2,1):3, (2,1,1):4}, force_int_exponents=False) - #sage: f.latex(['a', 'b', 'c'], atomic_exponents=False) - #'4 a^{2}bc + 3 ab^{2}c + 2 a^{2/3}b^{3}c^{5}' - TESTS: We check that the issue on :trac:`9478` is resolved:: @@ -567,6 +631,9 @@ cdef class PolyDict: sage: PolyDict({(1, 0): GF(2)(1)}).latex(['x', 'y']) 'x' """ + if not self: + return "0" + n = len(vars) poly = "" @@ -576,8 +643,6 @@ cdef class PolyDict: E = sorted(self.__repn, **sort_kwargs) - if not E: - return "0" try: ring = self.__repn[E[0]].parent() pos_one = ring.one() @@ -591,7 +656,9 @@ cdef class PolyDict: for e in E: c = self.__repn[e] - if not c == self.__zero: + if not c: + raise RuntimeError + else: sign_switch = False # First determine the multinomial: multi = " ".join([vars[j] + @@ -645,14 +712,6 @@ cdef class PolyDict: sage: f.poly_repr(['a', 'WW']) '2*a^2*WW^3 + 4*a^2*WW + 3*a*WW^2' - When atomic_exponents is ``False``, the exponents are surrounded - in parenthesis, since ^ has such high precedence. :: - - # I've removed fractional exponent support in ETuple when moving to a sparse C integer array - #sage: f = PolyDict({(2/3,3,5):2, (1,2,1):3, (2,1,1):4}, force_int_exponents=False) - #sage: f.poly_repr(['a', 'b', 'c'], atomic_exponents=False) - #'4*a^(2)*b*c + 3*a*b^(2)*c + 2*a^(2/3)*b^(3)*c^(5)' - We check to make sure that when we are in characteristic two, we don't put negative signs on the generators. :: @@ -700,7 +759,9 @@ cdef class PolyDict: for e in E: c = self.__repn[e] - if not c == self.__zero: + if not c: + raise RuntimeError + else: sign_switch = False # First determine the multinomial: multi = "" @@ -742,6 +803,50 @@ cdef class PolyDict: return "0" return poly + def __iadd__(PolyDict self, PolyDict other): + r""" + Inplace addition + + EXAMPLES:: + + sage: from sage.rings.polynomial.polydict import PolyDict + sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) + sage: g = PolyDict({(1,5):-3, (2,3):-2, (1,1):3}) + sage: f += g + sage: f + PolyDict with representation {(1, 1): 3, (1, 2): 3, (1, 5): -3, (2, 1): 4} + """ + cdef dict D = self.__repn + cdef bint clean = False + if self is other: + for e in D: + v = D[e] + D[e] += v + clean |= not D[e] + else: + for e, c in other.__repn.items(): + if e in list(D): + D[e] += c + clean |= not D[e] + else: + D[e] = c + if clean: + self._remove_zero() + return self + + def __neg__(self): + r""" + TESTS:: + + sage: from sage.rings.polynomial.polydict import PolyDict + sage: -PolyDict({(2,3):2, (1,2):3, (2,1):4}) + PolyDict with representation {(1, 2): -3, (2, 1): -4, (2, 3): -2} + """ + cdef dict D = self.__repn.copy() + for e, c in D.items(): + D[e] = -c + return self._new(D) + def __add__(PolyDict self, PolyDict other): """ Add two PolyDict's in the same number of variables. @@ -756,25 +861,27 @@ cdef class PolyDict: sage: f + g PolyDict with representation {(1, 1): 3, (1, 2): 3, (1, 5): -3, (2, 1): 4} - Next we add two polynomials with fractional exponents in 3 variables:: - - # I've removed fractional exponent support in ETuple when moving to a sparse C integer array - #sage: f = PolyDict({(2/3,3,5):2, (1,2,1):3, (2,1,1):4}, force_int_exponents=False) - #sage: g = PolyDict({(2/3,3,5):3}, force_int_exponents=False) - #sage: f+g - #PolyDict with representation {(1, 2, 1): 3, (2/3, 3, 5): 5, (2, 1, 1): 4} - """ - zero = self.__zero - # D = copy.copy(self.__repn) - D = self.__repn.copy() # faster! - R = other.__repn - for e, c in R.iteritems(): - try: + sage: K = GF(2) + sage: f = PolyDict({(1, 1): K(1)}) + sage: f + f + PolyDict with representation {} + """ + cdef dict D = self.__repn + cdef dict R = other.__repn + cdef bint clean = False + if len(D) < len(R): + D, R = R, D + D = D.copy() + for e, c in R.items(): + if e in D: D[e] += c - except KeyError: + clean |= not D[e] + else: D[e] = c - return PolyDict(D, zero=zero, remove_zero=True, - force_int_exponents=False, force_etuples=False) + ans = self._new(D) + if clean: + ans._remove_zero() + return ans def __mul__(PolyDict self, PolyDict right): """ @@ -790,20 +897,24 @@ cdef class PolyDict: PolyDict with representation {(2, 3): 9, (2, 7): -9, (3, 2): 12, (3, 4): 6, (3, 5): -6, (3, 6): -12, (3, 8): -6, (4, 4): -8, (4, 6): -4} """ cdef PyObject *cc - newpoly = {} - if len(self.__repn) == 0: # product is zero anyways + cdef dict newpoly = {} + if not self.__repn: # product is zero anyways return self - for e0, c0 in self.__repn.iteritems(): - for e1, c1 in right.__repn.iteritems(): + for e0, c0 in self.__repn.items(): + for e1, c1 in right.__repn.items(): + if type(e0) is not ETuple or type(e1) is not ETuple: + raise RuntimeError e = (e0).eadd(e1) - c = c0*c1 - cc = PyDict_GetItem(newpoly, e) - if cc == 0: - PyDict_SetItem(newpoly, e, c) - else: - PyDict_SetItem(newpoly, e, cc+c) - F = PolyDict(newpoly, self.__zero, force_int_exponents=False, remove_zero=True, force_etuples=False) - return F + c = c0 * c1 + if c: + cc = PyDict_GetItem(newpoly, e) + if cc == 0: + PyDict_SetItem(newpoly, e, c) + else: + PyDict_SetItem(newpoly, e, cc+c) + ans = self._new(newpoly) + ans._remove_zero() + return ans def scalar_rmult(PolyDict self, s): """ @@ -822,12 +933,13 @@ cdef class PolyDict: sage: f.scalar_rmult(RIF(-1,1)) PolyDict with representation {(1, 2): 0.?e1, (2, 1): 0.?e1, (2, 3): 0.?e1} """ - v = {} - # if s is 0, then all the products will be zero - if not s == self.__zero: - for e, c in self.__repn.iteritems(): - v[e] = c*s - return PolyDict(v, self.__zero, force_int_exponents=False, force_etuples=False) + cdef dict v = {} + if s: + for e, c in self.__repn.items(): + cmult = c * s + if cmult: + v[e] = cmult + return self._new(v) def scalar_lmult(PolyDict self, s): """ @@ -846,12 +958,13 @@ cdef class PolyDict: sage: f.scalar_lmult(RIF(-1,1)) PolyDict with representation {(1, 2): 0.?e1, (2, 1): 0.?e1, (2, 3): 0.?e1} """ - v = {} - # if s is 0, then all the products will be zero - if not s == self.__zero: - for e, c in self.__repn.iteritems(): - v[e] = s*c - return PolyDict(v, self.__zero, force_int_exponents=False, force_etuples=False) + cdef dict v = {} + if s: + for e, c in self.__repn.items(): + cmult = s * c + if cmult: + v[e] = cmult + return self._new(v) def term_lmult(self, exponent, s): """ @@ -877,12 +990,13 @@ cdef class PolyDict: PolyDict with representation {(2, 4): -6, (3, 3): -8, (3, 5): -4} """ - v = {} - # if s is 0, then all the products will be zero - if not s == self.__zero: - for e, c in self.__repn.iteritems(): - v[e.eadd(exponent)] = s*c - return PolyDict(v, self.__zero, force_int_exponents=False, force_etuples=False) + cdef dict v = {} + if s: + for e, c in self.__repn.items(): + cmult = s * c + if cmult: + v[e.eadd(exponent)] = cmult + return self._new(v) def term_rmult(self, exponent, s): """ @@ -908,15 +1022,15 @@ cdef class PolyDict: PolyDict with representation {(2, 4): -6, (3, 3): -8, (3, 5): -4} """ - v = {} - # if s is 0, then all the products will be zero - if not s == self.__zero: - for e, c in self.__repn.iteritems(): - v[e.eadd(exponent)] = c*s - return PolyDict(v, self.__zero, force_int_exponents=False, force_etuples=False) - + cdef dict v = {} + if s: + for e, c in self.__repn.items(): + cmult = c * s + if cmult: + v[e.eadd(exponent)] = cmult + return self._new(v) - def __sub__(PolyDict self, PolyDict other): + def __sub__(PolyDict self, PolyDict other): """ Subtract two PolyDict's. @@ -929,18 +1043,22 @@ cdef class PolyDict: PolyDict with representation {(1, 1): 10, (1, 2): 3, (2, 1): 4} sage: g - f PolyDict with representation {(1, 1): -10, (1, 2): -3, (2, 1): -4} - """ - - # TODO: should refactor add, make abstract operator, so can do both +/-; or copy code. - return self + other.scalar_lmult(-1) - - def __one(PolyDict self): - one = self.__zero + 1 - if len(self.__repn) == 0: - v = {(0):one} - else: - v = {ETuple({}, len(next(iter(self.__repn)))): one} - return PolyDict(v, self.__zero, force_int_exponents=False, force_etuples=False) + sage: f - f + PolyDict with representation {} + """ + cdef dict D = self.__repn.copy() + cdef dict R = other.__repn + cdef bint clean = False + for e, c in R.items(): + if e in D: + D[e] -= c + clean |= not D[e] + else: + D[e] = -c + ans = self._new(D) + if clean: + ans._remove_zero() + return ans def __pow__(PolyDict self, n, ignored): """ @@ -953,14 +1071,72 @@ cdef class PolyDict: sage: f**2 PolyDict with representation {(2, 4): 9, (3, 3): 24, (3, 5): 12, (4, 2): 16, (4, 4): 16, (4, 6): 4} sage: f**0 - PolyDict with representation {(0, 0): 1} - sage: (f-f)**0 - PolyDict with representation {0: 1} + Traceback (most recent call last): + ... + NotImplementedError """ if not n: - return self.__one() + raise NotImplementedError return generic_power(self, n) + def derivative(self, PolyDict x): + r""" + Return the derivative of ``self`` with respect to ``x`` + + EXAMPLES:: + + sage: from sage.rings.polynomial.polydict import PolyDict + sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) + sage: f.derivative(PolyDict({(1,0): 1})) + PolyDict with representation {(0, 2): 3, (1, 1): 8, (1, 3): 4} + sage: f.derivative(PolyDict({(0,1): 1})) + PolyDict with representation {(1, 1): 6, (2, 0): 4, (2, 2): 6} + + + sage: PolyDict({(-1,): 1}).derivative(PolyDict({(1,): 1})) + PolyDict with representation {(-2,): -1} + sage: PolyDict({(-2,): 1}).derivative(PolyDict({(1,): 1})) + PolyDict with representation {(-3,): -2} + """ + cdef size_t i = gen_index(x) + cdef dict D = {} + for e, c in self.__repn.items(): + cderiv = c * ( e).get_exp(i) + if cderiv: + D[( e).eadd_p(-1, i)] = cderiv + return self._new(D) + + def integral(self, PolyDict x): + r""" + Return the integral of ``self`` with respect to ``x`` + + EXAMPLES:: + + sage: from sage.rings.polynomial.polydict import PolyDict + sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) + sage: f.integral(PolyDict({(1,0): 1})) + PolyDict with representation {(2, 2): 3/2, (3, 1): 4/3, (3, 3): 2/3} + sage: f.integral(PolyDict({(0,1): 1})) + PolyDict with representation {(1, 3): 1, (2, 2): 2, (2, 4): 1/2} + + sage: PolyDict({(-1,): 1}).integral(PolyDict({(1,): 1})) + Traceback (most recent call last): + ... + ArithmeticError: integral of monomial with exponent -1 + sage: PolyDict({(-2,): 1}).integral(PolyDict({(1,): 1})) + PolyDict with representation {(-1,): -1} + """ + cdef size_t i = gen_index(x) + cdef dict D = {} + cdef int exp + for e, c in self.__repn.items(): + exp = ( e).get_exp(i) + if exp == -1: + raise ArithmeticError('integral of monomial with exponent -1') + cint = c / (exp + 1) + D[( e).eadd_p(1, i)] = cint + return self._new(D) + def lcmt(PolyDict self, greater_etuple): """ Provides functionality of lc, lm, and lt by calling the tuple @@ -1125,6 +1301,8 @@ cdef class ETuple: (1, 1, 0) sage: ETuple({int(1): int(2)}, int(3)) (0, 2, 0) + sage: ETuple([1, -1, 0]) + (1, -1, 0) TESTS: @@ -1178,6 +1356,20 @@ cdef class ETuple: if self._data != 0: sig_free(self._data) + def __bool__(self): + r""" + TESTS:: + + sage: from sage.rings.polynomial.polydict import ETuple + sage: bool(ETuple([1])) + True + sage: bool(ETuple([])) + False + sage: bool(ETuple([0,0,0])) + False + """ + return bool(self._nonzero) + # methods to simulate tuple def __add__(ETuple self, ETuple other): @@ -1276,7 +1468,7 @@ cdef class ETuple: return 0 return 0 - cdef size_t get_exp(ETuple self, int i): + cdef int get_exp(ETuple self, size_t i): """ Return the exponent for the ``i``-th variable. """ @@ -1508,7 +1700,7 @@ cdef class ETuple: @cython.boundscheck(False) @cython.wraparound(False) - cdef size_t weighted_degree(self, tuple w): + cpdef size_t weighted_degree(self, tuple w): r""" Return the weighted sum of entries. @@ -1523,7 +1715,8 @@ cdef class ETuple: """ cdef size_t i cdef size_t deg = 0 - assert len(w) == self._length + if len(w) != self._length: + raise ValueError for i in range(0, 2*self._nonzero, 2): deg += self._data[i+1] * w[self._data[i]] return deg @@ -2241,8 +2434,7 @@ cdef class ETuple: def make_PolyDict(data): - return PolyDict(data, remove_zero=False, force_int_exponents=False, - force_etuples=False) + return PolyDict(data, remove_zero=False) def make_ETuple(data, length): From 7a5c0d7256f3d596e457871c29744e52f3191df2 Mon Sep 17 00:00:00 2001 From: Vincent Delecroix <20100.delecroix@gmail.com*> Date: Thu, 16 Jun 2022 18:26:13 +0200 Subject: [PATCH 168/249] 34000: remove PolyDict.__pow__ --- src/sage/rings/polynomial/polydict.pyx | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index 6e19283c4e7..c12d29735db 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -1060,25 +1060,6 @@ cdef class PolyDict: ans._remove_zero() return ans - def __pow__(PolyDict self, n, ignored): - """ - Return the n-th nonnegative power of this PolyDict. - - EXAMPLES:: - - sage: from sage.rings.polynomial.polydict import PolyDict - sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) - sage: f**2 - PolyDict with representation {(2, 4): 9, (3, 3): 24, (3, 5): 12, (4, 2): 16, (4, 4): 16, (4, 6): 4} - sage: f**0 - Traceback (most recent call last): - ... - NotImplementedError - """ - if not n: - raise NotImplementedError - return generic_power(self, n) - def derivative(self, PolyDict x): r""" Return the derivative of ``self`` with respect to ``x`` From d516cef168c4fc32e94689066b1e606ce947dd5c Mon Sep 17 00:00:00 2001 From: Vincent Delecroix <20100.delecroix@gmail.com*> Date: Sat, 18 Jun 2022 21:27:24 +0200 Subject: [PATCH 169/249] 34000: cleaner optimization in derivative/integral --- .../polynomial/multi_polynomial_element.py | 44 ++++++----- src/sage/rings/polynomial/polydict.pyx | 73 ++++++++++++++----- 2 files changed, 80 insertions(+), 37 deletions(-) diff --git a/src/sage/rings/polynomial/multi_polynomial_element.py b/src/sage/rings/polynomial/multi_polynomial_element.py index 2c1c47f1ced..e66eb7499a3 100644 --- a/src/sage/rings/polynomial/multi_polynomial_element.py +++ b/src/sage/rings/polynomial/multi_polynomial_element.py @@ -1832,12 +1832,10 @@ def _derivative(self, var=None): raise ValueError("must specify which variable to differentiate with respect to") P = self.parent() - gens = list(P.gens()) # check if var is one of the generators - try: - index = gens.index(var) - except ValueError: + index = polydict.gen_index(P(var).element()) + if index == -1: # var is not a generator; do term-by-term differentiation recursively # var may be, for example, a generator of the base ring d = dict([(e, x._derivative(var)) for (e, x) in self.dict().items()]) @@ -1845,7 +1843,7 @@ def _derivative(self, var=None): return MPolynomial_polydict(P, d) # differentiate w.r.t. indicated variable - return MPolynomial_polydict(P, self.element().derivative(P(var).element())) + return MPolynomial_polydict(P, self.element().derivative_i(index)) def integral(self, var=None): r""" @@ -1897,39 +1895,47 @@ def integral(self, var=None): Traceback (most recent call last): ... ValueError: must specify which variable to integrate with respect to + + :trac:`34000`:: + + sage: R = ZZ['x']['y,z'] + sage: y, z = R.gens() + sage: parent(y.integral(y)) + Multivariate Polynomial Ring in y, z over Univariate Polynomial Ring in x over Rational Field """ if var is None: raise ValueError("must specify which variable to integrate " "with respect to") + + + # TODO: + # calling the coercion model bin_op is much more accurate than using the + # true division (which is bypassed by polynomials). But it does not work + # in all cases!! + # See similar in polynomial_element.pyx P = self.parent() cm = get_coercion_model() try: S = cm.bin_op(P.one(), sage.rings.integer_ring.ZZ.one(), operator.truediv).parent() - Q = S.base_ring() except TypeError: Q = (P.base_ring().one() / sage.rings.integer_ring.ZZ.one()).parent() S = P.change_ring(Q) - gens = list(P.gens()) + if P is not S: + return S.coerce(self).derivative(var) # check if var is one of the generators - try: - index = gens.index(var) - except ValueError: + index = polydict.gen_index(P(var).element()) + if index == -1: # var is not a generator; do term-by-term integration recursively # var may be, for example, a generator of the base ring d = dict([(e, x.integral(var)) for (e, x) in self.dict().items()]) d = polydict.PolyDict(d, remove_zero=True) - if P.base_ring() is not Q: - d.coerce_coefficients(Q) - return MPolynomial_polydict(S, d) - - # integrate w.r.t. indicated variable - d = self.element().integral(P(var).element()) - if P.base_ring() is not Q: - d.coerce_coefficients(Q) - return MPolynomial_polydict(S, d) + else: + # integrate w.r.t. indicated variable + d = self.element().integral_i(index) + return MPolynomial_polydict(P, d) def factor(self, proof=None): r""" diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index c12d29735db..cdc727b44c7 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -57,12 +57,28 @@ from sage.misc.misc import cputime from sage.misc.latex import latex -cdef size_t gen_index(PolyDict x) except *: +def gen_index(PolyDict x): + r""" + Return the index of the variable represented by ``x`` or ``-1`` if ``x`` + is not a monomial of degree one. + + EXAMPLES:: + + sage: from sage.rings.polynomial.polydict import PolyDict, gen_index + sage: gen_index(PolyDict({(1, 0): 1})) + 0 + sage: gen_index(PolyDict({(0, 1): 1})) + 1 + sage: gen_index(PolyDict({})) + -1 + """ if len(x.__repn) != 1: - raise TypeError("x must be one of the generators of the parent") + return -1 cdef ETuple e = next(iter(x.__repn)) if e._nonzero != 1 or e._data[1] != 1: - raise TypeError("x must be one of the generators of the parent") + return -1 + if not next(iter(x.__repn.values())).is_one(): + return -1 return e._data[0] @@ -1060,6 +1076,23 @@ cdef class PolyDict: ans._remove_zero() return ans + def derivative_i(self, size_t i): + r""" + Return the derivative of ``self`` with respect to the ``i``-th variable. + + EXAMPLES:: + + sage: from sage.rings.polynomial.polydict import PolyDict + sage: PolyDict({(1, 1): 1}).derivative_i(0) + PolyDict with representation {(0, 1): 1} + """ + cdef dict D = {} + for e, c in self.__repn.items(): + cderiv = c * ( e).get_exp(i) + if cderiv: + D[( e).eadd_p(-1, i)] = cderiv + return self._new(D) + def derivative(self, PolyDict x): r""" Return the derivative of ``self`` with respect to ``x`` @@ -1073,18 +1106,31 @@ cdef class PolyDict: sage: f.derivative(PolyDict({(0,1): 1})) PolyDict with representation {(1, 1): 6, (2, 0): 4, (2, 2): 6} - sage: PolyDict({(-1,): 1}).derivative(PolyDict({(1,): 1})) PolyDict with representation {(-2,): -1} sage: PolyDict({(-2,): 1}).derivative(PolyDict({(1,): 1})) PolyDict with representation {(-3,): -2} """ - cdef size_t i = gen_index(x) + return self.derivative_i(gen_index(x)) + + def integral_i(self, size_t i): + r""" + Return the derivative of ``self`` with respect to the ``i``-th variable. + + EXAMPLES:: + + sage: from sage.rings.polynomial.polydict import PolyDict + sage: PolyDict({(1, 1): 1}).integral_i(0) + PolyDict with representation {(2, 1): 1/2} + """ cdef dict D = {} + cdef int exp for e, c in self.__repn.items(): - cderiv = c * ( e).get_exp(i) - if cderiv: - D[( e).eadd_p(-1, i)] = cderiv + exp = ( e).get_exp(i) + if exp == -1: + raise ArithmeticError('integral of monomial with exponent -1') + cint = c / (exp + 1) + D[( e).eadd_p(1, i)] = cint return self._new(D) def integral(self, PolyDict x): @@ -1107,16 +1153,7 @@ cdef class PolyDict: sage: PolyDict({(-2,): 1}).integral(PolyDict({(1,): 1})) PolyDict with representation {(-1,): -1} """ - cdef size_t i = gen_index(x) - cdef dict D = {} - cdef int exp - for e, c in self.__repn.items(): - exp = ( e).get_exp(i) - if exp == -1: - raise ArithmeticError('integral of monomial with exponent -1') - cint = c / (exp + 1) - D[( e).eadd_p(1, i)] = cint - return self._new(D) + return self.integral_i(gen_index(x)) def lcmt(PolyDict self, greater_etuple): """ From cd246f71254257ae0b61e749932a21779cb2bf5a Mon Sep 17 00:00:00 2001 From: Vincent Delecroix <20100.delecroix@gmail.com*> Date: Sat, 18 Jun 2022 21:28:04 +0200 Subject: [PATCH 170/249] 34000: clarify RuntimeError --- src/sage/rings/polynomial/polydict.pyx | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index cdc727b44c7..325f12d3b2d 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -15,9 +15,11 @@ polynomials ``{(e1,...,er):c1,...} <-> c1*x1^e1*...*xr^er+...``, which we call a polydict. The exponent tuple ``(e1,...,er)`` in this -representation is an instance of the class :class:`ETuple`. This class behaves -like a normal Python tuple but also offers advanced access methods for sparse -monomials like positions of non-zero exponents etc. +representation is an instance of the class :class:`ETuple`. The value +corresponding to the given exponent is the coefficient and it is +assumed to be nonwero. This class behaves like a normal Python tuple but also +offers advanced access methods for sparse monomials like positions of non-zero +exponents etc. AUTHORS: @@ -81,10 +83,13 @@ def gen_index(PolyDict x): return -1 return e._data[0] - cdef class PolyDict: r""" - PolyDict is essentially a dictionary all of whose keys are :class:`ETuple`. + PolyDict is a dictionary all of whose keys are :class:`ETuple` and whose values + are coefficients on which arithmetic operations can be performed. + + The values correspond to coefficients of polynomials and it is assumed that + there always nonzero. """ def __init__(PolyDict self, pdict, zero=None, remove_zero=False, force_int_exponents=None, force_etuples=None): """ @@ -673,7 +678,7 @@ cdef class PolyDict: for e in E: c = self.__repn[e] if not c: - raise RuntimeError + raise RuntimeError('invalid zero coefficient') else: sign_switch = False # First determine the multinomial: @@ -776,7 +781,7 @@ cdef class PolyDict: for e in E: c = self.__repn[e] if not c: - raise RuntimeError + raise RuntimeError('invalid zero coefficient') else: sign_switch = False # First determine the multinomial: @@ -919,7 +924,7 @@ cdef class PolyDict: for e0, c0 in self.__repn.items(): for e1, c1 in right.__repn.items(): if type(e0) is not ETuple or type(e1) is not ETuple: - raise RuntimeError + raise RuntimeError('invalid key which is not a ETuple') e = (e0).eadd(e1) c = c0 * c1 if c: From 8a360831b53a9af46dd8680593563db00f41cfaf Mon Sep 17 00:00:00 2001 From: Vincent Delecroix <20100.delecroix@gmail.com*> Date: Sat, 18 Jun 2022 21:28:24 +0200 Subject: [PATCH 171/249] 34000: two little optimizations --- src/sage/rings/polynomial/polydict.pxd | 1 - src/sage/rings/polynomial/polydict.pyx | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pxd b/src/sage/rings/polynomial/polydict.pxd index fdbab0e5059..8ed3272b1e6 100644 --- a/src/sage/rings/polynomial/polydict.pxd +++ b/src/sage/rings/polynomial/polydict.pxd @@ -34,4 +34,3 @@ cdef class ETuple: cpdef ETuple reversed(ETuple self) cdef ETuple _new(ETuple self) cdef int get_exp(ETuple self, size_t i) - diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index 325f12d3b2d..a7f54f1725e 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -1016,7 +1016,7 @@ cdef class PolyDict: for e, c in self.__repn.items(): cmult = s * c if cmult: - v[e.eadd(exponent)] = cmult + v[( e).eadd(exponent)] = cmult return self._new(v) def term_rmult(self, exponent, s): @@ -1048,7 +1048,7 @@ cdef class PolyDict: for e, c in self.__repn.items(): cmult = c * s if cmult: - v[e.eadd(exponent)] = cmult + v[( e).eadd(exponent)] = cmult return self._new(v) def __sub__(PolyDict self, PolyDict other): From d5fd6567923c083767a8ccdd9efe196dc72e5ec4 Mon Sep 17 00:00:00 2001 From: Vincent Delecroix <20100.delecroix@gmail.com*> Date: Sat, 18 Jun 2022 21:42:20 +0200 Subject: [PATCH 172/249] 34000: replace RuntimeError with assertion --- src/sage/rings/polynomial/polydict.pyx | 132 ++++++++++++------------- 1 file changed, 63 insertions(+), 69 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index a7f54f1725e..83b2a0c6c4a 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -677,37 +677,35 @@ cdef class PolyDict: for e in E: c = self.__repn[e] - if not c: - raise RuntimeError('invalid zero coefficient') - else: - sign_switch = False - # First determine the multinomial: - multi = " ".join([vars[j] + - ("^{%s}" % e[j] if e[j] != 1 else "") - for j in e.nonzero_positions(sort=True)]) - # Next determine coefficient of multinomial - if len(multi) == 0: - multi = latex(c) - elif c == neg_one and not is_characteristic_2: - # handle -1 specially because it's a pain - if len(poly) > 0: - sign_switch = True - else: - multi = "-%s" % multi - elif c != pos_one: - c = latex(c) - if (not atomic_coefficients and multi and - ('+' in c or '-' in c or ' ' in c)): - c = "\\left(%s\\right)" % c - multi = "%s %s" % (c, multi) - - # Now add on coefficiented multinomials + assert c, "invalid zero coefficient" + sign_switch = False + # First determine the multinomial: + multi = " ".join([vars[j] + + ("^{%s}" % e[j] if e[j] != 1 else "") + for j in e.nonzero_positions(sort=True)]) + # Next determine coefficient of multinomial + if len(multi) == 0: + multi = latex(c) + elif c == neg_one and not is_characteristic_2: + # handle -1 specially because it's a pain if len(poly) > 0: - if sign_switch: - poly = poly + " - " - else: - poly = poly + " + " - poly = poly + multi + sign_switch = True + else: + multi = "-%s" % multi + elif c != pos_one: + c = latex(c) + if (not atomic_coefficients and multi and + ('+' in c or '-' in c or ' ' in c)): + c = "\\left(%s\\right)" % c + multi = "%s %s" % (c, multi) + + # Now add on coefficiented multinomials + if len(poly) > 0: + if sign_switch: + poly = poly + " - " + else: + poly = poly + " + " + poly = poly + multi poly = poly.lstrip().rstrip() poly = poly.replace("+ -", "- ") if len(poly) == 0: @@ -780,44 +778,42 @@ cdef class PolyDict: for e in E: c = self.__repn[e] - if not c: - raise RuntimeError('invalid zero coefficient') - else: - sign_switch = False - # First determine the multinomial: - multi = "" - for j in e.nonzero_positions(sort=True): - if len(multi) > 0: - multi = multi + "*" - multi = multi + vars[j] - if e[j] != 1: - if atomic_exponents: - multi = multi + "^%s" % e[j] - else: - multi = multi + "^(%s)" % e[j] - # Next determine coefficient of multinomial - if len(multi) == 0: - multi = str(c) - elif c == neg_one and not is_characteristic_2: - # handle -1 specially because it's a pain - if len(poly) > 0: - sign_switch = True + assert c, "invalid zero coefficient" + sign_switch = False + # First determine the multinomial: + multi = "" + for j in e.nonzero_positions(sort=True): + if len(multi) > 0: + multi = multi + "*" + multi = multi + vars[j] + if e[j] != 1: + if atomic_exponents: + multi = multi + "^%s" % e[j] else: - multi = "-%s" % multi - elif not c == pos_one: - if not atomic_coefficients: - c = str(c) - if c.find("+") != -1 or c.find("-") != -1 or c.find(" ") != -1: - c = "(%s)" % c - multi = "%s*%s" % (c, multi) - - # Now add on coefficiented multinomials + multi = multi + "^(%s)" % e[j] + # Next determine coefficient of multinomial + if len(multi) == 0: + multi = str(c) + elif c == neg_one and not is_characteristic_2: + # handle -1 specially because it's a pain if len(poly) > 0: - if sign_switch: - poly = poly + " - " - else: - poly = poly + " + " - poly = poly + multi + sign_switch = True + else: + multi = "-%s" % multi + elif not c == pos_one: + if not atomic_coefficients: + c = str(c) + if c.find("+") != -1 or c.find("-") != -1 or c.find(" ") != -1: + c = "(%s)" % c + multi = "%s*%s" % (c, multi) + + # Now add on coefficiented multinomials + if len(poly) > 0: + if sign_switch: + poly = poly + " - " + else: + poly = poly + " + " + poly = poly + multi poly = poly.lstrip().rstrip() poly = poly.replace("+ -", "- ") if len(poly) == 0: @@ -923,9 +919,7 @@ cdef class PolyDict: return self for e0, c0 in self.__repn.items(): for e1, c1 in right.__repn.items(): - if type(e0) is not ETuple or type(e1) is not ETuple: - raise RuntimeError('invalid key which is not a ETuple') - e = (e0).eadd(e1) + e = ( e0).eadd( e1) c = c0 * c1 if c: cc = PyDict_GetItem(newpoly, e) From 182d75639d8fef73b7ad1967f422023750def0db Mon Sep 17 00:00:00 2001 From: Vincent Delecroix <20100.delecroix@gmail.com*> Date: Sun, 19 Jun 2022 10:53:17 +0200 Subject: [PATCH 173/249] 34000: fix Polydict.homogenize and ETuple.eadd_p --- src/sage/rings/polynomial/polydict.pxd | 2 +- src/sage/rings/polynomial/polydict.pyx | 105 +++++++++++++++---------- 2 files changed, 65 insertions(+), 42 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pxd b/src/sage/rings/polynomial/polydict.pxd index 8ed3272b1e6..b706f2898bc 100644 --- a/src/sage/rings/polynomial/polydict.pxd +++ b/src/sage/rings/polynomial/polydict.pxd @@ -19,7 +19,7 @@ cdef class ETuple: cpdef ETuple emul(ETuple self, int factor) cpdef ETuple emin(ETuple self, ETuple other) cpdef ETuple emax(ETuple self, ETuple other) - cpdef ETuple eadd_p(ETuple self, int other, int pos) + cpdef ETuple eadd_p(ETuple self, int other, size_t pos) cpdef ETuple eadd_scaled(ETuple self, ETuple other, int scalar) cpdef int dotprod(ETuple self, ETuple other) cpdef ETuple escalar_div(ETuple self, int n) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index 83b2a0c6c4a..5469a6093a9 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -594,7 +594,7 @@ cdef class PolyDict: return False return not any(e for e in self.__repn) - def homogenize(PolyDict self, int var): + def homogenize(PolyDict self, size_t var): r""" Homogeneize self by increasing the degree of the variable ``var``. @@ -608,9 +608,14 @@ cdef class PolyDict: PolyDict with representation {(0, 3): 1, (1, 2): 5, (2, 1): 3} """ cdef dict H = {} - deg = self.degree() + cdef int deg = self.degree() + cdef int shift for e, val in self.__repn.items(): - f = ( e).eadd_p(deg - ( e).unweighted_degree(), var) + shift = deg - ( e).unweighted_degree() + if shift: + f = ( e).eadd_p(shift, var) + else: + f = e if f in H: H[f] += val else: @@ -1865,7 +1870,7 @@ cdef class ETuple: result._nonzero += 1 return result - cpdef ETuple eadd_p(ETuple self, int other, int pos): + cpdef ETuple eadd_p(ETuple self, int other, size_t pos): """ Add ``other`` to ``self`` at position ``pos``. @@ -1882,53 +1887,71 @@ cdef class ETuple: sage: ETuple([0,1]).eadd_p(1, 0) == ETuple([1,1]) True + sage: e = ETuple([0, 1, 0]) + sage: e.eadd_p(0, 0).nonzero_positions() + [1] + sage: e.eadd_p(0, 1).nonzero_positions() + [1] + sage: e.eadd_p(0, 2).nonzero_positions() + [1] + + TESTS: + + :trac:`34000`:: + + sage: e = ETuple([0, 1, 0]) + sage: e.eadd_p(0, 0).nonzero_positions() + [1] + sage: e.eadd_p(0, 1).nonzero_positions() + [1] + sage: e.eadd_p(0, 2).nonzero_positions() + [1] + sage: e.eadd_p(-1, 1).nonzero_positions() + [] """ - cdef size_t index = 0 + cdef size_t sindex = 0 cdef size_t rindex = 0 cdef int new_value - cdef int need_to_add = 1 - if pos < 0 or pos >= self._length: + if pos >= self._length: raise ValueError("pos must be between 0 and %s" % self._length) - cdef size_t alloc_len = self._nonzero + 1 - - cdef ETuple result = self._new() + cdef ETuple result = self._new() result._nonzero = self._nonzero - result._data = sig_malloc(sizeof(int)*alloc_len*2) + if not other: + # return a copy + result._data = sig_malloc(sizeof(int) * self._nonzero * 2) + memcpy(result._data, self._data, sizeof(int) * self._nonzero * 2) + return result - for index from 0 <= index < self._nonzero: - if self._data[2*index] == pos: - new_value = self._data[2*index+1] + other - if new_value != 0: - result._data[2*rindex] = pos - result._data[2*rindex+1] = new_value - else: - result._nonzero -= 1 - rindex -= 1 - need_to_add = 0 + result._data = sig_malloc(sizeof(int) * (self._nonzero + 1) * 2) + while sindex < self._nonzero and self._data[2*sindex] < pos: + result._data[2*sindex] = self._data[2*sindex] + result._data[2*sindex+1] = self._data[2*sindex+1] + sindex += 1 + + if sindex < self._nonzero and self._data[2*sindex] == pos: + new_value = self._data[2*sindex+1] + other + if new_value: + result._data[2*sindex] = pos + result._data[2*sindex+1] = new_value + sindex += 1 + rindex = sindex else: - result._data[2*rindex] = self._data[2*index] - result._data[2*rindex+1] = self._data[2*index+1] - + result._nonzero -= 1 + rindex = sindex + sindex += 1 + else: + result._data[2*sindex] = pos + result._data[2*sindex+1] = other + result._nonzero += 1 + rindex = sindex + 1 + + while sindex < self._nonzero: + result._data[2*rindex] = self._data[2*sindex] + result._data[2*rindex+1] = self._data[2*sindex+1] + sindex += 1 rindex += 1 - rindex = 0 - if need_to_add: - for index from 0 <= index < self._nonzero: - if self._data[2*index] > pos: - result._data[2*rindex] = pos - result._data[2*rindex+1] = other - rindex += 1 - result._nonzero += 1 - result._data[2*rindex] = self._data[2*index] - result._data[2*rindex+1] = self._data[2*index+1] - rindex += 1 - - if rindex == index and other: - result._data[2*rindex] = pos - result._data[2*rindex+1] = other - result._nonzero += 1 - return result cpdef ETuple eadd_scaled(ETuple self, ETuple other, int scalar): From 366436fdd50ee684f8c3b6dbaa4a2cd9aeaaff42 Mon Sep 17 00:00:00 2001 From: Vincent Delecroix <20100.delecroix@gmail.com*> Date: Sun, 19 Jun 2022 11:50:07 +0200 Subject: [PATCH 174/249] 34000: fix zero coefficient in PolyDict.homogenize --- src/sage/rings/polynomial/polydict.pyx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index 5469a6093a9..98b80c7e120 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -596,7 +596,8 @@ cdef class PolyDict: def homogenize(PolyDict self, size_t var): r""" - Homogeneize self by increasing the degree of the variable ``var``. + Return the homogeneization of ``self`` by increasing the degree of the + variable ``var``. EXAMPLES:: @@ -606,6 +607,9 @@ cdef class PolyDict: PolyDict with representation {(2, 1): 8, (3, 0): 1} sage: f.homogenize(1) PolyDict with representation {(0, 3): 1, (1, 2): 5, (2, 1): 3} + + sage: PolyDict({(0, 1): 1, (1, 1): -1}).homogenize(0) + PolyDict with representation {} """ cdef dict H = {} cdef int deg = self.degree() @@ -618,6 +622,8 @@ cdef class PolyDict: f = e if f in H: H[f] += val + if not H[f]: + del H[f] else: H[f] = val return self._new(H) From 052cd623b0023dec06398e6664613a6111a3e76e Mon Sep 17 00:00:00 2001 From: Vincent Delecroix <20100.delecroix@gmail.com*> Date: Sun, 19 Jun 2022 15:31:41 +0200 Subject: [PATCH 175/249] 34000: make a copy of input in PolyDict.__init__ --- src/sage/rings/polynomial/polydict.pyx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index 98b80c7e120..74fa96aabf4 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -144,7 +144,7 @@ cdef class PolyDict: v[ETuple(w[1])] = w[0] remove_zero = False elif isinstance(pdict, dict): - v = pdict + v = pdict.copy() else: raise TypeError("pdict must be a dict or a list") From 012e322fc74c88e984e2fb99edac58a2645b2e0a Mon Sep 17 00:00:00 2001 From: Vincent Delecroix <20100.delecroix@gmail.com*> Date: Sun, 19 Jun 2022 21:27:27 +0200 Subject: [PATCH 176/249] 34000: do not simplify zero coefficients in PolyDict --- .../polynomial/multi_polynomial_element.py | 27 +++-- src/sage/rings/polynomial/polydict.pxd | 2 +- src/sage/rings/polynomial/polydict.pyx | 101 +++++------------- 3 files changed, 50 insertions(+), 80 deletions(-) diff --git a/src/sage/rings/polynomial/multi_polynomial_element.py b/src/sage/rings/polynomial/multi_polynomial_element.py index e66eb7499a3..a302c0517dc 100644 --- a/src/sage/rings/polynomial/multi_polynomial_element.py +++ b/src/sage/rings/polynomial/multi_polynomial_element.py @@ -271,13 +271,19 @@ def __neg__(self): return self.__class__(self.parent(), -self.__element) def _add_(self, right): - return self.__class__(self.parent(), self.__element + right.__element) + elt = self.__element + right.__element + elt.remove_zeros() + return self.__class__(self.parent(), elt) def _sub_(self, right): - return self.__class__(self.parent(), self.__element - right.__element) + elt = self.__element - right.__element + elt.remove_zeros() + return self.__class__(self.parent(), elt) def _mul_(self, right): - return self.__class__(self.parent(), self.__element * right.__element) + elt = self.__element * right.__element + elt.remove_zeros() + return self.__class__(self.parent(), elt) def _lmul_(self, a): """ @@ -296,7 +302,9 @@ def _lmul_(self, a): sage: 3*f 3*x + 3*y """ - return self.__class__(self.parent(), self.__element.scalar_lmult(a)) + elt = self.__element.scalar_lmult(a) + elt.remove_zeros() + return self.__class__(self.parent(), elt) def _rmul_(self, a): """ @@ -315,7 +323,9 @@ def _rmul_(self, a): sage: f*3 3*x + 3*y """ - return self.__class__(self.parent(), self.__element.scalar_rmult(a)) + elt = self.__element.scalar_rmult(a) + elt.remove_zeros() + return self.__class__(self.parent(), elt) def _div_(self, right): r""" @@ -346,7 +356,7 @@ def _div_(self, right): sage: x/S(2) 1/2*x """ - if right in self.base_ring(): + if right.is_constant(): inv = self.base_ring().one() / self.base_ring()(right) return inv * self return self.parent().fraction_field()(self, right, coerce=False) @@ -1271,6 +1281,7 @@ def _homogenize(self, var): if self.is_homogeneous(): return self X = self.element().homogenize(var) + X.remove_zeros() R = self.parent() return R(X) @@ -1843,7 +1854,9 @@ def _derivative(self, var=None): return MPolynomial_polydict(P, d) # differentiate w.r.t. indicated variable - return MPolynomial_polydict(P, self.element().derivative_i(index)) + elt = self.element().derivative_i(index) + elt.remove_zeros() + return MPolynomial_polydict(P, elt) def integral(self, var=None): r""" diff --git a/src/sage/rings/polynomial/polydict.pxd b/src/sage/rings/polynomial/polydict.pxd index b706f2898bc..736bf49558d 100644 --- a/src/sage/rings/polynomial/polydict.pxd +++ b/src/sage/rings/polynomial/polydict.pxd @@ -2,7 +2,7 @@ cdef class PolyDict: cdef dict __repn cdef PolyDict _new(self, dict pdict) - cpdef _remove_zero(self) + cpdef remove_zeros(self) cdef class ETuple: diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index 74fa96aabf4..6f5463aaf68 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -16,10 +16,7 @@ polynomials which we call a polydict. The exponent tuple ``(e1,...,er)`` in this representation is an instance of the class :class:`ETuple`. The value -corresponding to the given exponent is the coefficient and it is -assumed to be nonwero. This class behaves like a normal Python tuple but also -offers advanced access methods for sparse monomials like positions of non-zero -exponents etc. +corresponding to the given exponent. AUTHORS: @@ -87,9 +84,6 @@ cdef class PolyDict: r""" PolyDict is a dictionary all of whose keys are :class:`ETuple` and whose values are coefficients on which arithmetic operations can be performed. - - The values correspond to coefficients of polynomials and it is assumed that - there always nonzero. """ def __init__(PolyDict self, pdict, zero=None, remove_zero=False, force_int_exponents=None, force_etuples=None): """ @@ -140,9 +134,7 @@ cdef class PolyDict: v = {} L = pdict for w in L: - if w[0]: - v[ETuple(w[1])] = w[0] - remove_zero = False + v[ETuple(w[1])] = w[0] elif isinstance(pdict, dict): v = pdict.copy() else: @@ -156,11 +148,11 @@ cdef class PolyDict: self.__repn = v if remove_zero: - self._remove_zero() + self.remove_zeros() - cpdef _remove_zero(self): + cpdef remove_zeros(self): r""" - Remove the zero entries. + Remove the entries with zero coefficients. EXAMPLES:: @@ -168,12 +160,10 @@ cdef class PolyDict: sage: f = PolyDict({(2,3):0}, remove_zero=False) sage: f PolyDict with representation {(2, 3): 0} - sage: f._remove_zero() + sage: f.remove_zeros() sage: f PolyDict with representation {} """ - # TODO: this forces the creation of a list of the exponents of this polynomial which - # is a bit of a waste for k in list(self.__repn): if not self.__repn[k]: del self.__repn[k] @@ -609,7 +599,7 @@ cdef class PolyDict: PolyDict with representation {(0, 3): 1, (1, 2): 5, (2, 1): 3} sage: PolyDict({(0, 1): 1, (1, 1): -1}).homogenize(0) - PolyDict with representation {} + PolyDict with representation {(1, 1): 0} """ cdef dict H = {} cdef int deg = self.degree() @@ -622,8 +612,6 @@ cdef class PolyDict: f = e if f in H: H[f] += val - if not H[f]: - del H[f] else: H[f] = val return self._new(H) @@ -688,7 +676,6 @@ cdef class PolyDict: for e in E: c = self.__repn[e] - assert c, "invalid zero coefficient" sign_switch = False # First determine the multinomial: multi = " ".join([vars[j] + @@ -789,7 +776,6 @@ cdef class PolyDict: for e in E: c = self.__repn[e] - assert c, "invalid zero coefficient" sign_switch = False # First determine the multinomial: multi = "" @@ -842,7 +828,7 @@ cdef class PolyDict: sage: g = PolyDict({(1,5):-3, (2,3):-2, (1,1):3}) sage: f += g sage: f - PolyDict with representation {(1, 1): 3, (1, 2): 3, (1, 5): -3, (2, 1): 4} + PolyDict with representation {(1, 1): 3, (1, 2): 3, (1, 5): -3, (2, 1): 4, (2, 3): 0} """ cdef dict D = self.__repn cdef bint clean = False @@ -850,16 +836,12 @@ cdef class PolyDict: for e in D: v = D[e] D[e] += v - clean |= not D[e] else: for e, c in other.__repn.items(): - if e in list(D): + if e in D: D[e] += c - clean |= not D[e] else: D[e] = c - if clean: - self._remove_zero() return self def __neg__(self): @@ -887,29 +869,24 @@ cdef class PolyDict: sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) sage: g = PolyDict({(1,5):-3, (2,3):-2, (1,1):3}) sage: f + g - PolyDict with representation {(1, 1): 3, (1, 2): 3, (1, 5): -3, (2, 1): 4} + PolyDict with representation {(1, 1): 3, (1, 2): 3, (1, 5): -3, (2, 1): 4, (2, 3): 0} sage: K = GF(2) sage: f = PolyDict({(1, 1): K(1)}) sage: f + f - PolyDict with representation {} + PolyDict with representation {(1, 1): 0} """ cdef dict D = self.__repn cdef dict R = other.__repn - cdef bint clean = False if len(D) < len(R): D, R = R, D D = D.copy() for e, c in R.items(): if e in D: D[e] += c - clean |= not D[e] else: D[e] = c - ans = self._new(D) - if clean: - ans._remove_zero() - return ans + return self._new(D) def __mul__(PolyDict self, PolyDict right): """ @@ -928,6 +905,8 @@ cdef class PolyDict: cdef dict newpoly = {} if not self.__repn: # product is zero anyways return self + elif not right.__repn: + return right for e0, c0 in self.__repn.items(): for e1, c1 in right.__repn.items(): e = ( e0).eadd( e1) @@ -938,9 +917,7 @@ cdef class PolyDict: PyDict_SetItem(newpoly, e, c) else: PyDict_SetItem(newpoly, e, cc+c) - ans = self._new(newpoly) - ans._remove_zero() - return ans + return self._new(newpoly) def scalar_rmult(PolyDict self, s): """ @@ -960,11 +937,8 @@ cdef class PolyDict: PolyDict with representation {(1, 2): 0.?e1, (2, 1): 0.?e1, (2, 3): 0.?e1} """ cdef dict v = {} - if s: - for e, c in self.__repn.items(): - cmult = c * s - if cmult: - v[e] = cmult + for e, c in self.__repn.items(): + v[e] = c * s return self._new(v) def scalar_lmult(PolyDict self, s): @@ -985,11 +959,8 @@ cdef class PolyDict: PolyDict with representation {(1, 2): 0.?e1, (2, 1): 0.?e1, (2, 3): 0.?e1} """ cdef dict v = {} - if s: - for e, c in self.__repn.items(): - cmult = s * c - if cmult: - v[e] = cmult + for e, c in self.__repn.items(): + v[e] = s * c return self._new(v) def term_lmult(self, exponent, s): @@ -1017,11 +988,8 @@ cdef class PolyDict: """ cdef dict v = {} - if s: - for e, c in self.__repn.items(): - cmult = s * c - if cmult: - v[( e).eadd(exponent)] = cmult + for e, c in self.__repn.items(): + v[( e).eadd(exponent)] = s*c return self._new(v) def term_rmult(self, exponent, s): @@ -1049,11 +1017,8 @@ cdef class PolyDict: """ cdef dict v = {} - if s: - for e, c in self.__repn.items(): - cmult = c * s - if cmult: - v[( e).eadd(exponent)] = cmult + for e, c in self.__repn.items(): + v[( e).eadd(exponent)] = c * s return self._new(v) def __sub__(PolyDict self, PolyDict other): @@ -1066,25 +1031,20 @@ cdef class PolyDict: sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) sage: g = PolyDict({(2,3):2, (1,1):-10}) sage: f - g - PolyDict with representation {(1, 1): 10, (1, 2): 3, (2, 1): 4} + PolyDict with representation {(1, 1): 10, (1, 2): 3, (2, 1): 4, (2, 3): 0} sage: g - f - PolyDict with representation {(1, 1): -10, (1, 2): -3, (2, 1): -4} + PolyDict with representation {(1, 1): -10, (1, 2): -3, (2, 1): -4, (2, 3): 0} sage: f - f - PolyDict with representation {} + PolyDict with representation {(1, 2): 0, (2, 1): 0, (2, 3): 0} """ cdef dict D = self.__repn.copy() cdef dict R = other.__repn - cdef bint clean = False for e, c in R.items(): if e in D: D[e] -= c - clean |= not D[e] else: D[e] = -c - ans = self._new(D) - if clean: - ans._remove_zero() - return ans + return self._new(D) def derivative_i(self, size_t i): r""" @@ -1098,9 +1058,7 @@ cdef class PolyDict: """ cdef dict D = {} for e, c in self.__repn.items(): - cderiv = c * ( e).get_exp(i) - if cderiv: - D[( e).eadd_p(-1, i)] = cderiv + D[( e).eadd_p(-1, i)] = c * ( e).get_exp(i) return self._new(D) def derivative(self, PolyDict x): @@ -1139,8 +1097,7 @@ cdef class PolyDict: exp = ( e).get_exp(i) if exp == -1: raise ArithmeticError('integral of monomial with exponent -1') - cint = c / (exp + 1) - D[( e).eadd_p(1, i)] = cint + D[( e).eadd_p(1, i)] = c / (exp + 1) return self._new(D) def integral(self, PolyDict x): From d21202e7ea3babdbf8ea8103d0ff6435a5b79e48 Mon Sep 17 00:00:00 2001 From: Vincent Delecroix <20100.delecroix@gmail.com*> Date: Fri, 12 Aug 2022 17:50:12 +0200 Subject: [PATCH 177/249] 34000: fix doctest in multi_polynomial.pyx --- src/sage/rings/polynomial/multi_polynomial.pyx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/rings/polynomial/multi_polynomial.pyx b/src/sage/rings/polynomial/multi_polynomial.pyx index 4f8e47049a2..4bc83de2693 100644 --- a/src/sage/rings/polynomial/multi_polynomial.pyx +++ b/src/sage/rings/polynomial/multi_polynomial.pyx @@ -2344,7 +2344,7 @@ cdef class MPolynomial(CommutativeRingElement): sage: F.reduced_form(prec=50, smallest_coeffs=False) Traceback (most recent call last): ... - ValueError: accuracy of Newton's root not within tolerance(0.0000124... > 1e-06), increase precision + ValueError: accuracy of Newton's root not within tolerance(0.000012... > 1e-06), increase precision sage: F.reduced_form(prec=100, smallest_coeffs=False) ( [-1 -1] From 6d9cefa7c54c2f7f794490e781c9501f8e366b3b Mon Sep 17 00:00:00 2001 From: Vincent Delecroix <20100.delecroix@gmail.com*> Date: Fri, 12 Aug 2022 17:59:18 +0200 Subject: [PATCH 178/249] 34000: change tate algebras doctests --- src/sage/rings/tate_algebra_ideal.pyx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sage/rings/tate_algebra_ideal.pyx b/src/sage/rings/tate_algebra_ideal.pyx index 84d1b05b3db..9d4fd1f63b8 100644 --- a/src/sage/rings/tate_algebra_ideal.pyx +++ b/src/sage/rings/tate_algebra_ideal.pyx @@ -858,7 +858,7 @@ def groebner_basis_pote(I, prec, verbose=0): sage: I.groebner_basis(algorithm="PoTe", prec=100) # indirect doctest [...0000000001*x^3 + ...2222222222*y + ...000000000*x^2*y^2 + O(3^99 * ), ...0000000001*x^2*y + ...01210121020 + O(3^100 * ), - ...0000000001*y^2 + ...01210121020*x + ...000000000*x^2*y^3 + ...0000000000*x^3*y + O(3^99 * )] + ...0000000001*y^2 + ...01210121020*x + ...0000000000*x^3*y + O(3^99 * )] """ cdef TateAlgebraElement g, v cdef TateAlgebraTerm s, sv, S, ti, tj @@ -1104,7 +1104,7 @@ def groebner_basis_vapote(I, prec, verbose=0, interrupt_red_with_val=False, inte sage: I.groebner_basis(algorithm="VaPoTe", prec=100) # indirect doctest [...0000000001*x^3 + ...2222222222*y + ...000000000*x^2*y^2 + O(3^99 * ), ...0000000001*x^2*y + ...01210121020 + O(3^100 * ), - ...0000000001*y^2 + ...01210121020*x + ...000000000*x^2*y^3 + ...0000000000*x^3*y + O(3^99 * )] + ...0000000001*y^2 + ...01210121020*x + ...0000000000*x^3*y + O(3^99 * )] """ cdef TateAlgebraElement g, v cdef TateAlgebraTerm s, S, sv, ti, tj From 75cafe7766f2657a827ec7252cdfed3c7a3f8b30 Mon Sep 17 00:00:00 2001 From: Vincent Delecroix <20100.delecroix@gmail.com*> Date: Fri, 12 Aug 2022 18:01:29 +0200 Subject: [PATCH 179/249] 34000: doc details --- src/sage/rings/polynomial/polydict.pyx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index 6f5463aaf68..164c68eadf7 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -1,8 +1,9 @@ """ -PolyDict engine for generic multivariate polynomial rings +PolyDict data structure for generic multivariate polynomial rings -This module provides an implementation of the underlying arithmetic for -multi-variate polynomial rings using Python dicts. +This module provides an implementation of a generic data structure and the +underlying arithmetic for multi-variate polynomial rings. It is based on +Python dictionaries. This class is not meant for end users, but instead for implementing multivariate polynomial rings over a completely general base. It does @@ -16,7 +17,7 @@ polynomials which we call a polydict. The exponent tuple ``(e1,...,er)`` in this representation is an instance of the class :class:`ETuple`. The value -corresponding to the given exponent. +corresponding to a given exponent is the corresponding coefficient. AUTHORS: From 5d86a9261d4b2437a7fe056d360c27ab5a13c98a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Chapoton?= Date: Sun, 12 Feb 2023 14:29:55 +0100 Subject: [PATCH 180/249] some fixes for ticket 34000 --- .../polynomial/multi_polynomial_element.py | 29 ++++++++-- src/sage/rings/polynomial/polydict.pyx | 53 ++++++++++++++----- 2 files changed, 65 insertions(+), 17 deletions(-) diff --git a/src/sage/rings/polynomial/multi_polynomial_element.py b/src/sage/rings/polynomial/multi_polynomial_element.py index a302c0517dc..40c56bc264c 100644 --- a/src/sage/rings/polynomial/multi_polynomial_element.py +++ b/src/sage/rings/polynomial/multi_polynomial_element.py @@ -271,16 +271,37 @@ def __neg__(self): return self.__class__(self.parent(), -self.__element) def _add_(self, right): + """ + EXAMPLES:: + + sage: R. = QQbar[] + sage: x + y + x + y + """ elt = self.__element + right.__element elt.remove_zeros() return self.__class__(self.parent(), elt) def _sub_(self, right): + """ + EXAMPLES:: + + sage: R. = QQbar[] + sage: x - y + x - y + """ elt = self.__element - right.__element elt.remove_zeros() return self.__class__(self.parent(), elt) def _mul_(self, right): + """ + EXAMPLES:: + + sage: R. = QQbar[] + sage: x * y + x y + """ elt = self.__element * right.__element elt.remove_zeros() return self.__class__(self.parent(), elt) @@ -1860,7 +1881,7 @@ def _derivative(self, var=None): def integral(self, var=None): r""" - Integrates ``self`` with respect to variable ``var``. + Integrate ``self`` with respect to variable ``var``. .. NOTE:: @@ -1935,15 +1956,15 @@ def integral(self, var=None): S = P.change_ring(Q) if P is not S: - return S.coerce(self).derivative(var) + return S.coerce(self).integral(var) # check if var is one of the generators index = polydict.gen_index(P(var).element()) if index == -1: # var is not a generator; do term-by-term integration recursively # var may be, for example, a generator of the base ring - d = dict([(e, x.integral(var)) - for (e, x) in self.dict().items()]) + d = {e: x.integral(var) + for e, x in self.dict().items()} d = polydict.PolyDict(d, remove_zero=True) else: # integrate w.r.t. indicated variable diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index 164c68eadf7..f4b11cf7d56 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -133,8 +133,7 @@ cdef class PolyDict: if isinstance(pdict, list): v = {} - L = pdict - for w in L: + for w in pdict: v[ETuple(w[1])] = w[0] elif isinstance(pdict, dict): v = pdict.copy() @@ -172,6 +171,15 @@ cdef class PolyDict: def coerce_coefficients(self, Parent A): r""" Coerce the coefficients in the parent ``A`` + + EXAMPLES:: + + sage: from sage.rings.polynomial.polydict import PolyDict + sage: f = PolyDict({(2,3):0}, remove_zero=False) + sage: f + PolyDict with representation {(2, 3): 0} + sage: f.coerce_coefficients(QQ) + ? """ for k, v in self.__repn.items(): self.__repn[k] = A.coerce(v) @@ -199,9 +207,29 @@ cdef class PolyDict: return hash(frozenset(self.__repn.items())) def __bool__(self): + """ + Return whether the PolyDict is empty. + + EXAMPLES:: + + sage: from sage.rings.polynomial.polydict import PolyDict + sage: PD1 = PolyDict({(2,3):0, (1,2):3, (2,1):4}) + sage: bool(PD1) + True + """ return bool(self.__repn) def __len__(self): + """ + Return the length. + + EXAMPLES:: + + sage: from sage.rings.polynomial.polydict import PolyDict + sage: PD1 = PolyDict({(2,3):0, (1,2):3, (2,1):4}) + sage: len(PD1) + 3 + """ return len(self.__repn) def __richcmp__(PolyDict left, PolyDict right, int op): @@ -307,7 +335,9 @@ cdef class PolyDict: def list(self): """ - Return a list that defines ``self``. It is safe to change this. + Return a list that defines ``self``. + + It is safe to change this. EXAMPLES:: @@ -316,15 +346,13 @@ cdef class PolyDict: sage: sorted(f.list()) [[2, [2, 3]], [3, [1, 2]], [4, [2, 1]]] """ - ret = [] - for e, c in self.__repn.items(): - ret.append([c, list(e)]) - return ret + return [[c, list(e)] for e, c in self.__repn.items()] def dict(self): """ - Return a copy of the dict that defines self. It is - safe to change this. For a reference, use dictref. + Return a copy of the dict that defines ``self``. + + It is safe to change this. For a reference, use dictref. EXAMPLES:: @@ -337,7 +365,7 @@ cdef class PolyDict: def coefficients(self): """ - Return the coefficients of self. + Return the coefficients of ``self``. EXAMPLES:: @@ -350,7 +378,7 @@ cdef class PolyDict: def exponents(self): """ - Return the exponents of self. + Return the exponents of ``self``. EXAMPLES:: @@ -374,7 +402,7 @@ cdef class PolyDict: sage: f[(2,1)] 4 """ - if type(e) is not ETuple: + if not isintance(e, ETuple): e = ETuple(e) return self.__repn[e] @@ -832,7 +860,6 @@ cdef class PolyDict: PolyDict with representation {(1, 1): 3, (1, 2): 3, (1, 5): -3, (2, 1): 4, (2, 3): 0} """ cdef dict D = self.__repn - cdef bint clean = False if self is other: for e in D: v = D[e] From 1b6c82e591c3b946623cd3b9d55d537777b964a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Chapoton?= Date: Sun, 12 Feb 2023 16:22:14 +0100 Subject: [PATCH 181/249] fix doctests --- src/sage/rings/polynomial/multi_polynomial_element.py | 2 +- src/sage/rings/polynomial/polydict.pyx | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sage/rings/polynomial/multi_polynomial_element.py b/src/sage/rings/polynomial/multi_polynomial_element.py index 40c56bc264c..b70840414c6 100644 --- a/src/sage/rings/polynomial/multi_polynomial_element.py +++ b/src/sage/rings/polynomial/multi_polynomial_element.py @@ -300,7 +300,7 @@ def _mul_(self, right): sage: R. = QQbar[] sage: x * y - x y + x*y """ elt = self.__element * right.__element elt.remove_zeros() diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index f4b11cf7d56..dc9c3cdcc84 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -178,8 +178,8 @@ cdef class PolyDict: sage: f = PolyDict({(2,3):0}, remove_zero=False) sage: f PolyDict with representation {(2, 3): 0} - sage: f.coerce_coefficients(QQ) - ? + sage: f.coerce_coefficients(QQ); f + PolyDict with representation {(2, 3): 0} """ for k, v in self.__repn.items(): self.__repn[k] = A.coerce(v) @@ -402,7 +402,7 @@ cdef class PolyDict: sage: f[(2,1)] 4 """ - if not isintance(e, ETuple): + if not isinstance(e, ETuple): e = ETuple(e) return self.__repn[e] From b82030f625d7d1e7ab443f74b0195116602b0bb8 Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Wed, 22 Feb 2023 18:27:14 +0100 Subject: [PATCH 182/249] 34000: declare all degree methods as cpdef and doctest some of them --- src/sage/rings/polynomial/polydict.pxd | 11 +++-- src/sage/rings/polynomial/polydict.pyx | 61 ++++++++++++++------------ 2 files changed, 41 insertions(+), 31 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pxd b/src/sage/rings/polynomial/polydict.pxd index 736bf49558d..7d0e0caea05 100644 --- a/src/sage/rings/polynomial/polydict.pxd +++ b/src/sage/rings/polynomial/polydict.pxd @@ -10,10 +10,11 @@ cdef class ETuple: cdef size_t _nonzero cdef int *_data - cpdef size_t unweighted_degree(self) - cpdef size_t weighted_degree(self, tuple w) - cdef size_t unweighted_quotient_degree(self, ETuple other) - cdef size_t weighted_quotient_degree(self, ETuple other, tuple w) + cpdef int unweighted_degree(self) except * + cpdef int weighted_degree(self, tuple w) except * + cpdef int unweighted_quotient_degree(self, ETuple other) except * + cpdef int weighted_quotient_degree(self, ETuple other, tuple w) except * + cpdef ETuple eadd(ETuple self, ETuple other) cpdef ETuple esub(ETuple self, ETuple other) cpdef ETuple emul(ETuple self, int factor) @@ -34,3 +35,5 @@ cdef class ETuple: cpdef ETuple reversed(ETuple self) cdef ETuple _new(ETuple self) cdef int get_exp(ETuple self, size_t i) + +cpdef int gen_index(PolyDict x) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index dc9c3cdcc84..29431505ddd 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -584,9 +584,9 @@ cdef class PolyDict: if not self.__repn: return True it = iter(self.__repn) - s = sum(next(it)) + cdef size_t s = ( next(it)).unweighted_degree() for elt in it: - if sum(elt) != s: + if ( elt).unweighted_degree() != s: return False return True @@ -1690,30 +1690,27 @@ cdef class ETuple: # additional methods - cpdef size_t unweighted_degree(self): + cpdef int unweighted_degree(self) except *: r""" Return the sum of entries. - ASSUMPTION: - - All entries are non-negative. - EXAMPLES:: sage: from sage.rings.polynomial.polydict import ETuple - sage: e = ETuple([1,1,0,2,0]) - sage: e.unweighted_degree() + sage: ETuple([1, 1, 0, 2, 0]).unweighted_degree() 4 + sage: ETuple([-1, 1]).unweighted_degree() + 0 """ - cdef size_t degree = 0 + cdef int degree = 0 cdef size_t i - for i in range(1, 2*self._nonzero, 2): - degree += self._data[i] + for i in range(self._nonzero): + degree += self._data[2 * i + 1] return degree @cython.boundscheck(False) @cython.wraparound(False) - cpdef size_t weighted_degree(self, tuple w): + cpdef int weighted_degree(self, tuple w) except *: r""" Return the weighted sum of entries. @@ -1721,20 +1718,32 @@ cdef class ETuple: - ``w`` -- tuple of non-negative integers - ASSUMPTIONS: + EXAMPLES:: - ``w`` has the same length as ``self``, and the entries of ``self`` - and ``w`` are non-negative. + sage: from sage.rings.polynomial.polydict import ETuple + sage: e = ETuple([1, 1, 0, 2, 0]) + sage: e.weighted_degree((1, 2, 3, 4, 5)) + 11 + sage: ETuple([-1, 1]).weighted_degree((1, 2)) + 1 + + sage: ETuple([1, 0]).weighted_degree((1, 2, 3)) + Traceback (most recent call last): + ... + ValueError: w must be of the same length as the ETuple """ + if len(w) != self._length: + raise ValueError('w must be of the same length as the ETuple') + cdef size_t i - cdef size_t deg = 0 + cdef int deg = 0 if len(w) != self._length: raise ValueError - for i in range(0, 2*self._nonzero, 2): - deg += self._data[i+1] * w[self._data[i]] + for i in range(0, 2 * self._nonzero, 2): + deg += self._data[i+1] * w[self._data[i]] return deg - cdef size_t unweighted_quotient_degree(self, ETuple other): + cpdef int unweighted_quotient_degree(self, ETuple other) except *: """ Degree of ``self`` divided by its gcd with ``other``. @@ -1748,7 +1757,7 @@ cdef class ETuple: cdef size_t selfnz = 2 * self._nonzero cdef size_t othernz = 2 * other._nonzero - cdef size_t deg = 0 + cdef int deg = 0 while ind1 < selfnz: position = self._data[ind1] exponent = self._data[ind1+1] @@ -1770,7 +1779,7 @@ cdef class ETuple: @cython.boundscheck(False) @cython.wraparound(False) - cdef size_t weighted_quotient_degree(self, ETuple other, tuple w): + cpdef int weighted_quotient_degree(self, ETuple other, tuple w) except *: r""" Weighted degree of ``self`` divided by its gcd with ``other``. @@ -1778,12 +1787,10 @@ cdef class ETuple: - ``other`` -- an :class:`~sage.rings.polynomial.polydict.ETuple` - ``w`` -- tuple of non-negative integers. - - ASSUMPTIONS: - - ``w`` and ``other`` have the same length as ``self``, and the - entries of ``self``, ``other`` and ``w`` are non-negative. """ + if len(w) != self._length: + raise ValueError('w must be of the same length as the ETuple') + cdef size_t ind1 = 0 # both ind1 and ind2 will be increased in double steps. cdef size_t ind2 = 0 cdef size_t exponent From 73dd75b7194eae1838cf8c559f3443c5aa84ae5a Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Wed, 22 Feb 2023 18:30:11 +0100 Subject: [PATCH 183/249] 34000: check -1 return value when calling gen_index --- src/sage/rings/polynomial/polydict.pyx | 27 +++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index 29431505ddd..9347e5c52b0 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -57,7 +57,7 @@ from sage.misc.misc import cputime from sage.misc.latex import latex -def gen_index(PolyDict x): +cpdef int gen_index(PolyDict x): r""" Return the index of the variable represented by ``x`` or ``-1`` if ``x`` is not a monomial of degree one. @@ -427,7 +427,9 @@ cdef class PolyDict: """ if x is None: return self.total_degree() - cdef size_t i = gen_index(x) + cdef int i = gen_index(x) + if i < 0: + raise ValueError('x must be a generator') if not self.__repn: return -1 return max(( e).get_exp(i) for e in self.__repn) @@ -1097,7 +1099,7 @@ cdef class PolyDict: sage: from sage.rings.polynomial.polydict import PolyDict sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) - sage: f.derivative(PolyDict({(1,0): 1})) + sage: f.derivative(PolyDict({(1, 0): 1})) PolyDict with representation {(0, 2): 3, (1, 1): 8, (1, 3): 4} sage: f.derivative(PolyDict({(0,1): 1})) PolyDict with representation {(1, 1): 6, (2, 0): 4, (2, 2): 6} @@ -1106,8 +1108,16 @@ cdef class PolyDict: PolyDict with representation {(-2,): -1} sage: PolyDict({(-2,): 1}).derivative(PolyDict({(1,): 1})) PolyDict with representation {(-3,): -2} + + sage: PolyDict({}).derivative(PolyDict({(1, 1): 1})) + Traceback (most recent call last): + ... + ValueError: x must be a generator """ - return self.derivative_i(gen_index(x)) + cdef int i = gen_index(x) + if i < 0: + raise ValueError('x must be a generator') + return self.derivative_i(i) def integral_i(self, size_t i): r""" @@ -1147,8 +1157,15 @@ cdef class PolyDict: ArithmeticError: integral of monomial with exponent -1 sage: PolyDict({(-2,): 1}).integral(PolyDict({(1,): 1})) PolyDict with representation {(-1,): -1} + sage: PolyDict({}).integral(PolyDict({(1, 1): 1})) + Traceback (most recent call last): + ... + ValueError: x must be a generator """ - return self.integral_i(gen_index(x)) + cdef int i = gen_index(x) + if i < 0: + raise ValueError('x must be a generator') + return self.integral_i(i) def lcmt(PolyDict self, greater_etuple): """ From d3124b09dda967fc8d342fe0e1e36e6b7e0f18ec Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Wed, 22 Feb 2023 18:31:21 +0100 Subject: [PATCH 184/249] 34000: deprecate remove_zero arg in constructor + remove_zeros cleaning --- src/sage/rings/polynomial/polydict.pyx | 47 +++++++++++++++++--------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index 9347e5c52b0..84dc4863b72 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -81,21 +81,25 @@ cpdef int gen_index(PolyDict x): return -1 return e._data[0] + cdef class PolyDict: r""" - PolyDict is a dictionary all of whose keys are :class:`ETuple` and whose values - are coefficients on which arithmetic operations can be performed. + Datastructure for multivariate polynomials. + + A PolyDict holds a dictionary all of whose keys are :class:`ETuple` and + whose values are coefficients on which it is implicitely assumed that + arithmetic operations can be performed. """ - def __init__(PolyDict self, pdict, zero=None, remove_zero=False, force_int_exponents=None, force_etuples=None): + def __init__(PolyDict self, pdict, zero=None, remove_zero=None, force_int_exponents=None, force_etuples=None): """ INPUT: - ``pdict`` -- dict or list, which represents a multi-variable - polynomial with the distribute representation (a copy is not made) + polynomial with the distribute representation (a copy is made) - ``zero`` -- deprecated - - ``remove_zero`` -- whether to check for zero coefficient + - ``remove_zero`` -- deprecated - ``force_int_exponents`` -- deprecated @@ -107,22 +111,29 @@ cdef class PolyDict: sage: PolyDict({(2,3):2, (1,2):3, (2,1):4}) PolyDict with representation {(1, 2): 3, (2, 1): 4, (2, 3): 2} - sage: PolyDict({(2,3):0, (1,2):3, (2,1):4}, remove_zero=True) - PolyDict with representation {(1, 2): 3, (2, 1): 4} + sage: PolyDict({(2,3):0, (1,2):3, (2,1):4}) + PolyDict with representation {(1, 2): 3, (2, 1): 4, (2, 3): 0} - sage: PolyDict({(0,0):RIF(-1,1)}, remove_zero=True) + sage: PolyDict({(0,0):RIF(-1,1)}) PolyDict with representation {(0, 0): 0.?} TESTS:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) + sage: f = PolyDict({(2, 3):2, (1, 2):3, (2, 1):4}) sage: len(f) 3 sage: f = PolyDict({}, zero=3, force_int_exponents=True, force_etuples=True) doctest:warning ... - DeprecationWarning: the arguments "zero", "forced_int_exponents" and "forced_etuples" of PolyDict constructor are deprecated + DeprecationWarning: the arguments "zero", "forced_int_exponents" + and "forced_etuples" of PolyDict constructor are deprecated + See https://trac.sagemath.org/34000 for details. + sage: f = PolyDict({}, remove_zero=False) + doctest:warning + ... + DeprecationWarning: the argument "remove_zero" of PolyDict + constructor is deprecated; call the method remove_zeros See https://trac.sagemath.org/34000 for details. """ if zero is not None or force_int_exponents is not None or force_etuples is not None: @@ -131,7 +142,7 @@ cdef class PolyDict: cdef dict v - if isinstance(pdict, list): + if isinstance(pdict, (tuple, list)): v = {} for w in pdict: v[ETuple(w[1])] = w[0] @@ -147,6 +158,9 @@ cdef class PolyDict: v[ETuple(k)] = val self.__repn = v + if remove_zero is not None: + from sage.misc.superseded import deprecation + deprecation(34000, 'the argument "remove_zero" of PolyDict constructor is deprecated; call the method remove_zeros') if remove_zero: self.remove_zeros() @@ -157,16 +171,17 @@ cdef class PolyDict: EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: f = PolyDict({(2,3):0}, remove_zero=False) + sage: f = PolyDict({(2, 3):0}) sage: f PolyDict with representation {(2, 3): 0} sage: f.remove_zeros() sage: f PolyDict with representation {} """ - for k in list(self.__repn): - if not self.__repn[k]: - del self.__repn[k] + if not all(self.__repn.values()): + for k in list(self.__repn): + if not self.__repn[k]: + del self.__repn[k] def coerce_coefficients(self, Parent A): r""" @@ -175,7 +190,7 @@ cdef class PolyDict: EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: f = PolyDict({(2,3):0}, remove_zero=False) + sage: f = PolyDict({(2, 3): 0}) sage: f PolyDict with representation {(2, 3): 0} sage: f.coerce_coefficients(QQ); f From 378502377abd8a94cb450baf543cd73a4691f138 Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Wed, 22 Feb 2023 21:06:09 +0100 Subject: [PATCH 185/249] 34000: clean PolyDict comparison --- src/sage/rings/polynomial/polydict.pyx | 77 +++++++++++++------------- 1 file changed, 40 insertions(+), 37 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index 84dc4863b72..bc6df62eb0c 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -265,22 +265,18 @@ cdef class PolyDict: sage: p1 < p2 Traceback (most recent call last): ... - TypeError: '<' not supported between instances of - 'sage.rings.polynomial.polydict.PolyDict' and - 'sage.rings.polynomial.polydict.PolyDict' + TypeError: unsupported comparison between PolyDict """ - try: - return left.rich_compare(right, op) - except TypeError: - return NotImplemented + if op == Py_EQ: + return left.__repn == right.__repn + elif op == Py_NE: + return left.__repn != right.__repn + + raise TypeError('unsupported comparison between PolyDict') def rich_compare(PolyDict self, PolyDict other, int op, sortkey=None): """ - Compare two `PolyDict`s. If a ``sortkey`` argument is given it should - be a sort key used to specify a term order. - - If not sort key is provided than only comparison by equality (``==`` or - ``!=``) is supported. + Compare two `PolyDict`s using a specified term ordering ``sortkey``. EXAMPLES:: @@ -288,18 +284,13 @@ cdef class PolyDict: sage: from sage.structure.richcmp import op_EQ, op_NE, op_LT sage: p1 = PolyDict({(0,): 1}) sage: p2 = PolyDict({(0,): 2}) - sage: p1.rich_compare(PolyDict({(0,): 1}), op_EQ) + sage: O = TermOrder() + sage: p1.rich_compare(PolyDict({(0,): 1}), op_EQ, O.sortkey) True - sage: p1.rich_compare(p2, op_EQ) + sage: p1.rich_compare(p2, op_EQ, O.sortkey) False - sage: p1.rich_compare(p2, op_NE) + sage: p1.rich_compare(p2, op_NE, O.sortkey) True - sage: p1.rich_compare(p2, op_LT) - Traceback (most recent call last): - ... - TypeError: ordering of PolyDicts requires a sortkey - - sage: O = TermOrder() sage: p1.rich_compare(p2, op_LT, O.sortkey) True @@ -307,27 +298,44 @@ cdef class PolyDict: sage: p4 = PolyDict({(3, 2, 4): 1, (3, 2, 3): 2}) sage: p3.rich_compare(p4, op_LT, O.sortkey) False + + TESTS:: + + sage: from sage.rings.polynomial.polydict import PolyDict + sage: from sage.structure.richcmp import op_EQ, op_NE, op_LT + sage: p = PolyDict({}) + sage: ans = p.rich_compare(p, op_EQ) + doctest:warning + ... + DeprecationWarning: the argument "sortkey" will become mandatory in future sage versions + See https://trac.sagemath.org/34000 for details. + sage: ans + True """ + if sortkey is None: + from sage.misc.superseded import deprecation + deprecation(34000, 'the argument "sortkey" will become mandatory in future sage versions') + if op == Py_EQ: return self.__repn == other.__repn elif op == Py_NE: return self.__repn != other.__repn - elif sortkey is None: + + if sortkey is None: raise TypeError("ordering of PolyDicts requires a sortkey") # start with biggest - left = iter(sorted(self.__repn, key=sortkey, reverse=True)) - right = iter(sorted(other.__repn, key=sortkey, reverse=True)) - - for m in left: - try: - n = next(right) - except StopIteration: - return rich_to_bool(op, 1) # left has terms, right does not + cdef list left = sorted(self.__repn, key=sortkey, reverse=True) + cdef list right = sorted(other.__repn, key=sortkey, reverse=True) - # first compare the leading monomials + cdef size_t i + for i in range(min(len(left), len(right))): + m = left[i] + n = right[i] keym = sortkey(m) keyn = sortkey(n) + + # first compare the leading monomials if keym > keyn: return rich_to_bool(op, 1) elif keym < keyn: @@ -341,12 +349,7 @@ cdef class PolyDict: elif coefm < coefn: return rich_to_bool(op, -1) - # try next pair - try: - n = next(right) - return rich_to_bool(op, -1) # right has terms, left does not - except StopIteration: - return rich_to_bool(op, 0) # both have no terms + return rich_to_bool(op, (len(left) > len(right)) - (len(left) < len(right))) def list(self): """ From 29292d644b1908a9675961d19af71580496dc875 Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Wed, 22 Feb 2023 21:06:42 +0100 Subject: [PATCH 186/249] 34000: remove PolyDict.valuation --- src/sage/rings/polynomial/polydict.pyx | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index bc6df62eb0c..f3c75a613c3 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -452,29 +452,6 @@ cdef class PolyDict: return -1 return max(( e).get_exp(i) for e in self.__repn) - def valuation(PolyDict self, PolyDict x=None): - if x is None: - _min = [] - negative = False - for v in self.__repn.values(): - _sum = 0 - for m in v.nonzero_values(sort=False): - if m < 0: - negative = True - break - _sum += m - if negative: - break - _min.append(_sum) - else: - return min(_min) - for v in self.__repn.values(): - _min.append(sum(m for m in v.nonzero_values(sort=False) if m < 0)) - return min(_min) - - i = gen_index(x) - return min(( e).get_exp(i) for e in self.__repn) - def total_degree(PolyDict self, tuple w=None): r""" Return the total degree. From 6d5847aaa1befa49f2fb099e4165fbb4b13a9ebe Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Wed, 22 Feb 2023 21:07:46 +0100 Subject: [PATCH 187/249] 34000: use type rather isinstance --- src/sage/rings/polynomial/polydict.pyx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index f3c75a613c3..f4dcd39169d 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -420,7 +420,7 @@ cdef class PolyDict: sage: f[(2,1)] 4 """ - if not isinstance(e, ETuple): + if type(e) is not ETuple: e = ETuple(e) return self.__repn[e] From 3cd2b22f80f183f18c5ef97168488d5f42862784 Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Wed, 22 Feb 2023 21:08:30 +0100 Subject: [PATCH 188/249] 34000: modernize PolyDict pickling/unpickling --- src/sage/rings/polynomial/polydict.pyx | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index f4dcd39169d..420eb41cc0f 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -1186,7 +1186,7 @@ cdef class PolyDict: sage: loads(dumps(f)) == f True """ - return make_PolyDict, (self.__repn,) + return PolyDict, (self.__repn,) def min_exp(self): """ @@ -1690,15 +1690,12 @@ cdef class ETuple: sage: from sage.rings.polynomial.polydict import ETuple sage: e = ETuple([1,1,0]) - sage: bool(e == loads(dumps(e))) + sage: e == loads(dumps(e)) True """ cdef size_t ind - # this is not particularly fast, but I doubt many people care - # if you do, feel free to tweak! - d = {self._data[2*ind]: self._data[2*ind+1] - for ind from 0 <= ind < self._nonzero} - return make_ETuple, (d, int(self._length)) + d = {self._data[2 * ind]: self._data[2 * ind + 1] for ind in range(self._nonzero)} + return ETuple, (d, int(self._length)) # additional methods @@ -2484,8 +2481,14 @@ cdef class ETuple: def make_PolyDict(data): - return PolyDict(data, remove_zero=False) + r""" + Ensure support for pickled data from older sage versions. + """ + return PolyDict(data) def make_ETuple(data, length): + r""" + Ensure support for pickled data from older sage versions. + """ return ETuple(data, length) From 1661dff99cf3c1f6192ddac969de9c639d7ba7f8 Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Wed, 22 Feb 2023 21:09:23 +0100 Subject: [PATCH 189/249] 34000: optimize with memcpy in one place --- src/sage/rings/polynomial/polydict.pyx | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index 420eb41cc0f..3dbb2faf51d 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -1953,11 +1953,9 @@ cdef class ETuple: result._nonzero += 1 rindex = sindex + 1 - while sindex < self._nonzero: - result._data[2*rindex] = self._data[2*sindex] - result._data[2*rindex+1] = self._data[2*sindex+1] - sindex += 1 - rindex += 1 + memcpy(result._data + 2 * rindex, + self._data + 2 * sindex, + sizeof(int) * 2 * (self._nonzero - sindex)) return result From b830bbd5db5985299e333e40c8b90fa28ea4864b Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Wed, 22 Feb 2023 22:02:16 +0100 Subject: [PATCH 190/249] 34000: remove useless type annotation for self --- src/sage/rings/polynomial/polydict.pxd | 34 +++++----- src/sage/rings/polynomial/polydict.pyx | 90 +++++++++++++------------- 2 files changed, 62 insertions(+), 62 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pxd b/src/sage/rings/polynomial/polydict.pxd index 7d0e0caea05..72f8bf0b683 100644 --- a/src/sage/rings/polynomial/polydict.pxd +++ b/src/sage/rings/polynomial/polydict.pxd @@ -15,25 +15,25 @@ cdef class ETuple: cpdef int unweighted_quotient_degree(self, ETuple other) except * cpdef int weighted_quotient_degree(self, ETuple other, tuple w) except * - cpdef ETuple eadd(ETuple self, ETuple other) - cpdef ETuple esub(ETuple self, ETuple other) - cpdef ETuple emul(ETuple self, int factor) - cpdef ETuple emin(ETuple self, ETuple other) - cpdef ETuple emax(ETuple self, ETuple other) - cpdef ETuple eadd_p(ETuple self, int other, size_t pos) - cpdef ETuple eadd_scaled(ETuple self, ETuple other, int scalar) - cpdef int dotprod(ETuple self, ETuple other) - cpdef ETuple escalar_div(ETuple self, int n) + cpdef ETuple eadd(self, ETuple other) + cpdef ETuple esub(self, ETuple other) + cpdef ETuple emul(self, int factor) + cpdef ETuple emin(self, ETuple other) + cpdef ETuple emax(self, ETuple other) + cpdef ETuple eadd_p(self, int other, size_t pos) + cpdef ETuple eadd_scaled(self, ETuple other, int scalar) + cpdef int dotprod(self, ETuple other) + cpdef ETuple escalar_div(self, int n) cdef ETuple divide_by_gcd(self, ETuple other) cdef ETuple divide_by_var(self, size_t index) cdef bint divides(self, ETuple other) - cpdef bint is_constant(ETuple self) - cpdef bint is_multiple_of(ETuple self, int n) - cpdef list nonzero_positions(ETuple self, bint sort=*) - cpdef common_nonzero_positions(ETuple self, ETuple other, bint sort=*) - cpdef list nonzero_values(ETuple self, bint sort=*) - cpdef ETuple reversed(ETuple self) - cdef ETuple _new(ETuple self) - cdef int get_exp(ETuple self, size_t i) + cpdef bint is_constant(self) + cpdef bint is_multiple_of(self, int n) + cpdef list nonzero_positions(self, bint sort=*) + cpdef common_nonzero_positions(self, ETuple other, bint sort=*) + cpdef list nonzero_values(self, bint sort=*) + cpdef ETuple reversed(self) + cdef ETuple _new(self) + cdef int get_exp(self, size_t i) cpdef int gen_index(PolyDict x) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index 3dbb2faf51d..9b218531039 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -90,7 +90,7 @@ cdef class PolyDict: whose values are coefficients on which it is implicitely assumed that arithmetic operations can be performed. """ - def __init__(PolyDict self, pdict, zero=None, remove_zero=None, force_int_exponents=None, force_etuples=None): + def __init__(self, pdict, zero=None, remove_zero=None, force_int_exponents=None, force_etuples=None): """ INPUT: @@ -274,7 +274,7 @@ cdef class PolyDict: raise TypeError('unsupported comparison between PolyDict') - def rich_compare(PolyDict self, PolyDict other, int op, sortkey=None): + def rich_compare(self, PolyDict other, int op, sortkey=None): """ Compare two `PolyDict`s using a specified term ordering ``sortkey``. @@ -424,11 +424,11 @@ cdef class PolyDict: e = ETuple(e) return self.__repn[e] - def __repr__(PolyDict self): + def __repr__(self): repn = ' '.join(pformat(self.__repn).splitlines()) return 'PolyDict with representation %s' % repn - def degree(PolyDict self, PolyDict x=None): + def degree(self, PolyDict x=None): r""" Return the total degree or the maximum degree in the variable ``x``. @@ -452,7 +452,7 @@ cdef class PolyDict: return -1 return max(( e).get_exp(i) for e in self.__repn) - def total_degree(PolyDict self, tuple w=None): + def total_degree(self, tuple w=None): r""" Return the total degree. @@ -478,7 +478,7 @@ cdef class PolyDict: else: return max(( e).weighted_degree(w) for e in self.__repn) - def monomial_coefficient(PolyDict self, mon): + def monomial_coefficient(self, mon): """ Return the coefficient of the monomial ``mon``. @@ -498,7 +498,7 @@ cdef class PolyDict: return 0 return self.__repn[K] - def polynomial_coefficient(PolyDict self, degrees): + def polynomial_coefficient(self, degrees): """ Return a polydict that defines the coefficient in the current polynomial viewed as a tower of polynomial extensions. @@ -538,7 +538,7 @@ cdef class PolyDict: ans[ETuple(t)] = self.__repn[S] return self._new(ans) - def coefficient(PolyDict self, mon): + def coefficient(self, mon): """ Return a polydict that defines a polynomial in 1 less number of variables that gives the coefficient of mon in this @@ -564,7 +564,7 @@ cdef class PolyDict: ans[ETuple(t)] = self.__repn[S] return self._new(ans) - def is_homogeneous(PolyDict self): + def is_homogeneous(self): r""" Return whether this polynomial is homogeneous. @@ -610,7 +610,7 @@ cdef class PolyDict: return False return not any(e for e in self.__repn) - def homogenize(PolyDict self, size_t var): + def homogenize(self, size_t var): r""" Return the homogeneization of ``self`` by increasing the degree of the variable ``var``. @@ -642,7 +642,7 @@ cdef class PolyDict: H[f] = val return self._new(H) - def latex(PolyDict self, vars, atomic_exponents=True, + def latex(self, vars, atomic_exponents=True, atomic_coefficients=True, sortkey=None): r""" Return a nice polynomial latex representation of this PolyDict, where @@ -736,7 +736,7 @@ cdef class PolyDict: return "0" return poly - def poly_repr(PolyDict self, vars, atomic_exponents=True, + def poly_repr(self, vars, atomic_exponents=True, atomic_coefficients=True, sortkey=None): """ Return a nice polynomial string representation of this PolyDict, where @@ -944,7 +944,7 @@ cdef class PolyDict: PyDict_SetItem(newpoly, e, cc+c) return self._new(newpoly) - def scalar_rmult(PolyDict self, s): + def scalar_rmult(self, s): """ Right Scalar Multiplication @@ -966,7 +966,7 @@ cdef class PolyDict: v[e] = c * s return self._new(v) - def scalar_lmult(PolyDict self, s): + def scalar_lmult(self, s): """ Left Scalar Multiplication @@ -1162,7 +1162,7 @@ cdef class PolyDict: raise ValueError('x must be a generator') return self.integral_i(i) - def lcmt(PolyDict self, greater_etuple): + def lcmt(self, greater_etuple): """ Provides functionality of lc, lm, and lt by calling the tuple compare function on the provided term order T. @@ -1176,7 +1176,7 @@ cdef class PolyDict: except KeyError: raise ArithmeticError("%s not supported", greater_etuple) - def __reduce__(PolyDict self): + def __reduce__(self): """ EXAMPLES:: @@ -1302,7 +1302,7 @@ cdef class ETuple: question (although, there is no question that this is much faster than the prior use of python dicts). """ - cdef ETuple _new(ETuple self): + cdef ETuple _new(self): """ Quickly creates a new initialized ETuple with the same length as self. @@ -1312,7 +1312,7 @@ cdef class ETuple: x._length = self._length return x - def __init__(ETuple self, data=None, length=None): + def __init__(self, data=None, length=None): """ - ``ETuple()`` -> an empty ETuple - ``ETuple(sequence)`` -> ETuple initialized from sequence's items @@ -1374,7 +1374,7 @@ cdef class ETuple: else: raise TypeError("Error in ETuple(%s, %s, %s)" % (self, data, length)) - def __cinit__(ETuple self): + def __cinit__(self): self._data = 0 def __dealloc__(self): @@ -1449,7 +1449,7 @@ cdef class ETuple: result._data[2*(f*self._nonzero+index)+1] = self._data[2*index+1] return result - def __getitem__(ETuple self, i): + def __getitem__(self, i): """ EXAMPLES:: @@ -1493,7 +1493,7 @@ cdef class ETuple: return 0 return 0 - cdef int get_exp(ETuple self, size_t i): + cdef int get_exp(self, size_t i): """ Return the exponent for the ``i``-th variable. """ @@ -1506,7 +1506,7 @@ cdef class ETuple: return 0 return 0 - def __hash__(ETuple self): + def __hash__(self): """ x.__hash__() <==> hash(x) """ @@ -1518,7 +1518,7 @@ cdef class ETuple: result = (1000003 * result) ^ self._length return result - def __len__(ETuple self): + def __len__(self): """ x.__len__() <==> len(x) @@ -1531,7 +1531,7 @@ cdef class ETuple: """ return self._length - def __contains__(ETuple self, elem): + def __contains__(self, elem): """ x.__contains__(n) <==> n in x @@ -1632,7 +1632,7 @@ cdef class ETuple: if op == Py_GE: # >= return tuple(self) >= tuple(other) - def __iter__(ETuple self): + def __iter__(self): """ x.__iter__() <==> iter(x) @@ -1661,10 +1661,10 @@ cdef class ETuple: else: yield 0 - def __str__(ETuple self): + def __str__(self): return repr(self) - def __repr__(ETuple self): + def __repr__(self): r""" TESTS:: @@ -1684,7 +1684,7 @@ cdef class ETuple: else: return '(' + ', '.join(map(str, self)) + ')' - def __reduce__(ETuple self): + def __reduce__(self): """ EXAMPLES:: @@ -1828,7 +1828,7 @@ cdef class ETuple: ind1 += 2 return deg - cpdef ETuple eadd(ETuple self, ETuple other): + cpdef ETuple eadd(self, ETuple other): """ Vector addition of ``self`` with ``other``. @@ -1877,7 +1877,7 @@ cdef class ETuple: result._nonzero += 1 return result - cpdef ETuple eadd_p(ETuple self, int other, size_t pos): + cpdef ETuple eadd_p(self, int other, size_t pos): """ Add ``other`` to ``self`` at position ``pos``. @@ -1959,7 +1959,7 @@ cdef class ETuple: return result - cpdef ETuple eadd_scaled(ETuple self, ETuple other, int scalar): + cpdef ETuple eadd_scaled(self, ETuple other, int scalar): """ Vector addition of ``self`` with ``scalar * other``. @@ -1998,7 +1998,7 @@ cdef class ETuple: result._nonzero += 1 return result - cpdef ETuple esub(ETuple self, ETuple other): + cpdef ETuple esub(self, ETuple other): """ Vector subtraction of ``self`` with ``other``. @@ -2036,7 +2036,7 @@ cdef class ETuple: result._nonzero += 1 return result - cpdef ETuple emul(ETuple self, int factor): + cpdef ETuple emul(self, int factor): """ Scalar Vector multiplication of ``self``. @@ -2060,7 +2060,7 @@ cdef class ETuple: result._data[2*ind+1] = self._data[2*ind+1]*factor return result - cpdef ETuple emax(ETuple self, ETuple other): + cpdef ETuple emax(self, ETuple other): """ Vector of maximum of components of ``self`` and ``other``. @@ -2107,7 +2107,7 @@ cdef class ETuple: result._nonzero += 1 return result - cpdef ETuple emin(ETuple self, ETuple other): + cpdef ETuple emin(self, ETuple other): """ Vector of minimum of components of ``self`` and ``other``. @@ -2148,7 +2148,7 @@ cdef class ETuple: result._nonzero += 1 return result - cpdef int dotprod(ETuple self, ETuple other): + cpdef int dotprod(self, ETuple other): """ Return the dot product of this tuple by ``other``. @@ -2178,7 +2178,7 @@ cdef class ETuple: result += exp1 * exp2 return result - cpdef ETuple escalar_div(ETuple self, int n): + cpdef ETuple escalar_div(self, int n): r""" Divide each exponent by ``n``. @@ -2321,7 +2321,7 @@ cdef class ETuple: return False return True - cpdef bint is_constant(ETuple self): + cpdef bint is_constant(self): """ Return if all exponents are zero in the tuple. @@ -2337,7 +2337,7 @@ cdef class ETuple: """ return self._nonzero == 0 - cpdef bint is_multiple_of(ETuple self, int n): + cpdef bint is_multiple_of(self, int n): r""" Test whether each entry is a multiple of ``n``. @@ -2360,7 +2360,7 @@ cdef class ETuple: return False return True - cpdef list nonzero_positions(ETuple self, bint sort=False): + cpdef list nonzero_positions(self, bint sort=False): """ Return the positions of non-zero exponents in the tuple. @@ -2379,7 +2379,7 @@ cdef class ETuple: cdef size_t ind return [self._data[2*ind] for ind from 0 <= ind < self._nonzero] - cpdef common_nonzero_positions(ETuple self, ETuple other, bint sort=False): + cpdef common_nonzero_positions(self, ETuple other, bint sort=False): """ Returns an optionally sorted list of non zero positions either in self or other, i.e. the only positions that need to be @@ -2402,7 +2402,7 @@ cdef class ETuple: else: return res - cpdef list nonzero_values(ETuple self, bint sort=True): + cpdef list nonzero_values(self, bint sort=True): """ Return the non-zero values of the tuple. @@ -2424,7 +2424,7 @@ cdef class ETuple: cdef size_t ind return [self._data[2*ind+1] for ind from 0 <= ind < self._nonzero] - cpdef ETuple reversed(ETuple self): + cpdef ETuple reversed(self): """ Return the reversed ETuple of ``self``. @@ -2444,7 +2444,7 @@ cdef class ETuple: result._data[2*(result._nonzero-ind-1)+1] = self._data[2*ind+1] return result - def sparse_iter(ETuple self): + def sparse_iter(self): """ Iterator over the elements of ``self`` where the elements are returned as ``(i, e)`` where ``i`` is the position of ``e`` in the tuple. @@ -2460,7 +2460,7 @@ cdef class ETuple: for ind from 0 <= ind < self._nonzero: yield (self._data[2*ind], self._data[2*ind+1]) - def combine_to_positives(ETuple self, ETuple other): + def combine_to_positives(self, ETuple other): """ Given a pair of ETuples (self, other), returns a triple of ETuples (a, b, c) so that self = a + b, other = a + c and b and c From c277ee3fe786f3634f822374db5c718ce39f09c3 Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Wed, 22 Feb 2023 22:05:14 +0100 Subject: [PATCH 191/249] 34000: design a cleaner PolyDict.get to replace PolyDict.monomial_coefficient --- src/sage/rings/polynomial/polydict.pxd | 1 + src/sage/rings/polynomial/polydict.pyx | 44 ++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/src/sage/rings/polynomial/polydict.pxd b/src/sage/rings/polynomial/polydict.pxd index 72f8bf0b683..189529c5af2 100644 --- a/src/sage/rings/polynomial/polydict.pxd +++ b/src/sage/rings/polynomial/polydict.pxd @@ -37,3 +37,4 @@ cdef class ETuple: cdef int get_exp(self, size_t i) cpdef int gen_index(PolyDict x) +cpdef ETuple monomial_exponent(PolyDict p) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index 9b218531039..a4abfb145b8 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -82,6 +82,29 @@ cpdef int gen_index(PolyDict x): return e._data[0] +cpdef ETuple monomial_exponent(PolyDict p): + r""" + Return the unique exponent of ``p`` if it is a monomial or raise a ``ValueError``. + + EXAMPLES:: + + sage: from sage.rings.polynomial.polydict import PolyDict, monomial_exponent + sage: monomial_exponent(PolyDict({(2, 3): 1})) + (2, 3) + sage: monomial_exponent(PolyDict({(2, 3): 3})) + Traceback (most recent call last): + ... + ValueError: not a monomial + sage: monomial_exponent(PolyDict({(1, 0): 1, (0, 1): 1})) + Traceback (most recent call last): + ::: + ValueError: not a monomial + """ + if len(p.__repn) != 1 or not next(iter(p.__repn.values())).is_one(): + raise ValueError('not a monomial') + return next(iter(p.__repn)) + + cdef class PolyDict: r""" Datastructure for multivariate polynomials. @@ -424,6 +447,21 @@ cdef class PolyDict: e = ETuple(e) return self.__repn[e] + def get(self, ETuple e, default=None): + r""" + Return the coefficient of the ETuple ``e`` if present and ``default`` otherwise. + + EXAMPLES:: + + sage: from sage.rings.polynomial.polydict import PolyDict, ETuple + sage: f = PolyDict({(2, 3): 2, (1, 2): 3, (2, 1): 4}) + sage: f.get(ETuple([1,2])) + 3 + sage: f.get(ETuple([1,1]), 'hello') + 'hello' + """ + return self.__repn.get(e, default) + def __repr__(self): repn = ' '.join(pformat(self.__repn).splitlines()) return 'PolyDict with representation %s' % repn @@ -491,8 +529,14 @@ cdef class PolyDict: sage: from sage.rings.polynomial.polydict import PolyDict sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) sage: f.monomial_coefficient(PolyDict({(2,1):1}).dict()) + doctest:warning + ... + DeprecationWarning: PolyDict.monomial_coefficient is deprecated; use PolyDict.get instead + See https://trac.sagemath.org/34000 for details. 4 """ + from sage.misc.superseded import deprecation + deprecation(34000, 'PolyDict.monomial_coefficient is deprecated; use PolyDict.get instead') K, = mon.keys() if K not in self.__repn: return 0 From 9cb7adfc2dc90eb3e79c4a682affc60d917926e7 Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Wed, 22 Feb 2023 22:05:51 +0100 Subject: [PATCH 192/249] 34000: doc and clean in polydict.pyx --- src/sage/rings/polynomial/polydict.pyx | 48 ++++++++++++++------------ 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index a4abfb145b8..c9333c72955 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -216,7 +216,8 @@ cdef class PolyDict: sage: f = PolyDict({(2, 3): 0}) sage: f PolyDict with representation {(2, 3): 0} - sage: f.coerce_coefficients(QQ); f + sage: f.coerce_coefficients(QQ) + sage: f PolyDict with representation {(2, 3): 0} """ for k, v in self.__repn.items(): @@ -259,7 +260,7 @@ cdef class PolyDict: def __len__(self): """ - Return the length. + Return the number of terms of this polynomial. EXAMPLES:: @@ -378,12 +379,10 @@ cdef class PolyDict: """ Return a list that defines ``self``. - It is safe to change this. - EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) + sage: f = PolyDict({(2,3): 2, (1,2): 3, (2,1): 4}) sage: sorted(f.list()) [[2, [2, 3]], [3, [1, 2]], [4, [2, 1]]] """ @@ -393,8 +392,6 @@ cdef class PolyDict: """ Return a copy of the dict that defines ``self``. - It is safe to change this. For a reference, use dictref. - EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict @@ -437,10 +434,10 @@ cdef class PolyDict: EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) - sage: f[1,2] + sage: f = PolyDict({(2, 3): 2, (1, 2): 3, (2, 1): 4}) + sage: f[1, 2] 3 - sage: f[(2,1)] + sage: f[(2, 1)] 4 """ if type(e) is not ETuple: @@ -463,6 +460,9 @@ cdef class PolyDict: return self.__repn.get(e, default) def __repr__(self): + r""" + String representation. + """ repn = ' '.join(pformat(self.__repn).splitlines()) return 'PolyDict with representation %s' % repn @@ -473,7 +473,7 @@ cdef class PolyDict: EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) + sage: f = PolyDict({(2, 3): 2, (1, 2): 3, (2, 1): 4}) sage: f.degree() 5 sage: f.degree(PolyDict({(1, 0): 1})) @@ -1427,6 +1427,8 @@ cdef class ETuple: def __bool__(self): r""" + Return whether this polynomial is nonzero. + TESTS:: sage: from sage.rings.polynomial.polydict import ETuple @@ -1975,16 +1977,16 @@ cdef class ETuple: return result result._data = sig_malloc(sizeof(int) * (self._nonzero + 1) * 2) - while sindex < self._nonzero and self._data[2*sindex] < pos: - result._data[2*sindex] = self._data[2*sindex] - result._data[2*sindex+1] = self._data[2*sindex+1] + while sindex < self._nonzero and self._data[2 * sindex] < pos: + result._data[2 * sindex] = self._data[2 * sindex] + result._data[2 * sindex + 1] = self._data[2 * sindex + 1] sindex += 1 - if sindex < self._nonzero and self._data[2*sindex] == pos: - new_value = self._data[2*sindex+1] + other + if sindex < self._nonzero and self._data[2 * sindex] == pos: + new_value = self._data[2 * sindex + 1] + other if new_value: - result._data[2*sindex] = pos - result._data[2*sindex+1] = new_value + result._data[2 * sindex] = pos + result._data[2 * sindex + 1] = new_value sindex += 1 rindex = sindex else: @@ -1992,8 +1994,8 @@ cdef class ETuple: rindex = sindex sindex += 1 else: - result._data[2*sindex] = pos - result._data[2*sindex+1] = other + result._data[2 * sindex] = pos + result._data[2 * sindex + 1] = other result._nonzero += 1 rindex = sindex + 1 @@ -2398,7 +2400,7 @@ cdef class ETuple: """ if not n: raise ValueError('n should not be zero') - cdef int i + cdef size_t i for i in range(self._nonzero): if self._data[2 * i + 1] % n: return False @@ -2483,7 +2485,7 @@ cdef class ETuple: cdef ETuple result = self._new() result._nonzero = self._nonzero result._data = sig_malloc(sizeof(int)*result._nonzero*2) - for ind from 0 <= ind < self._nonzero: + for ind in range(self._nonzero): result._data[2*(result._nonzero-ind-1)] = self._length - self._data[2*ind] - 1 result._data[2*(result._nonzero-ind-1)+1] = self._data[2*ind+1] return result @@ -2501,7 +2503,7 @@ cdef class ETuple: [(0, 1), (2, 2), (4, 3)] """ cdef size_t ind - for ind from 0 <= ind < self._nonzero: + for ind in range(self._nonzero): yield (self._data[2*ind], self._data[2*ind+1]) def combine_to_positives(self, ETuple other): From 4705d0d13880ccb18d6db1e168644b6372e95413 Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Wed, 22 Feb 2023 22:07:10 +0100 Subject: [PATCH 193/249] 34000: adapt polynomials to the changes in PolyDict --- .../rings/polynomial/laurent_polynomial.pyx | 14 +++++----- .../polynomial/multi_polynomial_element.py | 28 +++++++++++++------ 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/src/sage/rings/polynomial/laurent_polynomial.pyx b/src/sage/rings/polynomial/laurent_polynomial.pyx index 1d5bb277af0..f95cb7e6fd3 100644 --- a/src/sage/rings/polynomial/laurent_polynomial.pyx +++ b/src/sage/rings/polynomial/laurent_polynomial.pyx @@ -12,9 +12,10 @@ Elements of Laurent polynomial rings from sage.rings.integer cimport Integer from sage.categories.map cimport Map -from sage.structure.element import is_Element, coerce_binop +from sage.structure.element import is_Element, coerce_binop, parent from sage.structure.factorization import Factorization from sage.misc.derivative import multi_derivative +from sage.rings.polynomial.polydict cimport monomial_exponent from sage.rings.polynomial.polynomial_element import Polynomial from sage.rings.polynomial.polynomial_ring import is_PolynomialRing from sage.structure.richcmp cimport richcmp, rich_to_bool @@ -2556,19 +2557,18 @@ cdef class LaurentPolynomial_mpair(LaurentPolynomial): sage: f.monomial_coefficient(x + y) Traceback (most recent call last): ... - ValueError: input must be a monomial + ValueError: not a monomial """ - if mon.parent() != self._parent: + if parent(mon) != self._parent: raise TypeError("input must have the same parent") cdef LaurentPolynomial_mpair m = mon if m._prod is None: m._compute_polydict() - if len(m._prod) != 1: - raise ValueError("input must be a monomial") if self._prod is None: self._compute_polydict() - c = self._prod.monomial_coefficient(m._prod.dict()) - return self._parent.base_ring()(c) + exp = monomial_exponent(m._prod) + zero = self._parent.base_ring().zero() + return self._prod.get(exp, zero) def constant_coefficient(self): """ diff --git a/src/sage/rings/polynomial/multi_polynomial_element.py b/src/sage/rings/polynomial/multi_polynomial_element.py index b70840414c6..491738d97e0 100644 --- a/src/sage/rings/polynomial/multi_polynomial_element.py +++ b/src/sage/rings/polynomial/multi_polynomial_element.py @@ -56,7 +56,7 @@ import operator -from sage.structure.element import CommutativeRingElement, coerce_binop, get_coercion_model +from sage.structure.element import CommutativeRingElement, coerce_binop, get_coercion_model, parent from sage.misc.misc_c import prod import sage.rings.integer import sage.rings.integer_ring @@ -260,6 +260,8 @@ def number_of_terms(self): def __neg__(self): """ + Return the negative of ``self``. + EXAMPLES:: sage: R. = QQbar[] @@ -272,6 +274,8 @@ def __neg__(self): def _add_(self, right): """ + Return the sum of ``self`` and ``right``. + EXAMPLES:: sage: R. = QQbar[] @@ -284,6 +288,8 @@ def _add_(self, right): def _sub_(self, right): """ + Return the difference between ``self`` and ``right``. + EXAMPLES:: sage: R. = QQbar[] @@ -296,6 +302,8 @@ def _sub_(self, right): def _mul_(self, right): """ + Return the product between ``self`` and ``right``. + EXAMPLES:: sage: R. = QQbar[] @@ -440,7 +448,8 @@ def __init__(self, parent, x): True """ if not isinstance(x, polydict.PolyDict): - x = polydict.PolyDict(x, remove_zero=True) + x = polydict.PolyDict(x) + x.remove_zeros() MPolynomial_element.__init__(self, parent, x) def _new_constant_poly(self, x, P): @@ -783,10 +792,11 @@ def monomial_coefficient(self, mon): sage: f.monomial_coefficient(x) -a """ - if not (isinstance(mon, MPolynomial) and mon.parent() is self.parent() and mon.is_monomial()): - raise TypeError("mon must be a monomial in the parent of self.") - R = self.parent().base_ring() - return R(self.element().monomial_coefficient(mon.element().dict())) + if parent(mon) is not self.parent(): + raise TypeError("mon must be a monomial in the parent of self") + exp = polydict.monomial_exponent(mon.element()) + zero = self.parent().base_ring().zero() + return self.element().get(exp, zero) def dict(self): """ @@ -1871,7 +1881,8 @@ def _derivative(self, var=None): # var is not a generator; do term-by-term differentiation recursively # var may be, for example, a generator of the base ring d = dict([(e, x._derivative(var)) for (e, x) in self.dict().items()]) - d = polydict.PolyDict(d, remove_zero=True) + d = polydict.PolyDict(d) + d.remove_zeros() return MPolynomial_polydict(P, d) # differentiate w.r.t. indicated variable @@ -1965,7 +1976,8 @@ def integral(self, var=None): # var may be, for example, a generator of the base ring d = {e: x.integral(var) for e, x in self.dict().items()} - d = polydict.PolyDict(d, remove_zero=True) + d = polydict.PolyDict(d) + d.remove_zeros() else: # integrate w.r.t. indicated variable d = self.element().integral_i(index) From 81f4845206d7c099b0227a7de1a5c64ed61a80cb Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Sat, 25 Feb 2023 19:13:00 +0100 Subject: [PATCH 194/249] change url in deprecation warning message --- src/sage/rings/polynomial/polydict.pyx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index c9333c72955..b24b1a96deb 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -151,13 +151,13 @@ cdef class PolyDict: ... DeprecationWarning: the arguments "zero", "forced_int_exponents" and "forced_etuples" of PolyDict constructor are deprecated - See https://trac.sagemath.org/34000 for details. + See https://github.com/sagemath/sage/issues/34000 for details. sage: f = PolyDict({}, remove_zero=False) doctest:warning ... DeprecationWarning: the argument "remove_zero" of PolyDict constructor is deprecated; call the method remove_zeros - See https://trac.sagemath.org/34000 for details. + See https://github.com/sagemath/sage/issues/34000 for details. """ if zero is not None or force_int_exponents is not None or force_etuples is not None: from sage.misc.superseded import deprecation @@ -332,7 +332,7 @@ cdef class PolyDict: doctest:warning ... DeprecationWarning: the argument "sortkey" will become mandatory in future sage versions - See https://trac.sagemath.org/34000 for details. + See https://github.com/sagemath/sage/issues/34000 for details. sage: ans True """ @@ -532,7 +532,7 @@ cdef class PolyDict: doctest:warning ... DeprecationWarning: PolyDict.monomial_coefficient is deprecated; use PolyDict.get instead - See https://trac.sagemath.org/34000 for details. + See https://github.com/sagemath/sage/issues/34000 for details. 4 """ from sage.misc.superseded import deprecation From eb5dfef165900fa9624dad5366a4225c66506951 Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Sat, 25 Feb 2023 19:13:21 +0100 Subject: [PATCH 195/249] remove inaccurate statement in __richcmp__ docstring --- src/sage/rings/polynomial/polydict.pyx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index b24b1a96deb..cee82494894 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -275,10 +275,6 @@ cdef class PolyDict: """ Implement the ``__richcmp__`` protocol for `PolyDict`s. - Uses `PolyDict.rich_compare` without a key (so only ``==`` and ``!=`` - are supported on Python 3; on Python 2 this will fall back on Python 2 - default comparison behavior). - EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict From 3d7852e968f71f650f2c9e84fb0bdb735e1021e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Chapoton?= Date: Thu, 9 Mar 2023 17:19:45 +0100 Subject: [PATCH 196/249] Update polydict.pyx fix the doctest syntax --- src/sage/rings/polynomial/polydict.pyx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index cee82494894..e15a752551e 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -97,7 +97,7 @@ cpdef ETuple monomial_exponent(PolyDict p): ValueError: not a monomial sage: monomial_exponent(PolyDict({(1, 0): 1, (0, 1): 1})) Traceback (most recent call last): - ::: + ... ValueError: not a monomial """ if len(p.__repn) != 1 or not next(iter(p.__repn.values())).is_one(): From 184be5b487549ec94bb4ede7cd5f64c736bddba2 Mon Sep 17 00:00:00 2001 From: Martin Rubey Date: Sat, 11 Mar 2023 19:32:41 +0100 Subject: [PATCH 197/249] add and fix doctests --- src/sage/rings/lazy_series.py | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/src/sage/rings/lazy_series.py b/src/sage/rings/lazy_series.py index 51eeaf5d065..9d3515843a5 100644 --- a/src/sage/rings/lazy_series.py +++ b/src/sage/rings/lazy_series.py @@ -94,7 +94,7 @@ sage: h.parent() Lazy Laurent Series Ring in z over Rational Field sage: h - 4*z + 6*z^2 + 8*z^3 + 19*z^4 + 38*z^5 + 71*z^6 + O(z^7) + 4*z + 6*z^2 + 8*z^3 + 19*z^4 + 38*z^5 + 71*z^6 + 130*z^7 + O(z^8) sage: hinv = h^-1; hinv 1/4*z^-1 - 3/8 + 1/16*z - 17/32*z^2 + 5/64*z^3 - 29/128*z^4 + 165/256*z^5 + O(z^6) sage: hinv.valuation() @@ -489,7 +489,7 @@ def map_coefficients(self, f): sage: m = L(lambda n: n, valuation=0); m z + 2*z^2 + 3*z^3 + 4*z^4 + 5*z^5 + 6*z^6 + O(z^7) sage: m.map_coefficients(lambda c: c + 1) - 2*z + 3*z^2 + 4*z^3 + 5*z^4 + 6*z^5 + 7*z^6 + O(z^7) + 2*z + 3*z^2 + 4*z^3 + 5*z^4 + 6*z^5 + 7*z^6 + 8*z^7 + O(z^8) Similarly for Dirichlet series:: @@ -497,7 +497,7 @@ def map_coefficients(self, f): sage: s = L(lambda n: n-1); s 1/(2^z) + 2/3^z + 3/4^z + 4/5^z + 5/6^z + 6/7^z + O(1/(8^z)) sage: s.map_coefficients(lambda c: c + 1) - 2/2^z + 3/3^z + 4/4^z + 5/5^z + 6/6^z + 7/7^z + O(1/(8^z)) + 2/2^z + 3/3^z + 4/4^z + 5/5^z + 6/6^z + 7/7^z + 8/8^z + O(1/(9^z)) Similarly for multivariate power series:: @@ -2620,7 +2620,7 @@ def _mul_(self, other): z + 2*z^2 + 3*z^3 + 4*z^4 + 5*z^5 + 6*z^6 + O(z^7) sage: N = M * (1 - M) sage: N - z + z^2 - z^3 - 6*z^4 - 15*z^5 - 29*z^6 + O(z^7) + z + z^2 - z^3 - 6*z^4 - 15*z^5 - 29*z^6 - 49*z^7 + O(z^8) sage: p = (1 - z)*(1 + z^2)^3 * z^-2 sage: p @@ -2780,7 +2780,7 @@ def __pow__(self, n): sage: M = L(lambda n: n, valuation=0); M z + 2*z^2 + 3*z^3 + 4*z^4 + 5*z^5 + 6*z^6 + O(z^7) sage: M^2 - z^2 + 4*z^3 + 10*z^4 + 20*z^5 + 35*z^6 + O(z^7) + z^2 + 4*z^3 + 10*z^4 + 20*z^5 + 35*z^6 + 56*z^7 + 84*z^8 + O(z^9) Lazy Laurent series that are known to be exact can be raised to the power ``n``:: @@ -2957,7 +2957,7 @@ def _div_(self, other): sage: N = L(lambda n: 1, 0); N 1 + z + z^2 + z^3 + z^4 + z^5 + z^6 + O(z^7) sage: P = M / N; P - z + z^2 + z^3 + z^4 + z^5 + z^6 + O(z^7) + z + z^2 + z^3 + z^4 + z^5 + z^6 + z^7 + O(z^8) If the division of exact Lazy Laurent series yields a Laurent polynomial, it is represented as an exact series:: @@ -3455,7 +3455,7 @@ def __call__(self, g, *, check=True): sage: f = L(lambda n: n, valuation=0); f z + 2*z^2 + 3*z^3 + 4*z^4 + 5*z^5 + 6*z^6 + O(z^7) sage: f(z^2) - z^2 + 2*z^4 + 3*z^6 + O(z^7) + z^2 + 2*z^4 + 3*z^6 + 4*z^8 + O(z^9) sage: f = L(lambda n: n, valuation=-2); f -2*z^-2 - z^-1 + z + 2*z^2 + 3*z^3 + 4*z^4 + O(z^5) @@ -3499,7 +3499,7 @@ def __call__(self, g, *, check=True): sage: f(0) 0 sage: f(y) - y + 2*y^2 + 3*y^3 + 4*y^4 + 5*y^5 + 6*y^6 + O(y^7) + y + 2*y^2 + 3*y^3 + 4*y^4 + 5*y^5 + 6*y^6 + 7*y^7 + O(y^8) sage: fp = f(y - y) sage: fp == 0 True @@ -4405,7 +4405,7 @@ def __call__(self, *g, check=True): sage: fg = 1 / (1 - g - g*g); fg 1 + 1/(2^s) + 1/(3^s) + 3/4^s + 1/(5^s) + 5/6^s + 1/(7^s) + O(1/(8^s)) sage: fog - fg - O(1/(7^s)) + O(1/(8^s)) sage: f = 1 / (1 - 2*a) sage: f(g) @@ -4712,6 +4712,15 @@ def revert(self): sage: f = L([-1], valuation=1, degree=3, constant=-1) sage: f.revert() (-z) + z^3 + (-z^4) + (-2*z^5) + 6*z^6 + z^7 + O(z^8) + + Check that issue :trac:`35261` is fixed:: + + sage: L. = LazyPowerSeriesRing(QQ) + sage: f = L(lambda n: 1 if ZZ(n).is_power_of(2) else 0) + sage: f + z + z^2 + z^4 + O(z^7) + sage: f.revert() + z - z^2 + 2*z^3 - 6*z^4 + 20*z^5 - 70*z^6 + 256*z^7 + O(z^8) """ P = self.parent() if P._arity != 1: @@ -5499,7 +5508,7 @@ def revert(self): sage: L = LazySymmetricFunctions(h) sage: f = L(lambda n: h[n]) - 1 sage: f(f.revert()) - h[1] + O^7 + h[1] + O^8 TESTS:: From 2ce71bb9e01f8a418072e9a5357c7669bf5ce005 Mon Sep 17 00:00:00 2001 From: Martin Rubey Date: Sat, 11 Mar 2023 19:44:29 +0100 Subject: [PATCH 198/249] adapt doctest --- src/sage/rings/lazy_series_ring.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/rings/lazy_series_ring.py b/src/sage/rings/lazy_series_ring.py index b8613ba2b9c..9f942c93251 100644 --- a/src/sage/rings/lazy_series_ring.py +++ b/src/sage/rings/lazy_series_ring.py @@ -293,7 +293,7 @@ def _element_constructor_(self, x=None, valuation=None, degree=None, constant=No sage: L.has_coerce_map_from(R) True sage: L(R(lambda n: n)) - z + z^3 + z^5 + O(z^7) + z + z^3 + z^5 + z^7 + O(z^8) sage: L(R([2,4,6])) == L.zero() True sage: L(R([2,4,6], valuation=2, constant=4)) == L.zero() From 48bb425681ab70a33c706f93317aa74e16172e4b Mon Sep 17 00:00:00 2001 From: Martin Rubey Date: Thu, 29 Sep 2022 11:59:36 +0200 Subject: [PATCH 199/249] cherry pick the commit from https://github.com/sagemath/sage/issues/34610 --- src/sage/rings/lazy_series.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sage/rings/lazy_series.py b/src/sage/rings/lazy_series.py index c156cb12538..c9e079702bc 100644 --- a/src/sage/rings/lazy_series.py +++ b/src/sage/rings/lazy_series.py @@ -4344,7 +4344,7 @@ def __call__(self, *g, check=True): Given a Taylor series `f` of arity `n` and a tuple of Taylor series `g = (g_1,\dots, g_n)` over the same base ring, the composition `f \circ g` is defined if and only if for each - `1\leq k\leq n`: + `1\leq i\leq n`: - `g_i` is zero, or - setting all variables except the `i`-th in `f` to zero @@ -5285,7 +5285,7 @@ def __call__(self, *args, check=True): Given a lazy symmetric function `f` of arity `n` and a tuple of lazy symmetric functions `g = (g_1,\dots, g_n)` over the same base ring, the composition (or plethysm) `(f \circ g)` - is defined if and only if for each `1\leq k\leq n`: + is defined if and only if for each `1\leq i\leq n`: - `g_i = 0`, or - setting all alphabets except the `i`-th in `f` to zero From 12651856141ac69c3827b43f1dfe172d7f28c9ae Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 14 Feb 2023 20:50:07 -0800 Subject: [PATCH 200/249] build/pkgs/e_antic: Update to 1.3.0 --- build/pkgs/e_antic/checksums.ini | 6 +++--- build/pkgs/e_antic/package-version.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/pkgs/e_antic/checksums.ini b/build/pkgs/e_antic/checksums.ini index 82757976c54..d24ae72e6f4 100644 --- a/build/pkgs/e_antic/checksums.ini +++ b/build/pkgs/e_antic/checksums.ini @@ -1,5 +1,5 @@ tarball=e-antic-VERSION.tar.gz -sha1=0fa6ba4a1f13e881f369f9185fe42c7f4bc10a18 -md5=5d77933d78dd08109b0a2c8403892eb6 -cksum=3304746077 +sha1=4f551cf2ab58201fb2137ae994cb670c6fa8b154 +md5=6c6f38408994f7d79f814bbad8183fcb +cksum=2487959662 upstream_url=https://github.com/flatsurf/e-antic/releases/download/VERSION/e-antic-VERSION.tar.gz diff --git a/build/pkgs/e_antic/package-version.txt b/build/pkgs/e_antic/package-version.txt index 6085e946503..f0bb29e7638 100644 --- a/build/pkgs/e_antic/package-version.txt +++ b/build/pkgs/e_antic/package-version.txt @@ -1 +1 @@ -1.2.1 +1.3.0 From 4e80895fe10ad53226501b383863164f162aa0f1 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 14 Feb 2023 20:51:57 -0800 Subject: [PATCH 201/249] build/pkgs/normaliz: Update to 3.10.0 --- build/pkgs/normaliz/checksums.ini | 8 ++++---- build/pkgs/normaliz/package-version.txt | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/build/pkgs/normaliz/checksums.ini b/build/pkgs/normaliz/checksums.ini index f7d47180ceb..803bf8e282f 100644 --- a/build/pkgs/normaliz/checksums.ini +++ b/build/pkgs/normaliz/checksums.ini @@ -1,5 +1,5 @@ tarball=normaliz-VERSION.tar.gz -sha1=6382fcb14b0e602f5bf7d5abd53b421d0e3a0a3d -md5=1c6bdd4da166da1718b08a3b9ee40949 -cksum=2272467212 -upstream_url=https://github.com/Normaliz/Normaliz/releases/download/vVERSION/normaliz-VERSION.tar.gz +sha1=16fcf28e862f8d7c971c9fa682cbacb24fcf8ce1 +md5=0d8a2e841193bb4b2422aac7744ece0b +cksum=2885510960 +upstream_url=https://github.com/Normaliz/Normaliz/releases/download/VERSION/normaliz-VERSION.tar.gz diff --git a/build/pkgs/normaliz/package-version.txt b/build/pkgs/normaliz/package-version.txt index e0d61b5b062..30291cba223 100644 --- a/build/pkgs/normaliz/package-version.txt +++ b/build/pkgs/normaliz/package-version.txt @@ -1 +1 @@ -3.9.4 +3.10.0 From 0f66d792f6fbf6912ab3404b0e53d607ba9c9bd4 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 14 Feb 2023 20:52:17 -0800 Subject: [PATCH 202/249] build/pkgs/pynormaliz: Update to 2.18 --- build/pkgs/pynormaliz/checksums.ini | 6 +++--- build/pkgs/pynormaliz/package-version.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/build/pkgs/pynormaliz/checksums.ini b/build/pkgs/pynormaliz/checksums.ini index d9f614efaf9..327461a230f 100644 --- a/build/pkgs/pynormaliz/checksums.ini +++ b/build/pkgs/pynormaliz/checksums.ini @@ -1,5 +1,5 @@ tarball=PyNormaliz-VERSION.tar.gz -sha1=de8771b0339c4567665331df221c880bfe2b69a2 -md5=e8a571bdc3a8fcad16fdfabf9a6874d3 -cksum=2734845416 +sha1=08617ca50ce0e0317a3377381bf37c1a0ab826c1 +md5=9ae78f7638741c26b588443f0d6024ce +cksum=4090940781 upstream_url=https://pypi.io/packages/source/p/pynormaliz/PyNormaliz-VERSION.tar.gz diff --git a/build/pkgs/pynormaliz/package-version.txt b/build/pkgs/pynormaliz/package-version.txt index 5c6fb54899b..fc249e9a747 100644 --- a/build/pkgs/pynormaliz/package-version.txt +++ b/build/pkgs/pynormaliz/package-version.txt @@ -1 +1 @@ -2.17 +2.18 From fb2f8f34eab5c6658fb488884e523c83aaad5322 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Tue, 14 Feb 2023 22:15:20 -0800 Subject: [PATCH 203/249] build/pkgs/pynormaliz/install-requires.txt: Pin to package version --- build/pkgs/pynormaliz/install-requires.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/pkgs/pynormaliz/install-requires.txt b/build/pkgs/pynormaliz/install-requires.txt index b1e222ae76c..c4e93c56b2e 100644 --- a/build/pkgs/pynormaliz/install-requires.txt +++ b/build/pkgs/pynormaliz/install-requires.txt @@ -1 +1 @@ -pynormaliz ==2.12 +pynormaliz ==2.18 From 247bad98a19f9c8ea03e292a32741ca26ca8eb71 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sun, 29 Jan 2023 16:23:38 -0800 Subject: [PATCH 204/249] src/.relint.yml (namespace_pkg_all_import): Skip all.py, upgrade from warning to error again --- src/.relint.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/.relint.yml b/src/.relint.yml index 617c086c109..87356f436e8 100644 --- a/src/.relint.yml +++ b/src/.relint.yml @@ -50,5 +50,6 @@ Hint: or use 'sage --fiximports' to fix automatically in the source file. # Keep in sync with SAGE_ROOT/src/sage/misc/replace_dot_all.py pattern: 'from\s+sage(|[.](arith|categories|combinat|ext|graphs(|[.]decompositions)|interfaces|libs|matrix|misc|numerical(|[.]backends)|rings(|[.]finite_rings)|sets))[.]all\s+import' - filePattern: '.*[.](py|pyx|pxi)$' + # imports from .all are allowed in all.py + filePattern: '(.*/|)(?!all)[^/.]*[.](py|pyx|pxi)$' error: false # Make this a warning instead of an error for now From d2be51938d9f5a39e62276cc05cfefc01a5bc58a Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sun, 29 Jan 2023 19:54:08 -0800 Subject: [PATCH 205/249] src/.relint.yml: Allow .all imports in some modules src/.relint.yml: Allow .all imports in some more modules fixup --- src/.relint.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/.relint.yml b/src/.relint.yml index 87356f436e8..2c9faa323a7 100644 --- a/src/.relint.yml +++ b/src/.relint.yml @@ -50,6 +50,5 @@ Hint: or use 'sage --fiximports' to fix automatically in the source file. # Keep in sync with SAGE_ROOT/src/sage/misc/replace_dot_all.py pattern: 'from\s+sage(|[.](arith|categories|combinat|ext|graphs(|[.]decompositions)|interfaces|libs|matrix|misc|numerical(|[.]backends)|rings(|[.]finite_rings)|sets))[.]all\s+import' - # imports from .all are allowed in all.py - filePattern: '(.*/|)(?!all)[^/.]*[.](py|pyx|pxi)$' - error: false # Make this a warning instead of an error for now + # imports from .all are allowed in all.py; also allow in some modules that need sage.all + filePattern: '(.*/|)(?!(all|benchmark|dev_tools|parsing|sage_eval))[^/.]*[.](py|pyx|pxi)$' From 34586accd3539a0e7550d730cc35cf89900e4204 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sun, 12 Mar 2023 19:38:25 -0700 Subject: [PATCH 206/249] src/sage/rings/polynomial/integer_valued_polynomials.py: Replace .all import --- src/sage/rings/polynomial/integer_valued_polynomials.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/rings/polynomial/integer_valued_polynomials.py b/src/sage/rings/polynomial/integer_valued_polynomials.py index 603cdbf2e38..3df5a101dbc 100644 --- a/src/sage/rings/polynomial/integer_valued_polynomials.py +++ b/src/sage/rings/polynomial/integer_valued_polynomials.py @@ -13,8 +13,8 @@ # https://www.gnu.org/licenses/ # *************************************************************************** from sage.arith.misc import (binomial, factorial) +from sage.categories.algebras import Algebras from sage.categories.rings import Rings -from sage.categories.all import Algebras from sage.categories.realizations import Category_realization_of_parent from sage.combinat.free_module import CombinatorialFreeModule from sage.matrix.constructor import matrix From 4f0e53d70c67d1d07a281df1c3e9b77f44698c53 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 11 Feb 2023 18:13:10 -0800 Subject: [PATCH 207/249] Remove 'docker' from the names of the Docker images published on ghcr.io --- .devcontainer/portability-Dockerfile | 2 +- src/doc/en/developer/portability_testing.rst | 30 ++++++++++---------- tox.ini | 2 +- 3 files changed, 17 insertions(+), 17 deletions(-) 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/src/doc/en/developer/portability_testing.rst b/src/doc/en/developer/portability_testing.rst index f1a3e5c49fa..90b2699bbf4 100644 --- a/src/doc/en/developer/portability_testing.rst +++ b/src/doc/en/developer/portability_testing.rst @@ -651,7 +651,7 @@ packages instead of all of Sage, for example:: [mkoeppe@sage sage]$ tox -e docker-centos-8-standard -- ratpoints If the build succeeds, this will create a new image named -``sage-docker-centos-8-standard-with-targets:9.1.beta9-431-gca4b5b2f33-dirty``, +``sage-centos-8-standard-with-targets:9.1.beta9-431-gca4b5b2f33-dirty``, where - the image name is derived from the tox environment name and the @@ -676,22 +676,22 @@ the one just after running the ``configure`` script (``configured``):: Step 109/109 : RUN yum install -y zlib-devel || echo "(ignoring error)" ... Successfully built 4bb14c3d5646 - Successfully tagged sage-docker-centos-8-standard-with-system-packages:9.1.beta9-435-g861ba33bbc-dirty + Successfully tagged sage-centos-8-standard-with-system-packages:9.1.beta9-435-g861ba33bbc-dirty Sending build context to Docker daemon ... ... - Successfully tagged sage-docker-centos-8-standard-configured:9.1.beta9-435-g861ba33bbc-dirty + Successfully tagged sage-centos-8-standard-configured:9.1.beta9-435-g861ba33bbc-dirty ... Sending build context to Docker daemon ... ... - Successfully tagged sage-docker-centos-8-standard-with-targets:9.1.beta9-435-g861ba33bbc-dirty + Successfully tagged sage-centos-8-standard-with-targets:9.1.beta9-435-g861ba33bbc-dirty Let's verify that the images are available:: (base) egret:~/s/sage/sage-rebasing/worktree-algebraic-2018-spring (mkoeppe *$%>)$ docker images | head REPOSITORY TAG IMAGE ID - sage-docker-centos-8-standard-with-targets 9.1.beta9-435-g861ba33bbc-dirty 7ecfa86fceab - sage-docker-centos-8-standard-configured 9.1.beta9-435-g861ba33bbc-dirty 4314929e2b4c - sage-docker-centos-8-standard-with-system-packages 9.1.beta9-435-g861ba33bbc-dirty 4bb14c3d5646 + sage-centos-8-standard-with-targets 9.1.beta9-435-g861ba33bbc-dirty 7ecfa86fceab + sage-centos-8-standard-configured 9.1.beta9-435-g861ba33bbc-dirty 4314929e2b4c + sage-centos-8-standard-with-system-packages 9.1.beta9-435-g861ba33bbc-dirty 4bb14c3d5646 ... @@ -1082,8 +1082,8 @@ where you replace the token by your token, of course, and Now you can pull the image and run it:: - $ docker pull ghcr.io/YOUR-GITHUB-USERNAME/sage/sage-docker-fedora-31-standard-configured:f4bd671 - $ docker run -it ghcr.io/YOUR-GITHUB-USERNAME/sage/sage-docker-fedora-31-standard-configured:f4bd671 bash + $ docker pull ghcr.io/YOUR-GITHUB-USERNAME/sage/sage-fedora-31-standard-configured:f4bd671 + $ docker run -it ghcr.io/YOUR-GITHUB-USERNAME/sage/sage-fedora-31-standard-configured:f4bd671 bash Using our pre-built Docker images published on ghcr.io @@ -1101,19 +1101,19 @@ the build logs for a given platform. The image version corresponding to the latest development release receives the additional Docker tag ``dev``, see for example the Docker image for the platform `ubuntu-focal-standard -`_. Thus, +`_. Thus, for example, the following command will work:: - $ docker run -it ghcr.io/sagemath/sage/sage-docker-ubuntu-focal-standard-with-targets-optional:dev bash - Unable to find image 'ghcr.io/sagemath/sage/sage-docker-ubuntu-focal-standard-with-targets-optional:dev' locally - dev: Pulling from sagemath/sage/sage-docker-ubuntu-focal-standard-with-targets-optional + $ docker run -it ghcr.io/sagemath/sage/sage-ubuntu-focal-standard-with-targets-optional:dev bash + Unable to find image 'ghcr.io/sagemath/sage/sage-ubuntu-focal-standard-with-targets-optional:dev' locally + dev: Pulling from sagemath/sage/sage-ubuntu-focal-standard-with-targets-optional d5fd17ec1767: Already exists 67586203f0c7: Pull complete b63c529f4777: Pull complete ... 159775d1a3d2: Pull complete Digest: sha256:e6ba5e12f59c6c4668692ef4cfe4ae5f242556482664fb347bf260f32bf8e698 - Status: Downloaded newer image for ghcr.io/sagemath/sage/sage-docker-ubuntu-focal-standard-with-targets-optional:dev + Status: Downloaded newer image for ghcr.io/sagemath/sage/sage-ubuntu-focal-standard-with-targets-optional:dev root@8055a7ba0607:/sage# ./sage ┌────────────────────────────────────────────────────────────────────┐ │ SageMath version 9.6, Release Date: 2022-05-15 │ @@ -1127,7 +1127,7 @@ contain a copy of the source tree and the full logs of the build and test. Also `smaller images corresponding to earlier build stages -`_ +`_ are available: * ``-with-system-packages`` provides a system installation with diff --git a/tox.ini b/tox.ini index 49de42daa14..076be2f064b 100644 --- a/tox.ini +++ b/tox.ini @@ -462,7 +462,7 @@ setenv = # Resulting full image:tag name # docker: FULL_BASE_IMAGE_AND_TAG={env:ARCH_IMAGE_PREFIX:}{env:BASE_IMAGE}{env:ARCH_IMAGE_SUFFIX:}:{env:ARCH_TAG_PREFIX:}{env:BASE_TAG}{env:ARCH_TAG_SUFFIX:} - docker-incremental: FULL_BASE_IMAGE_AND_TAG={env:FROM_DOCKER_REPOSITORY:ghcr.io/sagemath/sage/}sage-$(echo {envname} | sed 's/-incremental//')-{env:FROM_DOCKER_TARGET:with-targets}:{env:FROM_DOCKER_TAG:dev} + docker-incremental: FULL_BASE_IMAGE_AND_TAG={env:FROM_DOCKER_REPOSITORY:ghcr.io/sagemath/sage/}sage-$(echo {envname} | sed -E "s/(docker-|-incremental)//g")-{env:FROM_DOCKER_TARGET:with-targets}:{env:FROM_DOCKER_TAG:dev} docker-incremental: SKIP_SYSTEM_PKG_INSTALL=yes # docker-nobootstrap: BOOTSTRAP=./bootstrap -D From e8312473715ae16e0bda55da77d45572f995a6ca Mon Sep 17 00:00:00 2001 From: Martin Rubey Date: Wed, 15 Mar 2023 15:04:59 +0100 Subject: [PATCH 208/249] do not evaluate unnecessarily --- src/sage/data_structures/stream.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/sage/data_structures/stream.py b/src/sage/data_structures/stream.py index f8f6dc6a186..b86cb81be70 100644 --- a/src/sage/data_structures/stream.py +++ b/src/sage/data_structures/stream.py @@ -1853,16 +1853,19 @@ def get_coefficient(self, n): fv = self._left._approximate_order gv = self._right._approximate_order if n < 0: - return sum(self._left[i] * self._neg_powers[-i][n] - for i in range(fv, n // gv + 1)) + return sum(f_coeff_i * self._neg_powers[-i][n] + for i in range(fv, n // gv + 1) + if (f_coeff_i := self._left[i])) # n > 0 while len(self._pos_powers) <= n // gv: # TODO: possibly we always want a dense cache here? self._pos_powers.append(Stream_cauchy_mul(self._pos_powers[-1], self._right, self._is_sparse)) - ret = sum(self._left[i] * self._neg_powers[-i][n] for i in range(fv, 0)) + ret = sum(f_coeff_i * self._neg_powers[-i][n] for i in range(fv, 0) + if (f_coeff_i := self._left[i])) if n == 0: ret += self._left[0] - return ret + sum(self._left[i] * self._pos_powers[i][n] for i in range(1, n // gv+1)) + return ret + sum(f_coeff_i * self._pos_powers[i][n] for i in range(1, n // gv + 1) + if (f_coeff_i := self._left[i])) class Stream_plethysm(Stream_binary): From d3dc93c9f5fc4dc46dcc62bf95200ac189c6deff Mon Sep 17 00:00:00 2001 From: Martin Rubey Date: Wed, 15 Mar 2023 15:30:29 +0100 Subject: [PATCH 209/249] doctest implicit definitions involving composition --- src/sage/rings/lazy_series.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/sage/rings/lazy_series.py b/src/sage/rings/lazy_series.py index 2e614e225ea..57976b3ac3d 100644 --- a/src/sage/rings/lazy_series.py +++ b/src/sage/rings/lazy_series.py @@ -4507,6 +4507,21 @@ def __call__(self, *g, check=True): sage: T(1-x-2*y + x*y^2)(1/(1-a), 3) 3 + 8*a + 8*a^2 + 8*a^3 + 8*a^4 + 8*a^5 + 8*a^6 + O(a,b)^7 + Check that issue :trac:`35261` is fixed:: + + sage: L. = LazyPowerSeriesRing(QQ) + sage: fun = lambda n: 1 if ZZ(n).is_power_of(2) else 0 + sage: f = L(fun) + sage: g = L.undefined(valuation=1) + sage: g.define((~f.shift(-1)(g)).shift(1)) + sage: g + z - z^2 + 2*z^3 - 6*z^4 + 20*z^5 - 70*z^6 + 256*z^7 + O(z^8) + + sage: f = L(fun) + sage: g = L.undefined(valuation=1) + sage: g.define((z - (f - z)(g))) + sage: g + z - z^2 + 2*z^3 - 6*z^4 + 20*z^5 - 70*z^6 + 256*z^7 + O(z^8) """ fP = parent(self) if len(g) != fP._arity: @@ -4712,6 +4727,16 @@ def revert(self): sage: f = L([-1], valuation=1, degree=3, constant=-1) sage: f.revert() (-z) + z^3 + (-z^4) + (-2*z^5) + 6*z^6 + z^7 + O(z^8) + + Check that issue :trac:`35261` is fixed:: + + sage: L. = LazyPowerSeriesRing(QQ) + sage: f = L(lambda n: 1 if ZZ(n).is_power_of(2) else 0) + sage: f + z + z^2 + z^4 + O(z^7) + sage: f.revert() + z - z^2 + 2*z^3 - 6*z^4 + 20*z^5 - 70*z^6 + 256*z^7 + O(z^8) + """ P = self.parent() if P._arity != 1: From e50fdc87fde341ac8b0b965ffaa74fc6744e3052 Mon Sep 17 00:00:00 2001 From: Martin Rubey Date: Thu, 16 Mar 2023 13:13:01 +0100 Subject: [PATCH 210/249] remove superfluous conditional as suggested by reviewer Co-authored-by: Travis Scrimshaw --- src/sage/data_structures/stream.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/sage/data_structures/stream.py b/src/sage/data_structures/stream.py index c63f8021545..7bd02e7a899 100644 --- a/src/sage/data_structures/stream.py +++ b/src/sage/data_structures/stream.py @@ -385,12 +385,8 @@ def __getitem__(self, n): except KeyError: c = self.get_coefficient(n) self._cache[n] = c - if self._true_order: - return c - # we assume that self._approximate_order is not in - # self._cache. (there should be a possibility to - # check this assumption in a testsuite) - if n == self._approximate_order: + # note that self._approximate_order is not in self._cache + if not self._true_order and n == self._approximate_order: if c: self._true_order = True self._approximate_order = n @@ -399,12 +395,13 @@ def __getitem__(self, n): while ao in self._cache: if self._cache[ao]: self._true_order = True - self._approximate_order = ao - return c + break ao += 1 self._approximate_order = ao - return c + return c + + # Now we consider the dense implementation i = n - self._offset if i >= len(self._cache): From 278668f92de6d6af92722ede3f899f1422c3e6fa Mon Sep 17 00:00:00 2001 From: Martin Rubey Date: Thu, 16 Mar 2023 13:27:30 +0100 Subject: [PATCH 211/249] correct comment --- src/sage/data_structures/stream.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/sage/data_structures/stream.py b/src/sage/data_structures/stream.py index 7bd02e7a899..2485f221e84 100644 --- a/src/sage/data_structures/stream.py +++ b/src/sage/data_structures/stream.py @@ -385,8 +385,9 @@ def __getitem__(self, n): except KeyError: c = self.get_coefficient(n) self._cache[n] = c - # note that self._approximate_order is not in self._cache if not self._true_order and n == self._approximate_order: + # note that self._approximate_order is not in + # self._cache if self._true_order is False if c: self._true_order = True self._approximate_order = n From 4053376b373ad1ed57ca9fb8840ecf11b7838e9a Mon Sep 17 00:00:00 2001 From: Travis Scrimshaw Date: Wed, 15 Mar 2023 21:32:08 +0900 Subject: [PATCH 212/249] Checking arity for shift, removing a todo in revert, and added some warnings to the doc. --- src/sage/rings/lazy_series.py | 51 ++++++++++++++++++++++++++++------- 1 file changed, 41 insertions(+), 10 deletions(-) diff --git a/src/sage/rings/lazy_series.py b/src/sage/rings/lazy_series.py index 2e614e225ea..ed0e88748b4 100644 --- a/src/sage/rings/lazy_series.py +++ b/src/sage/rings/lazy_series.py @@ -657,6 +657,22 @@ def shift(self, n): sage: f.shift(3) 1/(5^t) + 2/6^t + .. WARNING:: + + When working with an inexact power series (e.g., defined + by a function) that has not computed its order and shifting + by too much can result in a Laurent series that does not + know it is a Laurent series:: + + sage: fun = lambda n: 1 if ZZ(n).is_power_of(2) else 0 + sage: L. = LazyPowerSeriesRing(QQ) + sage: f = L(fun) + sage: fs = f.shift(-4) + sage: fs + 1/x^3 + 1/x^2 + 1 + O(x^3) + sage: fs.parent() + Lazy Taylor Series Ring in x over Rational Field + TESTS:: sage: L. = LazyLaurentSeriesRing(QQ) @@ -673,7 +689,16 @@ def shift(self, n): x^-2 sage: f.parent() Lazy Laurent Series Ring in x over Rational Field + + sage: L. = LazyPowerSeriesRing(QQ) + sage: f = x.shift(2) + Traceback (most recent call last): + ... + ValueError: arity must be equal to 1 """ + P = self.parent() + if P._arity != 1: + raise ValueError("arity must be equal to 1") if isinstance(self._coeff_stream, Stream_zero): return self elif isinstance(self._coeff_stream, Stream_shift): @@ -691,7 +716,6 @@ def shift(self, n): order=valuation, degree=degree) else: coeff_stream = Stream_shift(self._coeff_stream, n) - P = self.parent() # If we shift it too much, then it needs to go into the fraction field # FIXME? This is different than the polynomial rings, which truncates the terms if (coeff_stream._true_order @@ -3801,7 +3825,13 @@ def revert(self): - `f = a + b z` with `a, b \neq 0`, or - - `f = a/z` with `a \neq 0` + - `f = a/z` with `a \neq 0`. + + .. WARNING:: + + For inexact series (e.g., being defined by a function), it is + assumed that the series has valuation `1` and is not one of + the two other special cases. EXAMPLES:: @@ -4615,15 +4645,21 @@ def revert(self): r""" Return the compositional inverse of ``self``. - Given a Taylor series `f`, the compositional inverse is a - Laurent series `g` over the same base ring, such that + Given a Taylor series `f` in one variable, the compositional + inverse is a power series `g` over the same base ring, such that `(f \circ g)(z) = f(g(z)) = z`. The compositional inverse exists if and only if: - `val(f) = 1`, or - - `f = a + b z` with `a, b \neq 0` + - `f = a + b z` with `a, b \neq 0`. + + .. WARNING:: + + For inexact series (e.g., being defined by a function), it is + assumed that the series has valuation `1` and is not a linear + polynomial. EXAMPLES:: @@ -4744,11 +4780,6 @@ def revert(self): if coeff_stream.order() != 1: raise ValueError("compositional inverse does not exist") - # TODO: coefficients should not be checked here, it prevents - # us from using self.define in some cases! - if coeff_stream[0]: - raise ValueError("cannot determine whether the compositional inverse exists") - g = P.undefined(valuation=1) # the following is mathematically equivalent to # z / ((self / z)(g)) From f754da0f8dd89db63ae3b035cea2cad2aec8c371 Mon Sep 17 00:00:00 2001 From: Travis Scrimshaw Date: Thu, 16 Mar 2023 21:41:12 +0900 Subject: [PATCH 213/249] Changing "inexact" to "not known to be eventually constant". --- src/sage/rings/lazy_series.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/sage/rings/lazy_series.py b/src/sage/rings/lazy_series.py index ed0e88748b4..c408df47fd9 100644 --- a/src/sage/rings/lazy_series.py +++ b/src/sage/rings/lazy_series.py @@ -659,10 +659,10 @@ def shift(self, n): .. WARNING:: - When working with an inexact power series (e.g., defined - by a function) that has not computed its order and shifting - by too much can result in a Laurent series that does not - know it is a Laurent series:: + When working with a power series not known to be eventually + constant (e.g., defined by a function) that has not computed + its order and shifting by too much can result in a Laurent + series that does not know it is a Laurent series:: sage: fun = lambda n: 1 if ZZ(n).is_power_of(2) else 0 sage: L. = LazyPowerSeriesRing(QQ) @@ -3829,8 +3829,9 @@ def revert(self): .. WARNING:: - For inexact series (e.g., being defined by a function), it is - assumed that the series has valuation `1` and is not one of + For power series not known to be eventually constant + (e.g., being defined by a function), it is assumed that + the series has valuation `1` and is not one of the two other special cases. EXAMPLES:: @@ -4657,9 +4658,9 @@ def revert(self): .. WARNING:: - For inexact series (e.g., being defined by a function), it is - assumed that the series has valuation `1` and is not a linear - polynomial. + For series not known to be eventually constant (e.g., being + defined by a function), it is assumed that the series + has valuation `1` and is not a linear polynomial. EXAMPLES:: From 89d9ed3b09781003715139aed877e1267450bf74 Mon Sep 17 00:00:00 2001 From: Martin Rubey Date: Thu, 16 Mar 2023 15:13:04 +0100 Subject: [PATCH 214/249] simplify Stream_inexact.order, improve approximate order also in the dense case, adapt doctests --- src/sage/data_structures/stream.py | 71 ++++++++++++------------------ src/sage/rings/lazy_series.py | 8 ++-- 2 files changed, 32 insertions(+), 47 deletions(-) diff --git a/src/sage/data_structures/stream.py b/src/sage/data_structures/stream.py index 2485f221e84..943fbf8face 100644 --- a/src/sage/data_structures/stream.py +++ b/src/sage/data_structures/stream.py @@ -251,7 +251,7 @@ def _offset(self): sage: f._cache [-3, -2, -1, 0, 1, 2, 3, 4] """ - # self[n] = self._cache[n-self._offset] + # self[n] == self._cache[n-self._offset] if self._is_sparse: raise ValueError("_offset is only for dense streams") return self._approximate_order @@ -386,8 +386,8 @@ def __getitem__(self, n): c = self.get_coefficient(n) self._cache[n] = c if not self._true_order and n == self._approximate_order: - # note that self._approximate_order is not in - # self._cache if self._true_order is False + # self._approximate_order is not in self._cache if + # self._true_order is False if c: self._true_order = True self._approximate_order = n @@ -399,18 +399,25 @@ def __getitem__(self, n): break ao += 1 self._approximate_order = ao + return c - return c - - # Now we consider the dense implementation - + # Dense implementation i = n - self._offset if i >= len(self._cache): a = len(self._cache) + self._offset - # It is important to extend by generator: - # self._iter might recurse, and thereby extend the - # cache itself, too. - self._cache.extend(next(self._iter) for _ in range(a, n+1)) + if self._true_order: + # It is important to extend by generator: + # self._iter might recurse, and thereby extend the + # cache itself, too. + self._cache.extend(next(self._iter) for _ in range(a, n+1)) + else: + for _ in range(a, n+1): + c = next(self._iter) + self._cache.append(c) + if c: + self._true_order = True + else: + self._approximate_order += 1 return self._cache[i] @@ -444,41 +451,19 @@ def order(self): sage: f = Stream_function(lambda n: n, True, 0) sage: f.order() 1 + + TESTS:: + + sage: f = Stream_function(lambda n: n*(n+1), False, -1) + sage: f.order() + 1 """ if self._true_order: return self._approximate_order - if self._is_sparse: - n = self._approximate_order - cache = self._cache - while True: - if n in cache: - if cache[n]: - self._approximate_order = n - self._true_order = True - return n - n += 1 - else: - if self[n]: - self._approximate_order = n - self._true_order = True - return n - n += 1 - else: - n = self._approximate_order - cache = self._cache - while True: - if n - self._offset < len(cache): - if cache[n - self._offset]: - self._approximate_order = n - self._true_order = True - return n - n += 1 - else: - if self[n]: - self._approximate_order = n - self._true_order = True - return n - n += 1 + n = self._approximate_order + while not self[n]: + n += 1 + return n def __ne__(self, other): """ diff --git a/src/sage/rings/lazy_series.py b/src/sage/rings/lazy_series.py index 5a8ab79f686..a2ec1653726 100644 --- a/src/sage/rings/lazy_series.py +++ b/src/sage/rings/lazy_series.py @@ -540,7 +540,7 @@ def map_coefficients(self, f): sage: m = L(lambda n: n, valuation=0); m z + 2*z^2 + 3*z^3 + 4*z^4 + 5*z^5 + 6*z^6 + O(z^7) sage: m.map_coefficients(lambda c: c + 1) - 2*z + 3*z^2 + 4*z^3 + 5*z^4 + 6*z^5 + 7*z^6 + O(z^7) + 2*z + 3*z^2 + 4*z^3 + 5*z^4 + 6*z^5 + 7*z^6 + 8*z^7 + O(z^8) Test the zero series:: @@ -2648,7 +2648,7 @@ def _mul_(self, other): sage: N = L(lambda n: 1, valuation=0); N 1 + z + z^2 + z^3 + z^4 + z^5 + z^6 + O(z^7) sage: M * N - z + 3*z^2 + 6*z^3 + 10*z^4 + 15*z^5 + 21*z^6 + O(z^7) + z + 3*z^2 + 6*z^3 + 10*z^4 + 15*z^5 + 21*z^6 + 28*z^7 + O(z^8) sage: L.one() * M is M True @@ -2765,7 +2765,7 @@ def __pow__(self, n): sage: M = L(lambda n: n, valuation=0); M z + 2*z^2 + 3*z^3 + 4*z^4 + 5*z^5 + 6*z^6 + O(z^7) sage: M^2 - z^2 + 4*z^3 + 10*z^4 + 20*z^5 + 35*z^6 + O(z^7) + z^2 + 4*z^3 + 10*z^4 + 20*z^5 + 35*z^6 + 56*z^7 + 84*z^8 + O(z^9) We can create a really large power of a monomial, even with the dense implementation:: @@ -2947,7 +2947,7 @@ def _div_(self, other): sage: N = L(lambda n: 1, 0); N 1 + z + z^2 + z^3 + z^4 + z^5 + z^6 + O(z^7) sage: P = M / N; P - z + z^2 + z^3 + z^4 + z^5 + z^6 + O(z^7) + z + z^2 + z^3 + z^4 + z^5 + z^6 + z^7 + O(z^8) Lazy Laurent series that have a sparse implementation can be divided:: From ad72656af9c312fc448bf2388699ca0967e06e5b Mon Sep 17 00:00:00 2001 From: Travis Scrimshaw Date: Fri, 17 Mar 2023 17:34:55 +0900 Subject: [PATCH 215/249] Some changes to shift() and reverting some changes to revert(). --- src/sage/rings/lazy_series.py | 129 ++++++++++++++++++++++++++-------- 1 file changed, 99 insertions(+), 30 deletions(-) diff --git a/src/sage/rings/lazy_series.py b/src/sage/rings/lazy_series.py index c408df47fd9..689d7b59a39 100644 --- a/src/sage/rings/lazy_series.py +++ b/src/sage/rings/lazy_series.py @@ -628,13 +628,19 @@ def truncate(self, d): initial_coefficients = [coeff_stream[i] for i in range(v, d)] return P.element_class(P, Stream_exact(initial_coefficients, order=v)) - def shift(self, n): + def shift(self, n, use_fraction_field=False): r""" Return ``self`` with the indices shifted by ``n``. For example, a Laurent series is multiplied by the power `z^n`, where `z` is the variable of ``self``. + INPUT: + + - ``n`` -- the amount to shift + - ``use_fraction_field`` -- (default: ``False``) convert the result + into the fraction field + EXAMPLES:: sage: L. = LazyLaurentSeriesRing(ZZ) @@ -657,21 +663,42 @@ def shift(self, n): sage: f.shift(3) 1/(5^t) + 2/6^t + We compare the shifting with the ``use_fraction_field`` option:: + + sage: L. = LazyPowerSeriesRing(QQ) + sage: f = L([1,2,3,4]); f + 1 + 2*x + 3*x^2 + 4*x^3 + sage: f.shift(-3) + 4 + sage: f.shift(-3, use_fraction_field=True) + x^-3 + 2*x^-2 + 3*x^-1 + 4 + .. WARNING:: - When working with a power series not known to be eventually - constant (e.g., defined by a function) that has not computed - its order and shifting by too much can result in a Laurent - series that does not know it is a Laurent series:: + When working with a power series not known to be eventually + constant, if one shifts below the minimal valuation and then + shifts back, this remembers the terms that would have been + truncated. That is, these entries are not replaced by `0`:: sage: fun = lambda n: 1 if ZZ(n).is_power_of(2) else 0 sage: L. = LazyPowerSeriesRing(QQ) - sage: f = L(fun) + sage: f = L(fun); f + x + x^2 + x^4 + O(x^7) sage: fs = f.shift(-4) sage: fs - 1/x^3 + 1/x^2 + 1 + O(x^3) - sage: fs.parent() - Lazy Taylor Series Ring in x over Rational Field + 1 + x^4 + O(x^7) + sage: fs.shift(4) + x + x^2 + x^4 + O(x^7) + + This is slightly different than streams that are known to + be eventually constant:: + + sage: f = L([1,2,3,4], constant=7); f + 1 + 2*x + 3*x^2 + 4*x^3 + 7*x^4 + 7*x^5 + 7*x^6 + O(x^7) + sage: fs = f.shift(-4); fs + 7 + 7*x + 7*x^2 + O(x^3) + sage: fs.shift(4) + 7*x^4 + 7*x^5 + 7*x^6 + O(x^7) TESTS:: @@ -686,6 +713,8 @@ def shift(self, n): sage: L. = LazyPowerSeriesRing(QQ) sage: f = x.shift(-3); f + 0 + sage: f = x.shift(-3, use_fraction_field=True); f x^-2 sage: f.parent() Lazy Laurent Series Ring in x over Rational Field @@ -695,33 +724,50 @@ def shift(self, n): Traceback (most recent call last): ... ValueError: arity must be equal to 1 + + sage: L. = LazyPowerSeriesRing(QQ) + sage: f = L([1,2,3,4]) + sage: f.shift(-10) == L.zero() + True """ P = self.parent() if P._arity != 1: raise ValueError("arity must be equal to 1") + + if use_fraction_field: + P = P.fraction_field() + if isinstance(self._coeff_stream, Stream_zero): + if use_fraction_field: + return P.zero() return self - elif isinstance(self._coeff_stream, Stream_shift): + + if isinstance(self._coeff_stream, Stream_shift): n += self._coeff_stream._shift if n: coeff_stream = Stream_shift(self._coeff_stream._series, n) + if P._minimal_valuation is not None: + coeff_stream._approximate_order = max(coeff_stream._approximate_order, P._minimal_valuation) else: coeff_stream = self._coeff_stream._series elif isinstance(self._coeff_stream, Stream_exact): init_coeff = self._coeff_stream._initial_coefficients degree = self._coeff_stream._degree + n valuation = self._coeff_stream._approximate_order + n + if P._minimal_valuation is not None and P._minimal_valuation > valuation: + init_coeff = init_coeff[P._minimal_valuation-valuation:] + valuation = P._minimal_valuation + if not init_coeff and not self._coeff_stream._constant: + return P.zero() coeff_stream = Stream_exact(init_coeff, constant=self._coeff_stream._constant, order=valuation, degree=degree) else: coeff_stream = Stream_shift(self._coeff_stream, n) - # If we shift it too much, then it needs to go into the fraction field - # FIXME? This is different than the polynomial rings, which truncates the terms - if (coeff_stream._true_order - and P._minimal_valuation is not None - and coeff_stream._approximate_order < P._minimal_valuation): - P = P.fraction_field() + + if P._minimal_valuation is not None: + coeff_stream._approximate_order = max(coeff_stream._approximate_order, P._minimal_valuation) + return P.element_class(P, coeff_stream) __lshift__ = shift @@ -3827,13 +3873,6 @@ def revert(self): - `f = a/z` with `a \neq 0`. - .. WARNING:: - - For power series not known to be eventually constant - (e.g., being defined by a function), it is assumed that - the series has valuation `1` and is not one of - the two other special cases. - EXAMPLES:: sage: L. = LazyLaurentSeriesRing(QQ) @@ -3852,6 +3891,17 @@ def revert(self): sage: s.revert() z - z^2 + z^3 - z^4 + z^5 - z^6 + z^7 + O(z^8) + .. WARNING:: + + For series not known to be eventually constant (e.g., being + defined by a function) with approximate valuation `\leq 1` + (but not necessarily its true valuation), this assumes + that this is the actual valuation:: + + sage: f = L(lambda n: n if n > 2 else 0, valuation=1) + sage: f.revert() + + TESTS:: sage: L. = LazyLaurentSeriesRing(QQ) @@ -4656,12 +4706,6 @@ def revert(self): - `f = a + b z` with `a, b \neq 0`. - .. WARNING:: - - For series not known to be eventually constant (e.g., being - defined by a function), it is assumed that the series - has valuation `1` and is not a linear polynomial. - EXAMPLES:: sage: L. = LazyPowerSeriesRing(QQ) @@ -4678,6 +4722,17 @@ def revert(self): sage: s.revert() z - z^2 + z^3 - z^4 + z^5 - z^6 + z^7 + O(z^8) + .. WARNING:: + + For series not known to be eventually constant (e.g., being + defined by a function) with approximate valuation `\leq 1` + (but not necessarily its true valuation), this assumes + that this is the actual valuation:: + + sage: f = L(lambda n: n if n > 2 else 0) + sage: f.revert() + + TESTS:: sage: L. = LazyPowerSeriesRing(QQ) @@ -4686,7 +4741,7 @@ def revert(self): sage: s.revert() 1/2*z + O(z^8) - sage: (2+3*z).revert() + sage: (2 + 3*z).revert() -2/3 + 1/3*z sage: s = L(lambda n: 2 if n == 0 else 3 if n == 1 else 0, valuation=0); s @@ -4730,6 +4785,13 @@ def revert(self): ... ValueError: compositional inverse does not exist + `\mathrm{val}(f) > 1`:: + + sage: L(lambda n: n, valuation=2).revert() + Traceback (most recent call last): + ... + ValueError: compositional inverse does not exist + Reversion of exact series:: sage: f = L([1, 2], valuation=0, constant=1) @@ -4781,6 +4843,13 @@ def revert(self): if coeff_stream.order() != 1: raise ValueError("compositional inverse does not exist") + if coeff_stream._approximate_order > 1: + raise ValueError("compositional inverse does not exist") + # TODO: coefficients should not be checked here, it prevents + # us from using self.define in some cases! + if coeff_stream._approximate_order == 0 and coeff_stream[0]: + raise ValueError("cannot determine whether the compositional inverse exists") + g = P.undefined(valuation=1) # the following is mathematically equivalent to # z / ((self / z)(g)) From 8c804c7de94a1f5787e424897f8bf8ed162a2acb Mon Sep 17 00:00:00 2001 From: Kwankyu Lee Date: Sat, 18 Mar 2023 10:27:51 +0900 Subject: [PATCH 216/249] Make codecov report less noisy --- .codecov.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.codecov.yml b/.codecov.yml index 69cb76019a4..466a0fb42b7 100644 --- a/.codecov.yml +++ b/.codecov.yml @@ -1 +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 From b2fe0fc618c140898a84b0449a7b1e8b4407cef4 Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Sat, 18 Mar 2023 20:37:05 +0100 Subject: [PATCH 217/249] self.base_ring()(right) -> right.constant_coefficient() --- src/sage/rings/polynomial/multi_polynomial_element.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/rings/polynomial/multi_polynomial_element.py b/src/sage/rings/polynomial/multi_polynomial_element.py index 491738d97e0..d66180d3cb1 100644 --- a/src/sage/rings/polynomial/multi_polynomial_element.py +++ b/src/sage/rings/polynomial/multi_polynomial_element.py @@ -386,7 +386,7 @@ def _div_(self, right): 1/2*x """ if right.is_constant(): - inv = self.base_ring().one() / self.base_ring()(right) + inv = self.base_ring().one() / right.constant_coefficient() return inv * self return self.parent().fraction_field()(self, right, coerce=False) From 5d9ee4e8a81afd3f6bf35802772ecefbde63a7ca Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Sat, 18 Mar 2023 20:40:41 +0100 Subject: [PATCH 218/249] datastructure -> data structure --- src/sage/rings/polynomial/polydict.pyx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index e15a752551e..aa642b11575 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -107,7 +107,7 @@ cpdef ETuple monomial_exponent(PolyDict p): cdef class PolyDict: r""" - Datastructure for multivariate polynomials. + Data structure for multivariate polynomials. A PolyDict holds a dictionary all of whose keys are :class:`ETuple` and whose values are coefficients on which it is implicitely assumed that From 3b1b364db624c83e7236e52fa94010e4a542994b Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Sat, 18 Mar 2023 21:00:29 +0100 Subject: [PATCH 219/249] improve PolyDict constructor --- src/sage/rings/polynomial/polydict.pyx | 32 +++++++++++++------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index aa642b11575..b81b9b03f45 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -163,29 +163,29 @@ cdef class PolyDict: from sage.misc.superseded import deprecation deprecation(34000, 'the arguments "zero", "forced_int_exponents" and "forced_etuples" of PolyDict constructor are deprecated') - cdef dict v - + self.__repn = {} if isinstance(pdict, (tuple, list)): - v = {} - for w in pdict: - v[ETuple(w[1])] = w[0] + for coeff, exp in pdict: + if type(exp) is not ETuple: + exp = ETuple(exp) + self.__repn[exp] = coeff elif isinstance(pdict, dict): - v = pdict.copy() + if all(type(k) is ETuple for k in pdict): + self.__repn = ( pdict).copy() + else: + self.__repn = {} + for exp, coeff in pdict.items(): + if type(exp) is not ETuple: + exp = ETuple(exp) + self.__repn[exp] = coeff else: - raise TypeError("pdict must be a dict or a list") - - for k in list(v): - if type(k) is not ETuple: - val = v[k] - del v[k] - v[ETuple(k)] = val + raise TypeError("pdict must be a dict or a list of pairs (coeff, exponent)") - self.__repn = v if remove_zero is not None: from sage.misc.superseded import deprecation deprecation(34000, 'the argument "remove_zero" of PolyDict constructor is deprecated; call the method remove_zeros') - if remove_zero: - self.remove_zeros() + if remove_zero: + self.remove_zeros() cpdef remove_zeros(self): r""" From 8dd263b09862e46cdfdbe365be4dabac0abe9ab4 Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Sat, 18 Mar 2023 21:27:42 +0100 Subject: [PATCH 220/249] cython for loop optimization and cleaning --- src/sage/rings/polynomial/polydict.pyx | 116 ++++++++++++------------- 1 file changed, 58 insertions(+), 58 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index b81b9b03f45..339135e4708 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -846,7 +846,7 @@ cdef class PolyDict: # First determine the multinomial: multi = "" for j in e.nonzero_positions(sort=True): - if len(multi) > 0: + if multi: multi = multi + "*" multi = multi + vars[j] if e[j] != 1: @@ -855,11 +855,11 @@ cdef class PolyDict: else: multi = multi + "^(%s)" % e[j] # Next determine coefficient of multinomial - if len(multi) == 0: + if not multi: multi = str(c) elif c == neg_one and not is_characteristic_2: # handle -1 specially because it's a pain - if len(poly) > 0: + if poly: sign_switch = True else: multi = "-%s" % multi @@ -871,7 +871,7 @@ cdef class PolyDict: multi = "%s*%s" % (c, multi) # Now add on coefficiented multinomials - if len(poly) > 0: + if poly: if sign_switch: poly = poly + " - " else: @@ -879,7 +879,7 @@ cdef class PolyDict: poly = poly + multi poly = poly.lstrip().rstrip() poly = poly.replace("+ -", "- ") - if len(poly) == 0: + if not poly: return "0" return poly @@ -1527,23 +1527,19 @@ cdef class ETuple: d = [self[ind] for ind from start <= ind < stop] return ETuple(d) else: - for ind in range(0, 2*self._nonzero, 2): - if self._data[ind] == i: - return self._data[ind+1] - elif self._data[ind] > i: - # the indices are sorted in _data, we are beyond, so quit - return 0 - return 0 + return self.get_exp(i) cdef int get_exp(self, size_t i): """ Return the exponent for the ``i``-th variable. """ + # TODO: implement binary search cdef size_t ind = 0 - for ind in range(0, 2*self._nonzero, 2): - if self._data[ind] == i: - return self._data[ind+1] - elif self._data[ind] > i: + # NOTE: cython does optimize range(a) and range(a, b) but not range(a, b, c) + for ind in range(self._nonzero): + if self._data[2 * ind] == i: + return self._data[2 * ind + 1] + elif self._data[2 * ind] > i: # the indices are sorted in _data, we are beyond, so quit return 0 return 0 @@ -1554,7 +1550,7 @@ cdef class ETuple: """ cdef int i cdef int result = 0 - for i from 0 <= i < self._nonzero: + for i in range(self._nonzero): result += (1000003 * result) ^ self._data[2*i] result += (1000003 * result) ^ self._data[2*i+1] result = (1000003 * result) ^ self._length @@ -1591,8 +1587,8 @@ cdef class ETuple: return self._length > self._nonzero cdef size_t ind = 0 - for ind from 0 <= ind < self._nonzero: - if elem == self._data[2*ind+1]: + for ind in range(self._nonzero): + if elem == self._data[2 * ind + 1]: return True return False @@ -1626,10 +1622,10 @@ cdef class ETuple: if op == Py_EQ: # == if self._nonzero != other._nonzero: return False - for ind from 0 <= ind < self._nonzero: - if self._data[2*ind] != other._data[2*ind]: + for ind in range(self._nonzero): + if self._data[2 * ind] != other._data[2 * ind]: return False - if self._data[2*ind+1] != other._data[2*ind+1]: + if self._data[2 * ind + 1] != other._data[2 * ind + 1]: return False return self._length == other._length @@ -1790,8 +1786,9 @@ cdef class ETuple: cdef int deg = 0 if len(w) != self._length: raise ValueError - for i in range(0, 2 * self._nonzero, 2): - deg += self._data[i+1] * w[self._data[i]] + # NOTE: cython does optimize range(a) and range(a, b) but not range(a, b, c) + for i in range(self._nonzero): + deg += self._data[2 * i + 1] * w[self._data[2 * i]] return deg cpdef int unweighted_quotient_degree(self, ETuple other) except *: @@ -1811,20 +1808,20 @@ cdef class ETuple: cdef int deg = 0 while ind1 < selfnz: position = self._data[ind1] - exponent = self._data[ind1+1] + exponent = self._data[ind1 + 1] while ind2 < othernz and other._data[ind2] < position: ind2 += 2 if ind2 == othernz: while ind1 < selfnz: - deg += self._data[ind1+1] + deg += self._data[ind1 + 1] ind1 += 2 return deg if other._data[ind2] > position: # other[position] = 0 deg += exponent - elif other._data[ind2+1] < exponent: + elif other._data[ind2 + 1] < exponent: # There is a positive difference that we have to insert - deg += (exponent - other._data[ind2+1]) + deg += (exponent - other._data[ind2 + 1]) ind1 += 2 return deg @@ -2093,13 +2090,13 @@ cdef class ETuple: cdef ETuple result = self._new() if factor == 0: result._nonzero = 0 # all zero, no non-zero entries! - result._data = sig_malloc(sizeof(int)*result._nonzero*2) + result._data = sig_malloc(sizeof(int) * result._nonzero * 2) else: result._nonzero = self._nonzero - result._data = sig_malloc(sizeof(int)*result._nonzero*2) - for ind from 0 <= ind < self._nonzero: - result._data[2*ind] = self._data[2*ind] - result._data[2*ind+1] = self._data[2*ind+1]*factor + result._data = sig_malloc(sizeof(int) * result._nonzero * 2) + for ind in range(self._nonzero): + result._data[2 * ind] = self._data[2 * ind] + result._data[2 * ind + 1] = self._data[2 * ind + 1] * factor return result cpdef ETuple emax(self, ETuple other): @@ -2253,6 +2250,7 @@ cdef class ETuple: cdef ETuple result = self._new() result._data = sig_malloc(sizeof(int) * 2 * self._nonzero) result._nonzero = 0 + # NOTE: cython does optimize range(a) and range(a, b) but not range(a, b, c) for i in range(self._nonzero): result._data[2 * result._nonzero + 1] = self._data[2 * i + 1] / n if result._data[2 * result._nonzero + 1]: @@ -2313,27 +2311,28 @@ cdef class ETuple: cdef size_t i, j cdef int exp1 cdef ETuple result - for i in range(0, 2*self._nonzero,2): + # NOTE: cython does optimize range(a) and range(a, b) but not range(a, b, c) + for i in range(self._nonzero): if self._data[i] == index: - result = self._new() - result._data = sig_malloc(sizeof(int)*self._nonzero*2) - exp1 = self._data[i+1] - if exp1>1: + result = self._new() + result._data = sig_malloc(sizeof(int) * self._nonzero * 2) + exp1 = self._data[2 * i + 1] + if exp1 > 1: # division doesn't change the number of nonzero positions result._nonzero = self._nonzero - for j in range(0, 2*self._nonzero, 2): - result._data[j] = self._data[j] - result._data[j+1] = self._data[j+1] - result._data[i+1] = exp1-1 + for j in range(self._nonzero): + result._data[2 * j] = self._data[2 * j] + result._data[2 * j + 1] = self._data[2 * j + 1] + result._data[2 * i + 1] = exp1 - 1 else: # var(index) disappears from self result._nonzero = self._nonzero-1 - for j in range(0, i, 2): - result._data[j] = self._data[j] - result._data[j+1] = self._data[j+1] - for j in range(i+2, 2*self._nonzero, 2): - result._data[j-2] = self._data[j] - result._data[j-1] = self._data[j+1] + for j in range(i): + result._data[2 * j] = self._data[2 * j] + result._data[2 * j + 1] = self._data[2 * j + 1] + for j in range(i + 1, self._nonzero): + result._data[2 * j - 2] = self._data[2 * j] + result._data[2 * j - 1] = self._data[2 * j + 1] return result return None @@ -2349,16 +2348,17 @@ cdef class ETuple: # Trivially self cannot divide other return False cdef size_t othernz2 = 2 * other._nonzero - for ind1 in range(0, 2*self._nonzero, 2): - pos1 = self._data[ind1] - exp1 = self._data[ind1+1] + # NOTE: cython does optimize range(a) and range(a, b) but not range(a, b, c) + for ind1 in range(self._nonzero): + pos1 = self._data[2 * ind1] + exp1 = self._data[2 * ind1 + 1] # Because of the above trivial test, other._nonzero>0. # So, other._data[ind2] initially makes sense. while other._data[ind2] < pos1: ind2 += 2 if ind2 >= othernz2: return False - if other._data[ind2] > pos1 or other._data[ind2+1] < exp1: + if other._data[ind2] > pos1 or other._data[ind2 + 1] < exp1: # Either other has no exponent at position pos1 or the exponent is less than in self return False return True @@ -2419,7 +2419,7 @@ cdef class ETuple: [0, 2] """ cdef size_t ind - return [self._data[2*ind] for ind from 0 <= ind < self._nonzero] + return [self._data[2 * ind] for ind in range(self._nonzero)] cpdef common_nonzero_positions(self, ETuple other, bint sort=False): """ @@ -2464,7 +2464,7 @@ cdef class ETuple: [-1, 1] """ cdef size_t ind - return [self._data[2*ind+1] for ind from 0 <= ind < self._nonzero] + return [self._data[2 * ind + 1] for ind in range(self._nonzero)] cpdef ETuple reversed(self): """ @@ -2480,10 +2480,10 @@ cdef class ETuple: cdef size_t ind cdef ETuple result = self._new() result._nonzero = self._nonzero - result._data = sig_malloc(sizeof(int)*result._nonzero*2) + result._data = sig_malloc(sizeof(int) * result._nonzero * 2) for ind in range(self._nonzero): - result._data[2*(result._nonzero-ind-1)] = self._length - self._data[2*ind] - 1 - result._data[2*(result._nonzero-ind-1)+1] = self._data[2*ind+1] + result._data[2 * (result._nonzero - ind - 1)] = self._length - self._data[2 * ind] - 1 + result._data[2 * (result._nonzero - ind - 1) + 1] = self._data[2 * ind + 1] return result def sparse_iter(self): @@ -2500,7 +2500,7 @@ cdef class ETuple: """ cdef size_t ind for ind in range(self._nonzero): - yield (self._data[2*ind], self._data[2*ind+1]) + yield (self._data[2 * ind], self._data[2 * ind + 1]) def combine_to_positives(self, ETuple other): """ From 7768edf59c729f16860f9defd84863913cdea5cf Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Sat, 18 Mar 2023 21:28:03 +0100 Subject: [PATCH 221/249] PolyDict doc --- src/sage/rings/polynomial/polydict.pyx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index 339135e4708..10284b1137e 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -131,19 +131,19 @@ cdef class PolyDict: EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: PolyDict({(2,3):2, (1,2):3, (2,1):4}) + sage: PolyDict({(2, 3): 2, (1, 2): 3, (2, 1): 4}) PolyDict with representation {(1, 2): 3, (2, 1): 4, (2, 3): 2} - sage: PolyDict({(2,3):0, (1,2):3, (2,1):4}) + sage: PolyDict({(2, 3): 0, (1, 2): 3, (2, 1): 4}) PolyDict with representation {(1, 2): 3, (2, 1): 4, (2, 3): 0} - sage: PolyDict({(0,0):RIF(-1,1)}) + sage: PolyDict({(0, 0): RIF(-1,1)}) PolyDict with representation {(0, 0): 0.?} TESTS:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: f = PolyDict({(2, 3):2, (1, 2):3, (2, 1):4}) + sage: f = PolyDict({(2, 3): 2, (1, 2): 3, (2, 1): 4}) sage: len(f) 3 sage: f = PolyDict({}, zero=3, force_int_exponents=True, force_etuples=True) @@ -492,7 +492,7 @@ cdef class PolyDict: INPUT: - - ``w`` (optional) -- a tuple of weights + - ``w`` -- (optional) a tuple of weights EXAMPLES:: @@ -1423,7 +1423,7 @@ cdef class ETuple: def __bool__(self): r""" - Return whether this polynomial is nonzero. + Return whether self is nonzero. TESTS:: From 1bbb481617b796bb83560ea8f1d3208b8be252ee Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Sat, 18 Mar 2023 21:41:31 +0100 Subject: [PATCH 222/249] more tests --- src/sage/rings/polynomial/polydict.pyx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index 10284b1137e..151fbc6170d 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -1943,8 +1943,14 @@ cdef class ETuple: TESTS: - :trac:`34000`:: - + Test segmentation faults occurring as described in :trac:`34000`:: + + sage: ETuple([0, 1, 1]).eadd_p(1, 0) + (1, 1, 1) + sage: ETuple([0, 2, 4, 3]).eadd_p(5, 0) + (5, 2, 4, 3) + sage: ETuple([0, 2]).eadd_p(5, 0) + (5, 2) sage: e = ETuple([0, 1, 0]) sage: e.eadd_p(0, 0).nonzero_positions() [1] From dfd6609d86758031cad774edeb8b078cc2cdeba3 Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Sun, 19 Mar 2023 02:01:32 +0100 Subject: [PATCH 223/249] introduce a check argument for PolyDict faster constructor --- .../rings/polynomial/multi_polynomial_element.py | 16 ++++++++-------- src/sage/rings/polynomial/polydict.pyx | 15 ++++++++++++--- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/sage/rings/polynomial/multi_polynomial_element.py b/src/sage/rings/polynomial/multi_polynomial_element.py index d66180d3cb1..d1bc8ea7cfe 100644 --- a/src/sage/rings/polynomial/multi_polynomial_element.py +++ b/src/sage/rings/polynomial/multi_polynomial_element.py @@ -845,7 +845,7 @@ def __iter__(self): ring = self.parent() one = ring.base_ring().one() for exp in self._exponents: - yield (elt[exp], MPolynomial_polydict(ring, polydict.PolyDict({exp:one}))) + yield (elt[exp], MPolynomial_polydict(ring, polydict.PolyDict({exp: one}, check=False))) def __getitem__(self, x): """ @@ -1459,7 +1459,7 @@ def monomials(self): """ ring = self.parent() one = ring.base_ring().one() - return [MPolynomial_polydict(ring, polydict.PolyDict({m:one})) + return [MPolynomial_polydict(ring, polydict.PolyDict({m: one}, check=False)) for m in self._exponents] def constant_coefficient(self): @@ -1708,9 +1708,9 @@ def lm(self): if self.is_zero(): return self R = self.parent() - f = self._MPolynomial_element__element.lcmt( R.term_order().greater_tuple ) + f = self._MPolynomial_element__element.lcmt(R.term_order().greater_tuple) one = R.base_ring().one() - self.__lm = MPolynomial_polydict(R,polydict.PolyDict({f:one})) + self.__lm = MPolynomial_polydict(R,polydict.PolyDict({f: one}, check=False)) return self.__lm def lc(self): @@ -1767,8 +1767,8 @@ def lt(self): return self R = self.parent() f = self._MPolynomial_element__element.dict() - res = self._MPolynomial_element__element.lcmt( R.term_order().greater_tuple ) - self.__lt = MPolynomial_polydict(R, polydict.PolyDict({res:f[res]})) + res = self._MPolynomial_element__element.lcmt(R.term_order().greater_tuple) + self.__lt = MPolynomial_polydict(R, polydict.PolyDict({res: f[res]}, check=False)) return self.__lt def __eq__(self, right): @@ -1881,7 +1881,7 @@ def _derivative(self, var=None): # var is not a generator; do term-by-term differentiation recursively # var may be, for example, a generator of the base ring d = dict([(e, x._derivative(var)) for (e, x) in self.dict().items()]) - d = polydict.PolyDict(d) + d = polydict.PolyDict(d, check=False) d.remove_zeros() return MPolynomial_polydict(P, d) @@ -1976,7 +1976,7 @@ def integral(self, var=None): # var may be, for example, a generator of the base ring d = {e: x.integral(var) for e, x in self.dict().items()} - d = polydict.PolyDict(d) + d = polydict.PolyDict(d, check=False) d.remove_zeros() else: # integrate w.r.t. indicated variable diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index 151fbc6170d..8ad6b3fe8eb 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -113,7 +113,7 @@ cdef class PolyDict: whose values are coefficients on which it is implicitely assumed that arithmetic operations can be performed. """ - def __init__(self, pdict, zero=None, remove_zero=None, force_int_exponents=None, force_etuples=None): + def __init__(self, pdict, zero=None, remove_zero=None, force_int_exponents=None, force_etuples=None, bint check=True): """ INPUT: @@ -128,6 +128,9 @@ cdef class PolyDict: - ``force_etuples`` -- deprecated + - ``check`` -- if set to ``False`` then assumes that the exponents are all valid ``ETuple``. In + that case the construction is a bit faster. + EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict @@ -164,13 +167,19 @@ cdef class PolyDict: deprecation(34000, 'the arguments "zero", "forced_int_exponents" and "forced_etuples" of PolyDict constructor are deprecated') self.__repn = {} + cdef bint has_only_etuple = True if isinstance(pdict, (tuple, list)): for coeff, exp in pdict: - if type(exp) is not ETuple: + if check and type(exp) is not ETuple: exp = ETuple(exp) self.__repn[exp] = coeff elif isinstance(pdict, dict): - if all(type(k) is ETuple for k in pdict): + if check: + for k in ( pdict): + if type(k) is not ETuple: + has_only_etuple = False + break + if has_only_etuple: self.__repn = ( pdict).copy() else: self.__repn = {} From 23d50f4d9a4b6da943dddee3c0ede1bb88f663fd Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Sun, 19 Mar 2023 02:01:48 +0100 Subject: [PATCH 224/249] cleaner MPolynomialRing_polydict.sum --- src/sage/rings/polynomial/multi_polynomial_ring.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/sage/rings/polynomial/multi_polynomial_ring.py b/src/sage/rings/polynomial/multi_polynomial_ring.py index 5ec05589593..b7d16e7d61b 100644 --- a/src/sage/rings/polynomial/multi_polynomial_ring.py +++ b/src/sage/rings/polynomial/multi_polynomial_ring.py @@ -911,11 +911,14 @@ def sum(self, terms): sage: sum([x*y, 2*x^2*z - 2*x*y, 1 + y + z]) (-x + 1)*y + (2*x^2 + 1)*z + 1 """ - ans = self(0) - elt = ans.element() + elt = PolyDict({}, check=False) for t in terms: elt += self(t).element() - return ans + # NOTE: here we should be using self.element_class but polynomial rings are not complient + # with categories... + from sage.rings.polynomial.multi_polynomial_element import MPolynomial_polydict + return MPolynomial_polydict(self, elt) + class MPolynomialRing_polydict_domain(IntegralDomain, MPolynomialRing_polydict): From cdaabda8ce2f2585c39db74dda6219265e40b142 Mon Sep 17 00:00:00 2001 From: Travis Scrimshaw Date: Sun, 19 Mar 2023 19:17:30 +0900 Subject: [PATCH 225/249] Making the lazy series shift truncate things, which now uses a separate stream class. --- src/sage/data_structures/stream.py | 208 ++++++++++++++++++++++++++++- src/sage/rings/lazy_series.py | 123 ++++++++++++----- 2 files changed, 295 insertions(+), 36 deletions(-) diff --git a/src/sage/data_structures/stream.py b/src/sage/data_structures/stream.py index 3fc8d2c2322..9eb26c3b4b3 100644 --- a/src/sage/data_structures/stream.py +++ b/src/sage/data_structures/stream.py @@ -225,7 +225,6 @@ def __init__(self, is_sparse, true_order): sage: g = Stream_function(lambda n: n, False, 0) sage: isinstance(g, Stream_inexact) True - """ super().__init__(true_order) self._is_sparse = is_sparse @@ -2768,7 +2767,6 @@ def order(self): """ return self._series.order() + self._shift - def __getitem__(self, n): """ Return the ``n``-th coefficient of ``self``. @@ -2842,6 +2840,212 @@ def is_nonzero(self): return self._series.is_nonzero() +class Stream_truncated(Stream_inexact): + """ + Operator for shifting a nonzero, nonexact stream that has + been shifted below its minimal valuation. + + Instances of this class share the cache with its input stream. + + INPUT: + + - ``series`` -- a :class:`Stream_inexact` + - ``shift`` -- an integer + - ``minimal_valuation`` -- an integer; this is also the approximate order + """ + def __init__(self, series, shift, minimal_valuation): + """ + Initialize ``self``. + + EXAMPLES:: + + sage: from sage.data_structures.stream import Stream_function, Stream_truncated + sage: def fun(n): return 1 if ZZ(n).is_power_of(2) else 0 + sage: s = Stream_truncated(Stream_function(fun, True, 0), -5, 0) + sage: TestSuite(s).run(skip="_test_pickling") + sage: s = Stream_truncated(Stream_function(fun, False, 0), -5, 0) + sage: TestSuite(s).run(skip="_test_pickling") + """ + assert isinstance(series, Stream_inexact) + super().__init__(series._is_sparse, False) + self._series = series + self._cache = series._cache + self._shift = shift + self._minimal_valuation = minimal_valuation + self._approximate_order = minimal_valuation + + @lazy_attribute + def _offset(self): + """ + Return the offset of a stream with a dense cache. + + EXAMPLES:: + + sage: from sage.data_structures.stream import Stream_function, Stream_truncated + sage: def fun(n): return 1 if ZZ(n).is_power_of(2) else 0 + sage: f = Stream_function(fun, False, 0) + sage: [f[i] for i in range(8)] + [0, 1, 1, 0, 1, 0, 0, 0] + sage: f._cache + [0, 1, 1, 0, 1, 0, 0, 0] + sage: s = Stream_truncated(f, -5, 0) + sage: s._offset + -5 + sage: [s[i] for i in range(10)] + [0, 0, 0, 1, 0, 0, 0, 0, 0, 0] + sage: s._cache + [0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0] + """ + # self[n] = self._cache[n-self._offset] + if self._is_sparse: + raise ValueError("_offset is only for dense streams") + return self._series._offset + self._shift + + def __getitem__(self, n): + """ + Return the ``n``-th coefficient of ``self``. + + EXAMPLES:: + + sage: from sage.data_structures.stream import Stream_function, Stream_truncated + sage: def fun(n): return 1 if ZZ(n).is_power_of(2) else 0 + sage: s = Stream_truncated(Stream_function(fun, True, 0), -5, 0) + sage: [s[i] for i in range(10)] + [0, 0, 0, 1, 0, 0, 0, 0, 0, 0] + """ + if n < self._approximate_order: + return ZZ.zero() + return self._series[n-self._shift] + + def __hash__(self): + """ + Return the hash of ``self``. + + EXAMPLES:: + + sage: from sage.data_structures.stream import Stream_function, Stream_truncated + sage: def fun(n): return 1 if ZZ(n).is_power_of(2) else 0 + sage: s = Stream_truncated(Stream_function(fun, True, 0), -5, 0) + sage: hash(s) == hash(s) + True + """ + return hash((type(self), self._series)) + + def __eq__(self, other): + """ + Test equality. + + INPUT: + + - ``other`` -- a stream of coefficients + + EXAMPLES:: + + sage: from sage.data_structures.stream import Stream_function, Stream_truncated + sage: def fun(n): return 1 if ZZ(n).is_power_of(2) else 0 + sage: f = Stream_function(fun, True, 0) + sage: sm5 = Stream_truncated(f, -5, 0) + sage: sm2 = Stream_truncated(f, -2, 0) + sage: sm2 == sm5 + False + sage: sm5 == Stream_truncated(f, -5, 0) + True + """ + # We assume that comparisons of this class are done only by elements in + # a common ring; in particular, the minimum order will be the same. + return (isinstance(other, type(self)) and self._shift == other._shift + and self._series == other._series) + + def order(self): + """ + Return the order of ``self``, which is the minimum index ``n`` such + that ``self[n]`` is nonzero. + + EXAMPLES:: + + sage: from sage.data_structures.stream import Stream_function, Stream_truncated + sage: def fun(n): return 1 if ZZ(n).is_power_of(2) else 0 + sage: s = Stream_truncated(Stream_function(fun, True, 0), -5, 0) + sage: s.order() + 3 + sage: s = Stream_truncated(Stream_function(fun, False, 0), -5, 0) + sage: s.order() + 3 + + Check that it also worked properly with the cache partially filled:: + + sage: f = Stream_function(fun, True, 0) + sage: dummy = [f[i] for i in range(10)] + sage: s = Stream_truncated(f, -5, 0) + sage: s.order() + 3 + sage: f = Stream_function(fun, False, 0) + sage: dummy = [f[i] for i in range(10)] + sage: s = Stream_truncated(f, -5, 0) + sage: s.order() + 3 + """ + if self._true_order: + return self._approximate_order + if self._is_sparse: + n = self._approximate_order + cache = self._series._cache + while True: + if n-self._shift in cache: + if cache[n-self._shift]: + self._approximate_order = n + self._true_order = True + return n + n += 1 + else: + if self[n]: + self._approximate_order = n + self._true_order = True + return n + n += 1 + return super().order() + + def is_nonzero(self): + r""" + Return ``True`` if and only if this stream is known + to be nonzero. + + EXAMPLES:: + + sage: from sage.data_structures.stream import Stream_function, Stream_truncated + sage: def fun(n): return 1 if ZZ(n).is_power_of(2) else 0 + sage: f = Stream_function(fun, False, 0) + sage: [f[i] for i in range(0, 4)] + [0, 1, 1, 0] + sage: f._cache + [0, 1, 1, 0] + sage: s = Stream_truncated(f, -5, 0) + sage: s.is_nonzero() + False + sage: [f[i] for i in range(7,10)] # updates the cache of s + [0, 1, 0] + sage: s.is_nonzero() + True + + sage: f = Stream_function(fun, True, 0) + sage: [f[i] for i in range(0, 4)] + [0, 1, 1, 0] + sage: f._cache + {0: 0, 1: 1, 2: 1, 3: 0} + sage: s = Stream_truncated(f, -5, 0) + sage: s.is_nonzero() + False + sage: [f[i] for i in range(7,10)] # updates the cache of s + [0, 1, 0] + sage: s.is_nonzero() + True + """ + if self._is_sparse: + return any(c for n, c in self._series._cache.items() if n + self._shift >= self._minimal_valuation) + start = self._approximate_order - self._offset + return any(self._series._cache[start:]) + + class Stream_derivative(Stream_inexact): """ Operator for taking derivatives of a stream. diff --git a/src/sage/rings/lazy_series.py b/src/sage/rings/lazy_series.py index 36bf440cf91..75384e98f3b 100644 --- a/src/sage/rings/lazy_series.py +++ b/src/sage/rings/lazy_series.py @@ -239,6 +239,7 @@ Stream_exact, Stream_uninitialized, Stream_shift, + Stream_truncated, Stream_function, Stream_derivative, Stream_dirichlet_convolve, @@ -634,7 +635,9 @@ def shift(self, n, use_fraction_field=False): Return ``self`` with the indices shifted by ``n``. For example, a Laurent series is multiplied by the power `z^n`, - where `z` is the variable of ``self``. + where `z` is the variable of ``self``. For series with a fixed + minimal valuation (e.g., power series), this removes any terms + that are less than the minimal valuation. INPUT: @@ -664,6 +667,38 @@ def shift(self, n, use_fraction_field=False): sage: f.shift(3) 1/(5^t) + 2/6^t + Examples with power series (where the minimal valuation is `0`):: + + sage: L. = LazyPowerSeriesRing(QQ) + sage: f = 1 / (1 - x) + sage: f.shift(2) + x^2 + x^3 + x^4 + O(x^5) + sage: g = f.shift(-1); g + 1 + x + x^2 + O(x^3) + sage: f == g + True + sage: g[-1] + 0 + sage: h = L(lambda n: 1) + sage: LazyPowerSeriesRing.options.halting_precision(20) # verify up to degree 20 + sage: f == h + True + sage: h == f + True + sage: h.shift(-1) == h + True + sage: LazyPowerSeriesRing.options._reset() + + sage: fp = L([3,3,3], constant=1) + sage: fp.shift(2) + 3*x^2 + 3*x^3 + 3*x^4 + x^5 + x^6 + x^7 + O(x^8) + sage: fp.shift(-2) + 3 + x + x^2 + x^3 + O(x^4) + sage: fp.shift(-7) + 1 + x + x^2 + O(x^3) + sage: fp.shift(-5) == g + True + We compare the shifting with the ``use_fraction_field`` option:: sage: L. = LazyPowerSeriesRing(QQ) @@ -674,32 +709,19 @@ def shift(self, n, use_fraction_field=False): sage: f.shift(-3, use_fraction_field=True) x^-3 + 2*x^-2 + 3*x^-1 + 4 - .. WARNING:: + An example with a more general function:: - When working with a power series not known to be eventually - constant, if one shifts below the minimal valuation and then - shifts back, this remembers the terms that would have been - truncated. That is, these entries are not replaced by `0`:: - - sage: fun = lambda n: 1 if ZZ(n).is_power_of(2) else 0 - sage: L. = LazyPowerSeriesRing(QQ) - sage: f = L(fun); f - x + x^2 + x^4 + O(x^7) - sage: fs = f.shift(-4) - sage: fs - 1 + x^4 + O(x^7) - sage: fs.shift(4) - x + x^2 + x^4 + O(x^7) - - This is slightly different than streams that are known to - be eventually constant:: - - sage: f = L([1,2,3,4], constant=7); f - 1 + 2*x + 3*x^2 + 4*x^3 + 7*x^4 + 7*x^5 + 7*x^6 + O(x^7) - sage: fs = f.shift(-4); fs - 7 + 7*x + 7*x^2 + O(x^3) - sage: fs.shift(4) - 7*x^4 + 7*x^5 + 7*x^6 + O(x^7) + sage: fun = lambda n: 1 if ZZ(n).is_power_of(2) else 0 + sage: L. = LazyPowerSeriesRing(QQ) + sage: f = L(fun); f + x + x^2 + x^4 + O(x^7) + sage: fs = f.shift(-4) + sage: fs + 1 + x^4 + O(x^7) + sage: fs.shift(4) + x^4 + x^8 + O(x^11) + sage: f.shift(-4, use_fraction_field=True) + x^-3 + x^-2 + 1 + O(x^3) TESTS:: @@ -730,6 +752,34 @@ def shift(self, n, use_fraction_field=False): sage: f = L([1,2,3,4]) sage: f.shift(-10) == L.zero() True + + Check the truncation works correctly:: + + sage: f = L(lambda n: 1 if ZZ(n).is_power_of(2) else 0) + sage: f.valuation() + 1 + sage: f._coeff_stream._true_order + True + sage: g = f.shift(-5) + sage: g + x^3 + O(x^7) + sage: g._coeff_stream._approximate_order + 0 + sage: g._coeff_stream._true_order + False + sage: g.valuation() + 3 + + sage: f = L([1,2,3,4], constant=7) + sage: fs = f.shift(-4) + sage: fs = f.shift(-4); fs + 7 + 7*x + 7*x^2 + O(x^3) + sage: fs.shift(4) + 7*x^4 + 7*x^5 + 7*x^6 + O(x^7) + + sage: f = L([1,2,3,4], constant=0) + sage: type(f.shift(-5)._coeff_stream) + """ P = self.parent() if P._arity != 1: @@ -746,9 +796,11 @@ def shift(self, n, use_fraction_field=False): if isinstance(self._coeff_stream, Stream_shift): n += self._coeff_stream._shift if n: - coeff_stream = Stream_shift(self._coeff_stream._series, n) - if P._minimal_valuation is not None: - coeff_stream._approximate_order = max(coeff_stream._approximate_order, P._minimal_valuation) + if (P._minimal_valuation is not None + and P._minimal_valuation > self._coeff_stream._approximate_order + n): + coeff_stream = Stream_truncated(self._coeff_stream._series, n, P._minimal_valuation) + else: + coeff_stream = Stream_shift(self._coeff_stream._series, n) else: coeff_stream = self._coeff_stream._series elif isinstance(self._coeff_stream, Stream_exact): @@ -756,18 +808,21 @@ def shift(self, n, use_fraction_field=False): degree = self._coeff_stream._degree + n valuation = self._coeff_stream._approximate_order + n if P._minimal_valuation is not None and P._minimal_valuation > valuation: + # We need to truncate some terms init_coeff = init_coeff[P._minimal_valuation-valuation:] - valuation = P._minimal_valuation if not init_coeff and not self._coeff_stream._constant: return P.zero() + degree = max(degree, P._minimal_valuation) + valuation = P._minimal_valuation coeff_stream = Stream_exact(init_coeff, constant=self._coeff_stream._constant, order=valuation, degree=degree) else: - coeff_stream = Stream_shift(self._coeff_stream, n) - - if P._minimal_valuation is not None: - coeff_stream._approximate_order = max(coeff_stream._approximate_order, P._minimal_valuation) + if (P._minimal_valuation is not None + and P._minimal_valuation > self._coeff_stream._approximate_order + n): + coeff_stream = Stream_truncated(self._coeff_stream, n, P._minimal_valuation) + else: + coeff_stream = Stream_shift(self._coeff_stream, n) return P.element_class(P, coeff_stream) From f65a16cfa699bd9a3b8d0828c88a9dddf3948164 Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Sun, 19 Mar 2023 12:40:03 +0100 Subject: [PATCH 226/249] More optimization and cleaning - make all PolyDict methods but two cpdef and doctested - implement binary search in ETuple --- src/sage/rings/polynomial/hilbert.pyx | 5 +- src/sage/rings/polynomial/polydict.pxd | 14 +- src/sage/rings/polynomial/polydict.pyx | 176 +++++++++++++++---------- 3 files changed, 120 insertions(+), 75 deletions(-) diff --git a/src/sage/rings/polynomial/hilbert.pyx b/src/sage/rings/polynomial/hilbert.pyx index 0c49e1655c2..01cb166b7fb 100644 --- a/src/sage/rings/polynomial/hilbert.pyx +++ b/src/sage/rings/polynomial/hilbert.pyx @@ -133,9 +133,8 @@ cdef list quotient_by_var(list L, size_t index): cdef list result = L[:len(L)] # creates a copy cdef size_t i for i in range(len(L)): - m_j = (PyList_GET_ITEM(L,i)).divide_by_var(index) - if m_j is not None: - result.append(m_j) + if ( PyList_GET_ITEM(L, i)).get_exp(index): + result.append(( PyList_GET_ITEM(L, i)).divide_by_var(index)) return interred(result) cdef ETuple sum_from_list(list L, size_t s, size_t l): diff --git a/src/sage/rings/polynomial/polydict.pxd b/src/sage/rings/polynomial/polydict.pxd index 189529c5af2..c7aaf6a2fe3 100644 --- a/src/sage/rings/polynomial/polydict.pxd +++ b/src/sage/rings/polynomial/polydict.pxd @@ -10,6 +10,10 @@ cdef class ETuple: cdef size_t _nonzero cdef int *_data + cdef size_t get_position(self, size_t i, size_t start, size_t end) + cdef ETuple _new(self) + cdef int get_exp(self, size_t i) + cpdef int unweighted_degree(self) except * cpdef int weighted_degree(self, tuple w) except * cpdef int unweighted_quotient_degree(self, ETuple other) except * @@ -22,19 +26,17 @@ cdef class ETuple: cpdef ETuple emax(self, ETuple other) cpdef ETuple eadd_p(self, int other, size_t pos) cpdef ETuple eadd_scaled(self, ETuple other, int scalar) - cpdef int dotprod(self, ETuple other) + cpdef int dotprod(self, ETuple other) except * cpdef ETuple escalar_div(self, int n) - cdef ETuple divide_by_gcd(self, ETuple other) - cdef ETuple divide_by_var(self, size_t index) - cdef bint divides(self, ETuple other) + cpdef ETuple divide_by_gcd(self, ETuple other) + cpdef ETuple divide_by_var(self, size_t pos) + cpdef bint divides(self, ETuple other) cpdef bint is_constant(self) cpdef bint is_multiple_of(self, int n) cpdef list nonzero_positions(self, bint sort=*) cpdef common_nonzero_positions(self, ETuple other, bint sort=*) cpdef list nonzero_values(self, bint sort=*) cpdef ETuple reversed(self) - cdef ETuple _new(self) - cdef int get_exp(self, size_t i) cpdef int gen_index(PolyDict x) cpdef ETuple monomial_exponent(PolyDict p) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index 8ad6b3fe8eb..63683dce66f 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -1538,19 +1538,38 @@ cdef class ETuple: else: return self.get_exp(i) + cdef size_t get_position(self, size_t i, size_t start, size_t end): + r""" + Return where to insert ``i`` in the data between ``start`` and ``end``. + """ + if end <= start: + return start + cdef size_t left = start + cdef size_t right = end - 1 + cdef size_t mid + if self._data[2 * left] >= i: + return left + if self._data[2 * right] < i: + return end + if self._data[2 * right] == i: + return right + while right - left > 1: + mid = (left + right) / 2 + if self._data[2 * mid] == i: + return mid + if self._data[2 * mid] > i: + right = mid + else: + left = mid + return right + cdef int get_exp(self, size_t i): """ Return the exponent for the ``i``-th variable. """ - # TODO: implement binary search - cdef size_t ind = 0 - # NOTE: cython does optimize range(a) and range(a, b) but not range(a, b, c) - for ind in range(self._nonzero): - if self._data[2 * ind] == i: - return self._data[2 * ind + 1] - elif self._data[2 * ind] > i: - # the indices are sorted in _data, we are beyond, so quit - return 0 + cdef size_t ind = self.get_position(i, 0, self._nonzero) + if ind != self._nonzero and self._data[2 * ind] == i: + return self._data[2 * ind + 1] return 0 def __hash__(self): @@ -1899,8 +1918,8 @@ cdef class ETuple: OverflowError: exponent overflow (...) # 64-bit OverflowError: Python int too large to convert to C unsigned long # 32-bit """ - if self._length!=other._length: - raise ArithmeticError + if self._length != other._length: + raise ArithmeticError('ETuple of different lengths') cdef size_t ind1 = 0 cdef size_t ind2 = 0 @@ -2026,7 +2045,7 @@ cdef class ETuple: (1, 3, 5) """ if self._length != other._length: - raise ArithmeticError + raise ArithmeticError('ETuple of different lengths') cdef size_t ind1 = 0 cdef size_t ind2 = 0 @@ -2202,7 +2221,7 @@ cdef class ETuple: result._nonzero += 1 return result - cpdef int dotprod(self, ETuple other): + cpdef int dotprod(self, ETuple other) except *: """ Return the dot product of this tuple by ``other``. @@ -2217,7 +2236,6 @@ cdef class ETuple: sage: f = ETuple([0,-2,1]) sage: e.dotprod(f) -3 - """ if self._length != other._length: raise ArithmeticError @@ -2273,13 +2291,15 @@ cdef class ETuple: result._nonzero += 1 return result - cdef ETuple divide_by_gcd(self, ETuple other): + cpdef ETuple divide_by_gcd(self, ETuple other): """ Return ``self / gcd(self, other)``. The entries of the result are the maximum of 0 and the difference of the corresponding entries of ``self`` and ``other``. """ + if self._length != other._length: + raise ArithmeticError('ETuple of different lengths') cdef size_t ind1 = 0 # both ind1 and ind2 will be increased in 2-steps. cdef size_t ind2 = 0 cdef int exponent @@ -2314,68 +2334,92 @@ cdef class ETuple: ind1 += 2 return result - cdef ETuple divide_by_var(self, size_t index): + cpdef ETuple divide_by_var(self, size_t pos): """ - Return division of ``self`` by ``var(index)`` or ``None``. + Return division of ``self`` by the variable with index ``pos``. - If ``self[Index] == 0`` then None is returned. Otherwise, an - :class:`~sage.rings.polynomial.polydict.ETuple` is returned - that is zero in position ``index`` and coincides with ``self`` - in the other positions. + If ``self[pos] == 0`` then a ``ArithmeticError`` is raised. Otherwise, + an :class:`~sage.rings.polynomial.polydict.ETuple` is returned that is + zero in position ``pos`` and coincides with ``self`` in the other + positions. + + EXAMPLES:: + + sage: from sage.rings.polynomial.polydict import ETuple + sage: e = ETuple([1, 2, 0, 1]) + sage: e.divide_by_var(0) + (0, 2, 0, 1) + sage: e.divide_by_var(1) + (1, 1, 0, 1) + sage: e.divide_by_var(3) + (1, 2, 0, 0) + sage: e.divide_by_var(2) + Traceback (most recent call last): + ... + ArithmeticError: not divisible by this variable """ - cdef size_t i, j cdef int exp1 cdef ETuple result - # NOTE: cython does optimize range(a) and range(a, b) but not range(a, b, c) - for i in range(self._nonzero): - if self._data[i] == index: - result = self._new() - result._data = sig_malloc(sizeof(int) * self._nonzero * 2) - exp1 = self._data[2 * i + 1] - if exp1 > 1: - # division doesn't change the number of nonzero positions - result._nonzero = self._nonzero - for j in range(self._nonzero): - result._data[2 * j] = self._data[2 * j] - result._data[2 * j + 1] = self._data[2 * j + 1] - result._data[2 * i + 1] = exp1 - 1 - else: - # var(index) disappears from self - result._nonzero = self._nonzero-1 - for j in range(i): - result._data[2 * j] = self._data[2 * j] - result._data[2 * j + 1] = self._data[2 * j + 1] - for j in range(i + 1, self._nonzero): - result._data[2 * j - 2] = self._data[2 * j] - result._data[2 * j - 1] = self._data[2 * j + 1] - return result - return None + cdef size_t ind + + ind = self.get_position(pos, 0, self._nonzero) + if ind == self._nonzero or self._data[2 * ind] != pos: + raise ArithmeticError('not divisible by this variable') + result = self._new() + result._data = sig_malloc(sizeof(int) * 2 * self._nonzero) + exp1 = self._data[2 * ind + 1] + if exp1 > 1: + # division doesn't change the number of nonzero positions + result._nonzero = self._nonzero + memcpy(result._data, self._data, sizeof(int) * 2 * self._nonzero) + result._data[2 * ind + 1] = exp1 - 1 + else: + # var(pos) disappears from self + result._nonzero = self._nonzero-1 + memcpy(result._data, self._data, sizeof(int) * 2 * ind) + if ind + 1 < self._nonzero: + memcpy(result._data + 2 * ind, self._data + 2 * (ind + 1), sizeof(int) * 2 * (self._nonzero - ind - 1)) + return result - cdef bint divides(self, ETuple other): + cpdef bint divides(self, ETuple other): """ - Whether ``self`` divides ``other``, i.e., no entry of ``self`` + Return whether ``self`` divides ``other``, i.e., no entry of ``self`` exceeds that of ``other``. + + EXAMPLES:: + + sage: from sage.rings.polynomial.polydict import ETuple + sage: ETuple([1, 1, 0, 1, 0]).divides(ETuple([2, 2, 2, 2, 2])) + True + sage: ETuple([0, 3, 0, 1, 0]).divides(ETuple([2, 2, 2, 2, 2])) + False + sage: ETuple([0, 3, 0, 1, 0]).divides(ETuple([0, 3, 2, 2, 2])) + True + sage: ETuple([0, 0, 0, 0, 0]).divides(ETuple([2, 2, 2, 2, 2])) + True + + sage: ETuple({104: 18, 256: 25, 314:78}, length=400r).divides(ETuple({104: 19, 105: 20, 106: 21}, length=400r)) + False + sage: ETuple({104: 18, 256: 25, 314:78}, length=400r).divides(ETuple({104: 19, 105: 20, 106: 21, 255: 2, 256: 25, 312: 5, 314: 79, 315: 28}, length=400r)) + True """ - cdef size_t ind1 # will be increased in 2-steps - cdef size_t ind2 = 0 # will be increased in 2-steps - cdef int pos1, exp1 - if self._nonzero > other._nonzero: - # Trivially self cannot divide other - return False - cdef size_t othernz2 = 2 * other._nonzero - # NOTE: cython does optimize range(a) and range(a, b) but not range(a, b, c) - for ind1 in range(self._nonzero): + cdef size_t ind1 = 0 + cdef size_t ind2 = 0 + cdef int pos1 + + if self._length != other._length: + raise ArithmeticError('ETuple of different length') + + while ind1 < self._nonzero: + if self._nonzero - ind1 > other._nonzero - ind2: + return False pos1 = self._data[2 * ind1] - exp1 = self._data[2 * ind1 + 1] - # Because of the above trivial test, other._nonzero>0. - # So, other._data[ind2] initially makes sense. - while other._data[ind2] < pos1: - ind2 += 2 - if ind2 >= othernz2: - return False - if other._data[ind2] > pos1 or other._data[ind2 + 1] < exp1: - # Either other has no exponent at position pos1 or the exponent is less than in self + ind2 = other.get_position(pos1, ind2, other._nonzero) + if ind2 == other._nonzero or other._data[2 * ind2] != pos1 or other._data[2 * ind2 + 1] < self._data[2 * ind1 + 1]: return False + ind1 += 1 + ind2 += 1 + return True cpdef bint is_constant(self): From a85d7174978193db6f8e9186cfbb9ec765aa903f Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Sun, 19 Mar 2023 16:20:12 +0100 Subject: [PATCH 227/249] declare except * for errors --- src/sage/rings/polynomial/polydict.pxd | 4 ++-- src/sage/rings/polynomial/polydict.pyx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pxd b/src/sage/rings/polynomial/polydict.pxd index c7aaf6a2fe3..9940cf546e7 100644 --- a/src/sage/rings/polynomial/polydict.pxd +++ b/src/sage/rings/polynomial/polydict.pxd @@ -31,8 +31,8 @@ cdef class ETuple: cpdef ETuple divide_by_gcd(self, ETuple other) cpdef ETuple divide_by_var(self, size_t pos) cpdef bint divides(self, ETuple other) - cpdef bint is_constant(self) - cpdef bint is_multiple_of(self, int n) + cpdef bint is_constant(self) except * + cpdef bint is_multiple_of(self, int n) except * cpdef list nonzero_positions(self, bint sort=*) cpdef common_nonzero_positions(self, ETuple other, bint sort=*) cpdef list nonzero_values(self, bint sort=*) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index 63683dce66f..0022c69cb00 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -2381,7 +2381,7 @@ cdef class ETuple: memcpy(result._data + 2 * ind, self._data + 2 * (ind + 1), sizeof(int) * 2 * (self._nonzero - ind - 1)) return result - cpdef bint divides(self, ETuple other): + cpdef bint divides(self, ETuple other) except *: """ Return whether ``self`` divides ``other``, i.e., no entry of ``self`` exceeds that of ``other``. @@ -2438,7 +2438,7 @@ cdef class ETuple: """ return self._nonzero == 0 - cpdef bint is_multiple_of(self, int n): + cpdef bint is_multiple_of(self, int n) except *: r""" Test whether each entry is a multiple of ``n``. From 563b77ce895cbabd273f089932e15f87bbeba5b7 Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Sun, 19 Mar 2023 16:22:18 +0100 Subject: [PATCH 228/249] more flexible PolyDict.remove_zeros and fix PolyDict.__mul__ --- src/sage/rings/polynomial/polydict.pxd | 2 +- src/sage/rings/polynomial/polydict.pyx | 88 +++++++++++++++++++------- 2 files changed, 67 insertions(+), 23 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pxd b/src/sage/rings/polynomial/polydict.pxd index 9940cf546e7..9885e0ae8ac 100644 --- a/src/sage/rings/polynomial/polydict.pxd +++ b/src/sage/rings/polynomial/polydict.pxd @@ -2,7 +2,7 @@ cdef class PolyDict: cdef dict __repn cdef PolyDict _new(self, dict pdict) - cpdef remove_zeros(self) + cpdef remove_zeros(self, zero_test=*) cdef class ETuple: diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index 0022c69cb00..b9bd10b0cc6 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -196,10 +196,19 @@ cdef class PolyDict: if remove_zero: self.remove_zeros() - cpdef remove_zeros(self): + cdef PolyDict _new(self, dict pdict): + cdef PolyDict ans = PolyDict.__new__(PolyDict) + ans.__repn = pdict + return ans + + cpdef remove_zeros(self, zero_test=None): r""" Remove the entries with zero coefficients. + INPUT: + + - ``zero_test`` -- optional function that performs test to zero of a coefficient + EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict @@ -209,11 +218,36 @@ cdef class PolyDict: sage: f.remove_zeros() sage: f PolyDict with representation {} + + sage: R. = PowerSeriesRing(QQ) + sage: f = PolyDict({(1, 1): O(t), (1, 0): R.zero()}) + sage: f.remove_zeros(lambda s: s.is_zero() and s.prec() is Infinity) + sage: f + PolyDict with representation {(1, 1): O(t^1)} """ - if not all(self.__repn.values()): + if not self.__repn: + return + cdef bint has_zero_coefficient = False + if zero_test is None: + for coeff in self.__repn.values(): + if not coeff: + has_zero_coefficient = True + break + if not has_zero_coefficient: + return for k in list(self.__repn): if not self.__repn[k]: del self.__repn[k] + else: + for coeff in self.__repn.values(): + if zero_test(coeff): + has_zero_coefficient = True + break + if not has_zero_coefficient: + return + for k in list(self.__repn): + if zero_test(self.__repn[k]): + del self.__repn[k] def coerce_coefficients(self, Parent A): r""" @@ -232,11 +266,6 @@ cdef class PolyDict: for k, v in self.__repn.items(): self.__repn[k] = A.coerce(v) - cdef PolyDict _new(self, dict pdict): - cdef PolyDict ans = PolyDict.__new__(PolyDict) - ans.__repn = pdict - return ans - def __hash__(self): """ Return the hash. @@ -966,31 +995,46 @@ cdef class PolyDict: """ Multiply two PolyDict's in the same number of variables. + The algorithm do not test whether a product of coefficients is zero + or whether a final coefficient is zero because there is no reliable way + to do so in general (eg power series ring or p-adic rings). + EXAMPLES: - We multiply two polynomials in 2 variables:: + + Multiplication of polynomials in 2 variables with rational coefficients:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) - sage: g = PolyDict({(1,5):-3, (2,3):-2, (1,1):3}) - sage: f*g + sage: f = PolyDict({(2, 3): 2, (1, 2): 3, (2, 1): 4}) + sage: g = PolyDict({(1, 5): -3, (2, 3): -2, (1, 1): 3}) + sage: f * g PolyDict with representation {(2, 3): 9, (2, 7): -9, (3, 2): 12, (3, 4): 6, (3, 5): -6, (3, 6): -12, (3, 8): -6, (4, 4): -8, (4, 6): -4} + + Multiplication of polynomials in 2 variables with power series coefficients:: + + sage: R. = PowerSeriesRing(QQ) + sage: f = PolyDict({(1, 0): 1 + O(t), (0, 1): 1 + O(t^2)}) + sage: g = PolyDict({(1, 0): 1, (0, 1): -1}) + sage: f * g + PolyDict with representation {(0, 2): -1 + O(t^2), (1, 1): O(t^1), (2, 0): 1 + O(t)} + sage: f = PolyDict({(1, 0): O(t), (0, 1): O(t)}) + sage: g = PolyDict({(1, 0): 1, (0, 1): O(t)}) + sage: f * g + PolyDict with representation {(0, 2): O(t^2), (1, 1): O(t^1), (2, 0): O(t^1)} """ cdef PyObject *cc - cdef dict newpoly = {} - if not self.__repn: # product is zero anyways - return self - elif not right.__repn: - return right + cdef dict newpoly + if not self.__repn or not right.__repn: + return self._new({}) + newpoly = {} for e0, c0 in self.__repn.items(): for e1, c1 in right.__repn.items(): e = ( e0).eadd( e1) c = c0 * c1 - if c: - cc = PyDict_GetItem(newpoly, e) - if cc == 0: - PyDict_SetItem(newpoly, e, c) - else: - PyDict_SetItem(newpoly, e, cc+c) + cc = PyDict_GetItem(newpoly, e) + if cc == 0: + PyDict_SetItem(newpoly, e, c) + else: + PyDict_SetItem(newpoly, e, cc + c) return self._new(newpoly) def scalar_rmult(self, s): From e7e79fcb5505a1fa7096ab5776182886a59c8817 Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Sun, 19 Mar 2023 16:30:12 +0100 Subject: [PATCH 229/249] fix declarations in poldict.pxd --- src/sage/rings/polynomial/polydict.pxd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pxd b/src/sage/rings/polynomial/polydict.pxd index 9885e0ae8ac..6bc1901bd7e 100644 --- a/src/sage/rings/polynomial/polydict.pxd +++ b/src/sage/rings/polynomial/polydict.pxd @@ -30,8 +30,8 @@ cdef class ETuple: cpdef ETuple escalar_div(self, int n) cpdef ETuple divide_by_gcd(self, ETuple other) cpdef ETuple divide_by_var(self, size_t pos) - cpdef bint divides(self, ETuple other) - cpdef bint is_constant(self) except * + cpdef bint divides(self, ETuple other) except * + cpdef bint is_constant(self) cpdef bint is_multiple_of(self, int n) except * cpdef list nonzero_positions(self, bint sort=*) cpdef common_nonzero_positions(self, ETuple other, bint sort=*) From 9d38b947200bd54cff6dd939724ee6d727363059 Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Sun, 19 Mar 2023 16:43:47 +0100 Subject: [PATCH 230/249] implement apply_map and deprecate coerce_coefficients --- src/sage/rings/polynomial/polydict.pyx | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index b9bd10b0cc6..6efdaf63aab 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -249,7 +249,22 @@ cdef class PolyDict: if zero_test(self.__repn[k]): del self.__repn[k] - def coerce_coefficients(self, Parent A): + def apply_map(self, f): + r""" + Apply the map ``f`` on the coefficients (inplace). + + EXAMPLES:: + + sage: from sage.rings.polynomial.polydict import PolyDict + sage: f = PolyDict({(1, 0): 1, (1, 1): -2}) + sage: f.apply_map(lambda x: x^2) + sage: f + PolyDict with representation {(1, 0): 1, (1, 1): 4} + """ + for k, v in self.__repn.items(): + self.__repn[k] = f(v) + + def coerce_coefficients(self, A): r""" Coerce the coefficients in the parent ``A`` @@ -260,11 +275,16 @@ cdef class PolyDict: sage: f PolyDict with representation {(2, 3): 0} sage: f.coerce_coefficients(QQ) + doctest:warning + ... + DeprecationWarning: coerce_cefficients is deprecated; use apply_map instead + See https://github.com/sagemath/sage/issues/34000 for details. sage: f PolyDict with representation {(2, 3): 0} """ - for k, v in self.__repn.items(): - self.__repn[k] = A.coerce(v) + from sage.misc.superseded import deprecation + deprecation(34000, 'coerce_cefficients is deprecated; use apply_map instead') + self.apply_map(A.coerce) def __hash__(self): """ From b47c9821a01dffac1fae86439fb3e9151e133731 Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Sun, 19 Mar 2023 16:58:00 +0100 Subject: [PATCH 231/249] remove unused imports --- src/sage/rings/polynomial/polydict.pyx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index 6efdaf63aab..62931328f6f 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -45,15 +45,11 @@ from cpython.object cimport (Py_EQ, Py_NE, Py_LT, Py_LE, Py_GT, Py_GE) from cysignals.memory cimport sig_malloc, sig_free from sage.structure.richcmp cimport rich_to_bool -from sage.structure.parent cimport Parent - -import copy from functools import reduce from pprint import pformat from sage.arith.power import generic_power -from sage.misc.misc import cputime from sage.misc.latex import latex From db9aed354c3bb0962dfad8648085340154ea6894 Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Sun, 19 Mar 2023 16:58:11 +0100 Subject: [PATCH 232/249] ultimate doc cleaning --- src/sage/rings/polynomial/polydict.pyx | 233 ++++++++++++------------- 1 file changed, 113 insertions(+), 120 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index 62931328f6f..6c54d546b20 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -1,23 +1,15 @@ """ -PolyDict data structure for generic multivariate polynomial rings +Generic data structures for multivariate polynomials -This module provides an implementation of a generic data structure and the -underlying arithmetic for multi-variate polynomial rings. It is based on -Python dictionaries. - -This class is not meant for end users, but instead for implementing -multivariate polynomial rings over a completely general base. It does -not do strong type checking or have parents, etc. For speed, it has been -implemented in Cython. - -The functions in this file use the 'dictionary representation' of multivariate -polynomials +This module provides an implementation of a generic data structure +:class:`PolyDict` and the underlying arithmetic for multi-variate polynomial +rings. It uses a sparse representation of polynomials encoded as a Python +dictionary where keys are exponents and values coefficients. ``{(e1,...,er):c1,...} <-> c1*x1^e1*...*xr^er+...``, -which we call a polydict. The exponent tuple ``(e1,...,er)`` in this -representation is an instance of the class :class:`ETuple`. The value -corresponding to a given exponent is the corresponding coefficient. +The exponent ``(e1,...,er)`` in this representation is an instance of the class +:class:`ETuple`. AUTHORS: @@ -289,9 +281,9 @@ cdef class PolyDict: EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: PD1 = PolyDict({(2,3):0, (1,2):3, (2,1):4}) - sage: PD2 = PolyDict({(2,3):0, (1,2):3, (2,1):4}) - sage: PD3 = PolyDict({(2,3):1, (1,2):3, (2,1):4}) + sage: PD1 = PolyDict({(2, 3): 0, (1, 2): 3, (2, 1): 4}) + sage: PD2 = PolyDict({(2, 3): 0, (1, 2): 3, (2, 1): 4}) + sage: PD3 = PolyDict({(2, 3): 1, (1, 2): 3, (2, 1): 4}) sage: hash(PD1) == hash(PD2) True sage: hash(PD1) == hash(PD3) @@ -306,7 +298,7 @@ cdef class PolyDict: EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: PD1 = PolyDict({(2,3):0, (1,2):3, (2,1):4}) + sage: PD1 = PolyDict({(2, 3): 0, (1, 2): 3, (2, 1): 4}) sage: bool(PD1) True """ @@ -319,7 +311,7 @@ cdef class PolyDict: EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: PD1 = PolyDict({(2,3):0, (1,2):3, (2,1):4}) + sage: PD1 = PolyDict({(2, 3): 0, (1, 2): 3, (2, 1): 4}) sage: len(PD1) 3 """ @@ -432,7 +424,7 @@ cdef class PolyDict: EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: f = PolyDict({(2,3): 2, (1,2): 3, (2,1): 4}) + sage: f = PolyDict({(2, 3): 2, (1, 2): 3, (2, 1): 4}) sage: sorted(f.list()) [[2, [2, 3]], [3, [1, 2]], [4, [2, 1]]] """ @@ -445,7 +437,7 @@ cdef class PolyDict: EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) + sage: f = PolyDict({(2, 3): 2, (1, 2): 3, (2, 1): 4}) sage: f.dict() {(1, 2): 3, (2, 1): 4, (2, 3): 2} """ @@ -458,7 +450,7 @@ cdef class PolyDict: EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) + sage: f = PolyDict({(2, 3): 2, (1, 2): 3, (2, 1): 4}) sage: sorted(f.coefficients()) [2, 3, 4] """ @@ -471,7 +463,7 @@ cdef class PolyDict: EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) + sage: f = PolyDict({(2, 3): 2, (1, 2): 3, (2, 1): 4}) sage: sorted(f.exponents()) [(1, 2), (2, 1), (2, 3)] """ @@ -551,7 +543,7 @@ cdef class PolyDict: EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) + sage: f = PolyDict({(2, 3): 2, (1, 2): 3, (2, 1): 4}) sage: f.total_degree() 5 sage: f.total_degree((3, 1)) @@ -572,7 +564,7 @@ cdef class PolyDict: INPUT: - a PolyDict with a single key + - ``mon`` -- a PolyDict with a single key EXAMPLES:: @@ -605,11 +597,11 @@ cdef class PolyDict: EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) - sage: f.polynomial_coefficient([2,None]) + sage: f = PolyDict({(2, 3): 2, (1, 2): 3, (2, 1): 4}) + sage: f.polynomial_coefficient([2, None]) PolyDict with representation {(0, 1): 4, (0, 3): 2} - sage: f = PolyDict({(0,3):2, (0,2):3, (2,1):4}) - sage: f.polynomial_coefficient([0,None]) + sage: f = PolyDict({(0, 3): 2, (0, 2): 3, (2, 1): 4}) + sage: f.polynomial_coefficient([0, None]) PolyDict with representation {(0, 2): 3, (0, 3): 2} """ nz = [] @@ -688,10 +680,10 @@ cdef class PolyDict: EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) + sage: f = PolyDict({(2, 3): 2, (1, 2): 3, (2, 1): 4}) sage: f.is_constant() False - sage: g = PolyDict({(0,0):2}) + sage: g = PolyDict({(0, 0): 2}) sage: g.is_constant() True sage: h = PolyDict({}) @@ -751,7 +743,7 @@ cdef class PolyDict: EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) + sage: f = PolyDict({(2, 3): 2, (1, 2): 3, (2, 1): 4}) sage: f.latex(['a', 'WW']) '2 a^{2} WW^{3} + 4 a^{2} WW + 3 a WW^{2}' @@ -857,7 +849,7 @@ cdef class PolyDict: We make sure that intervals are correctly represented. :: - sage: f = PolyDict({(2,3):RIF(1/2,3/2), (1,2):RIF(-1,1)}) + sage: f = PolyDict({(2, 3): RIF(1/2,3/2), (1, 2): RIF(-1,1)}) sage: f.poly_repr(['x', 'y']) '1.?*x^2*y^3 + 0.?*x*y^2' @@ -944,8 +936,8 @@ cdef class PolyDict: EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) - sage: g = PolyDict({(1,5):-3, (2,3):-2, (1,1):3}) + sage: f = PolyDict({(2, 3): 2, (1, 2): 3, (2, 1): 4}) + sage: g = PolyDict({(1, 5): -3, (2, 3): -2, (1, 1): 3}) sage: f += g sage: f PolyDict with representation {(1, 1): 3, (1, 2): 3, (1, 5): -3, (2, 1): 4, (2, 3): 0} @@ -968,7 +960,7 @@ cdef class PolyDict: TESTS:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: -PolyDict({(2,3):2, (1,2):3, (2,1):4}) + sage: -PolyDict({(2, 3): 2, (1, 2): 3, (2, 1): 4}) PolyDict with representation {(1, 2): -3, (2, 1): -4, (2, 3): -2} """ cdef dict D = self.__repn.copy() @@ -985,8 +977,8 @@ cdef class PolyDict: We add two polynomials in 2 variables:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) - sage: g = PolyDict({(1,5):-3, (2,3):-2, (1,1):3}) + sage: f = PolyDict({(2, 3): 2, (1, 2): 3, (2, 1): 4}) + sage: g = PolyDict({(1, 5): -3, (2, 3): -2, (1, 1): 3}) sage: f + g PolyDict with representation {(1, 1): 3, (1, 2): 3, (1, 5): -3, (2, 1): 4, (2, 3): 0} @@ -1055,16 +1047,16 @@ cdef class PolyDict: def scalar_rmult(self, s): """ - Right Scalar Multiplication + Return the right scalar multiplication of ``self`` by ``s``. EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict sage: x, y = FreeMonoid(2, 'x, y').gens() # a strange object to live in a polydict, but non-commutative! - sage: f = PolyDict({(2,3):x}) + sage: f = PolyDict({(2, 3): x}) sage: f.scalar_rmult(y) PolyDict with representation {(2, 3): x*y} - sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) + sage: f = PolyDict({(2,3):2, (1, 2): 3, (2, 1): 4}) sage: f.scalar_rmult(-2) PolyDict with representation {(1, 2): -6, (2, 1): -8, (2, 3): -4} sage: f.scalar_rmult(RIF(-1,1)) @@ -1077,7 +1069,7 @@ cdef class PolyDict: def scalar_lmult(self, s): """ - Left Scalar Multiplication + Return the left scalar multiplication of ``self`` by ``s``. EXAMPLES:: @@ -1099,8 +1091,8 @@ cdef class PolyDict: def term_lmult(self, exponent, s): """ - Return this element multiplied by ``s`` on the left - and with exponents shifted by ``exponent``. + Return this element multiplied by ``s`` on the left and with exponents + shifted by ``exponent``. INPUT: @@ -1128,8 +1120,8 @@ cdef class PolyDict: def term_rmult(self, exponent, s): """ - Return this element multiplied by ``s`` on the right - and with exponents shifted by ``exponent``. + Return this element multiplied by ``s`` on the right and with exponents + shifted by ``exponent``. INPUT: @@ -1145,7 +1137,7 @@ cdef class PolyDict: sage: f.term_rmult(ETuple((1, 2)), y) PolyDict with representation {(3, 5): x*y} - sage: f = PolyDict({(2,3): 2, (1,2): 3, (2,1): 4}) + sage: f = PolyDict({(2, 3): 2, (1, 2): 3, (2, 1): 4}) sage: f.term_rmult(ETuple((1, 2)), -2) PolyDict with representation {(2, 4): -6, (3, 3): -8, (3, 5): -4} @@ -1202,10 +1194,10 @@ cdef class PolyDict: EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) + sage: f = PolyDict({(2, 3): 2, (1, 2): 3, (2, 1): 4}) sage: f.derivative(PolyDict({(1, 0): 1})) PolyDict with representation {(0, 2): 3, (1, 1): 8, (1, 3): 4} - sage: f.derivative(PolyDict({(0,1): 1})) + sage: f.derivative(PolyDict({(0, 1): 1})) PolyDict with representation {(1, 1): 6, (2, 0): 4, (2, 2): 6} sage: PolyDict({(-1,): 1}).derivative(PolyDict({(1,): 1})) @@ -1249,10 +1241,10 @@ cdef class PolyDict: EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) - sage: f.integral(PolyDict({(1,0): 1})) + sage: f = PolyDict({(2, 3): 2, (1, 2): 3, (2, 1): 4}) + sage: f.integral(PolyDict({(1, 0): 1})) PolyDict with representation {(2, 2): 3/2, (3, 1): 4/3, (3, 3): 2/3} - sage: f.integral(PolyDict({(0,1): 1})) + sage: f.integral(PolyDict({(0, 1): 1})) PolyDict with representation {(1, 3): 1, (2, 2): 2, (2, 4): 1/2} sage: PolyDict({(-1,): 1}).integral(PolyDict({(1,): 1})) @@ -1291,7 +1283,7 @@ cdef class PolyDict: EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) + sage: f = PolyDict({(2, 3): 2, (1, 2): 3, (2, 1): 4}) sage: loads(dumps(f)) == f True """ @@ -1308,7 +1300,7 @@ cdef class PolyDict: EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) + sage: f = PolyDict({(2, 3): 2, (1, 2): 3, (2, 1): 4}) sage: f.min_exp() (1, 1) sage: PolyDict({}).min_exp() # returns None @@ -1334,7 +1326,7 @@ cdef class PolyDict: EXAMPLES:: sage: from sage.rings.polynomial.polydict import PolyDict - sage: f = PolyDict({(2,3):2, (1,2):3, (2,1):4}) + sage: f = PolyDict({(2, 3): 2, (1, 2): 3, (2, 1): 4}) sage: f.max_exp() (2, 3) sage: PolyDict({}).max_exp() # returns None @@ -1501,7 +1493,7 @@ cdef class ETuple: True sage: bool(ETuple([])) False - sage: bool(ETuple([0,0,0])) + sage: bool(ETuple([0, 0, 0])) False """ return bool(self._nonzero) @@ -1517,7 +1509,7 @@ cdef class ETuple: EXAMPLES:: sage: from sage.rings.polynomial.polydict import ETuple - sage: ETuple([1,1,0]) + ETuple({int(1):int(2)}, int(3)) + sage: ETuple([1, 1, 0]) + ETuple({int(1): int(2)}, int(3)) (1, 1, 0, 0, 2, 0) """ cdef size_t index = 0 @@ -1540,7 +1532,7 @@ cdef class ETuple: EXAMPLES:: sage: from sage.rings.polynomial.polydict import ETuple - sage: ETuple([1,2,3])*2 + sage: ETuple([1, 2, 3])*2 (1, 2, 3, 1, 2, 3) """ cdef int _factor = factor @@ -1565,12 +1557,12 @@ cdef class ETuple: EXAMPLES:: sage: from sage.rings.polynomial.polydict import ETuple - sage: m = ETuple([1,2,0,3]) + sage: m = ETuple([1, 2, 0, 3]) sage: m[2] 0 sage: m[1] 2 - sage: e = ETuple([1,2,3]) + sage: e = ETuple([1, 2, 3]) sage: e[1:] (2, 3) sage: e[:1] @@ -1651,7 +1643,7 @@ cdef class ETuple: EXAMPLES:: sage: from sage.rings.polynomial.polydict import ETuple - sage: e=ETuple([1,0,2,0,3]) + sage: e = ETuple([1, 0, 2, 0, 3]) sage: len(e) 5 """ @@ -1664,7 +1656,8 @@ cdef class ETuple: EXAMPLES:: sage: from sage.rings.polynomial.polydict import ETuple - sage: e = ETuple({int(1):int(2)}, int(3)); e + sage: e = ETuple({int(1): int(2)}, int(3)) + sage: e (0, 2, 0) sage: 1 in e False @@ -1685,25 +1678,25 @@ cdef class ETuple: EXAMPLES:: sage: from sage.rings.polynomial.polydict import ETuple - sage: ETuple([1,1,0])ETuple([1,1,0]) + sage: ETuple([1, 1, 0])>ETuple([1, 1, 0]) False - sage: ETuple([1,1,0])>ETuple([1,0,0]) + sage: ETuple([1, 1, 0])>ETuple([1, 0, 0]) True - sage: ETuple([1,1,0])>ETuple([1,2,0]) + sage: ETuple([1, 1, 0])>ETuple([1, 2, 0]) False - sage: ETuple([1,1,0])>ETuple([1,-1,0]) + sage: ETuple([1, 1, 0])>ETuple([1, -1, 0]) True - sage: ETuple([0,-2,0])>ETuple([1,-1,0]) + sage: ETuple([0, -2, 0])>ETuple([1, -1, 0]) False """ cdef size_t ind = 0 @@ -1765,7 +1758,7 @@ cdef class ETuple: TESTS:: sage: from sage.rings.polynomial.polydict import ETuple - sage: e = ETuple((4,0,0,2,0)) + sage: e = ETuple((4, 0, 0, 2, 0)) sage: list(e) [4, 0, 0, 2, 0] @@ -1799,7 +1792,7 @@ cdef class ETuple: (0,) sage: ETuple((1,)) (1,) - sage: ETuple((0,1,2)) + sage: ETuple((0, 1, 2)) (0, 1, 2) """ if self._length == 1: @@ -1815,7 +1808,7 @@ cdef class ETuple: EXAMPLES:: sage: from sage.rings.polynomial.polydict import ETuple - sage: e = ETuple([1,1,0]) + sage: e = ETuple([1, 1, 0]) sage: e == loads(dumps(e)) True """ @@ -1881,7 +1874,7 @@ cdef class ETuple: cpdef int unweighted_quotient_degree(self, ETuple other) except *: """ - Degree of ``self`` divided by its gcd with ``other``. + Return the degree of ``self`` divided by its gcd with ``other``. It amounts to counting the non-negative entries of ``self.esub(other)``. @@ -1917,7 +1910,7 @@ cdef class ETuple: @cython.wraparound(False) cpdef int weighted_quotient_degree(self, ETuple other, tuple w) except *: r""" - Weighted degree of ``self`` divided by its gcd with ``other``. + Return the weighted degree of ``self`` divided by its gcd with ``other``. INPUT: @@ -1957,13 +1950,13 @@ cdef class ETuple: cpdef ETuple eadd(self, ETuple other): """ - Vector addition of ``self`` with ``other``. + Return the vector addition of ``self`` with ``other``. EXAMPLES:: sage: from sage.rings.polynomial.polydict import ETuple - sage: e = ETuple([1,0,2]) - sage: f = ETuple([0,1,1]) + sage: e = ETuple([1, 0, 2]) + sage: f = ETuple([0, 1, 1]) sage: e.eadd(f) (1, 1, 3) @@ -2011,11 +2004,11 @@ cdef class ETuple: EXAMPLES:: sage: from sage.rings.polynomial.polydict import ETuple - sage: e = ETuple([1,0,2]) + sage: e = ETuple([1, 0, 2]) sage: e.eadd_p(5, 1) (1, 5, 2) sage: e = ETuple([0]*7) - sage: e.eadd_p(5,4) + sage: e.eadd_p(5, 4) (0, 0, 0, 0, 5, 0, 0) sage: ETuple([0,1]).eadd_p(1, 0) == ETuple([1,1]) @@ -2099,8 +2092,8 @@ cdef class ETuple: EXAMPLES:: sage: from sage.rings.polynomial.polydict import ETuple - sage: e = ETuple([1,0,2]) - sage: f = ETuple([0,1,1]) + sage: e = ETuple([1, 0, 2]) + sage: f = ETuple([0, 1, 1]) sage: e.eadd_scaled(f, 3) (1, 3, 5) """ @@ -2138,8 +2131,8 @@ cdef class ETuple: EXAMPLES:: sage: from sage.rings.polynomial.polydict import ETuple - sage: e = ETuple([1,0,2]) - sage: f = ETuple([0,1,1]) + sage: e = ETuple([1, 0, 2]) + sage: f = ETuple([0, 1, 1]) sage: e.esub(f) (1, -1, 1) """ @@ -2176,7 +2169,7 @@ cdef class ETuple: EXAMPLES:: sage: from sage.rings.polynomial.polydict import ETuple - sage: e = ETuple([1,0,2]) + sage: e = ETuple([1, 0, 2]) sage: e.emul(2) (2, 0, 4) """ @@ -2200,16 +2193,16 @@ cdef class ETuple: EXAMPLES:: sage: from sage.rings.polynomial.polydict import ETuple - sage: e = ETuple([1,0,2]) - sage: f = ETuple([0,1,1]) + sage: e = ETuple([1, 0, 2]) + sage: f = ETuple([0, 1, 1]) sage: e.emax(f) (1, 1, 2) - sage: e = ETuple((1,2,3,4)) - sage: f = ETuple((4,0,2,1)) + sage: e = ETuple((1, 2, 3, 4)) + sage: f = ETuple((4, 0, 2, 1)) sage: f.emax(e) (4, 2, 3, 4) - sage: e = ETuple((1,-2,-2,4)) - sage: f = ETuple((4,0,0,0)) + sage: e = ETuple((1, -2, -2, 4)) + sage: f = ETuple((4, 0, 0, 0)) sage: f.emax(e) (4, 0, 0, 4) sage: f.emax(e).nonzero_positions() @@ -2247,12 +2240,12 @@ cdef class ETuple: EXAMPLES:: sage: from sage.rings.polynomial.polydict import ETuple - sage: e = ETuple([1,0,2]) - sage: f = ETuple([0,1,1]) + sage: e = ETuple([1, 0, 2]) + sage: f = ETuple([0, 1, 1]) sage: e.emin(f) (0, 0, 1) - sage: e = ETuple([1,0,-1]) - sage: f = ETuple([0,-2,1]) + sage: e = ETuple([1, 0, -1]) + sage: f = ETuple([0, -2, 1]) sage: e.emin(f) (0, -2, -1) """ @@ -2288,12 +2281,12 @@ cdef class ETuple: EXAMPLES:: sage: from sage.rings.polynomial.polydict import ETuple - sage: e = ETuple([1,0,2]) - sage: f = ETuple([0,1,1]) + sage: e = ETuple([1, 0, 2]) + sage: f = ETuple([0, 1, 1]) sage: e.dotprod(f) 2 - sage: e = ETuple([1,1,-1]) - sage: f = ETuple([0,-2,1]) + sage: e = ETuple([1, 1, -1]) + sage: f = ETuple([0, -2, 1]) sage: e.dotprod(f) -3 """ @@ -2317,12 +2310,12 @@ cdef class ETuple: EXAMPLES:: sage: from sage.rings.polynomial.polydict import ETuple - sage: ETuple([1,0,2]).escalar_div(2) + sage: ETuple([1, 0, 2]).escalar_div(2) (0, 0, 1) - sage: ETuple([0,3,12]).escalar_div(3) + sage: ETuple([0, 3, 12]).escalar_div(3) (0, 1, 4) - sage: ETuple([1,5,2]).escalar_div(0) + sage: ETuple([1, 5, 2]).escalar_div(0) Traceback (most recent call last): ... ZeroDivisionError @@ -2333,7 +2326,7 @@ cdef class ETuple: sage: from sage.rings.polynomial.polydict import ETuple sage: t = ETuple(list(range(2048))) - sage: for n in range(1,9): + sage: for n in range(1, 9): ....: t = t.escalar_div(n) sage: assert t.is_constant() """ @@ -2489,10 +2482,10 @@ cdef class ETuple: EXAMPLES:: sage: from sage.rings.polynomial.polydict import ETuple - sage: e = ETuple([1,0,2]) + sage: e = ETuple([1, 0, 2]) sage: e.is_constant() False - sage: e = ETuple([0,0]) + sage: e = ETuple([0, 0]) sage: e.is_constant() True """ @@ -2506,11 +2499,11 @@ cdef class ETuple: sage: from sage.rings.polynomial.polydict import ETuple - sage: ETuple([0,0]).is_multiple_of(3) + sage: ETuple([0, 0]).is_multiple_of(3) True - sage: ETuple([0,3,12,0,6]).is_multiple_of(3) + sage: ETuple([0, 3, 12, 0, 6]).is_multiple_of(3) True - sage: ETuple([0,0,2]).is_multiple_of(3) + sage: ETuple([0, 0, 2]).is_multiple_of(3) False """ if not n: @@ -2533,7 +2526,7 @@ cdef class ETuple: EXAMPLES:: sage: from sage.rings.polynomial.polydict import ETuple - sage: e = ETuple([1,0,2]) + sage: e = ETuple([1, 0, 2]) sage: e.nonzero_positions() [0, 2] """ @@ -2549,8 +2542,8 @@ cdef class ETuple: EXAMPLES:: sage: from sage.rings.polynomial.polydict import ETuple - sage: e = ETuple([1,0,2]) - sage: f = ETuple([0,0,1]) + sage: e = ETuple([1, 0, 2]) + sage: f = ETuple([0, 0, 1]) sage: e.common_nonzero_positions(f) {0, 2} sage: e.common_nonzero_positions(f, sort=True) @@ -2575,10 +2568,10 @@ cdef class ETuple: EXAMPLES:: sage: from sage.rings.polynomial.polydict import ETuple - sage: e = ETuple([2,0,1]) + sage: e = ETuple([2, 0, 1]) sage: e.nonzero_values() [2, 1] - sage: f = ETuple([0,-1,1]) + sage: f = ETuple([0, -1, 1]) sage: f.nonzero_values(sort=True) [-1, 1] """ @@ -2592,7 +2585,7 @@ cdef class ETuple: EXAMPLES:: sage: from sage.rings.polynomial.polydict import ETuple - sage: e = ETuple([1,2,3]) + sage: e = ETuple([1, 2, 3]) sage: e.reversed() (3, 2, 1) """ @@ -2613,7 +2606,7 @@ cdef class ETuple: EXAMPLES:: sage: from sage.rings.polynomial.polydict import ETuple - sage: e = ETuple([1,0,2,0,3]) + sage: e = ETuple([1, 0, 2, 0, 3]) sage: list(e.sparse_iter()) [(0, 1), (2, 2), (4, 3)] """ @@ -2630,8 +2623,8 @@ cdef class ETuple: EXAMPLES:: sage: from sage.rings.polynomial.polydict import ETuple - sage: e = ETuple([-2,1,-5, 3, 1,0]) - sage: f = ETuple([1,-3,-3,4,0,2]) + sage: e = ETuple([-2, 1, -5, 3, 1, 0]) + sage: f = ETuple([1, -3, -3, 4, 0, 2]) sage: e.combine_to_positives(f) ((-2, -3, -5, 3, 0, 0), (0, 4, 0, 0, 1, 0), (3, 0, 2, 1, 0, 2)) """ From 9f753425add0a632b6e7644021bb10d93be434f6 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sun, 19 Mar 2023 10:59:43 -0700 Subject: [PATCH 233/249] src/sage/numerical/backends/cvxpy_backend.pyx: Fix for linter --- src/sage/numerical/backends/cvxpy_backend.pyx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/sage/numerical/backends/cvxpy_backend.pyx b/src/sage/numerical/backends/cvxpy_backend.pyx index f3f9da82c93..ca559d0d319 100644 --- a/src/sage/numerical/backends/cvxpy_backend.pyx +++ b/src/sage/numerical/backends/cvxpy_backend.pyx @@ -932,4 +932,3 @@ cdef class CVXPYBackend: self.col_lower_bound[index] = value else: return self.col_lower_bound[index] - From 32a6d08ca95cb00d7573ae9147b0936163183040 Mon Sep 17 00:00:00 2001 From: Travis Scrimshaw Date: Mon, 20 Mar 2023 09:03:12 +0900 Subject: [PATCH 234/249] Removing use_fraction_field argument and rebased over #35265. --- src/sage/data_structures/stream.py | 10 +++------- src/sage/rings/lazy_series.py | 24 +++++++++--------------- 2 files changed, 12 insertions(+), 22 deletions(-) diff --git a/src/sage/data_structures/stream.py b/src/sage/data_structures/stream.py index efbdc6f5ea6..de0d5ab902e 100644 --- a/src/sage/data_structures/stream.py +++ b/src/sage/data_structures/stream.py @@ -2998,13 +2998,9 @@ def order(self): self._approximate_order = n self._true_order = True return n - n += 1 - else: - if self[n]: - self._approximate_order = n - self._true_order = True - return n - n += 1 + elif self[n]: + return n + n += 1 return super().order() def is_nonzero(self): diff --git a/src/sage/rings/lazy_series.py b/src/sage/rings/lazy_series.py index 9f43c20e876..a92b079a8cc 100644 --- a/src/sage/rings/lazy_series.py +++ b/src/sage/rings/lazy_series.py @@ -630,7 +630,7 @@ def truncate(self, d): initial_coefficients = [coeff_stream[i] for i in range(v, d)] return P.element_class(P, Stream_exact(initial_coefficients, order=v)) - def shift(self, n, use_fraction_field=False): + def shift(self, n): r""" Return ``self`` with the indices shifted by ``n``. @@ -642,8 +642,6 @@ def shift(self, n, use_fraction_field=False): INPUT: - ``n`` -- the amount to shift - - ``use_fraction_field`` -- (default: ``False``) convert the result - into the fraction field EXAMPLES:: @@ -699,20 +697,20 @@ def shift(self, n, use_fraction_field=False): sage: fp.shift(-5) == g True - We compare the shifting with the ``use_fraction_field`` option:: + We compare the shifting with converting to the fraction field + (see also :trac:`35293`):: - sage: L. = LazyPowerSeriesRing(QQ) + sage: M = L.fraction_field() sage: f = L([1,2,3,4]); f 1 + 2*x + 3*x^2 + 4*x^3 sage: f.shift(-3) 4 - sage: f.shift(-3, use_fraction_field=True) + sage: M(f).shift(-3) x^-3 + 2*x^-2 + 3*x^-1 + 4 An example with a more general function:: sage: fun = lambda n: 1 if ZZ(n).is_power_of(2) else 0 - sage: L. = LazyPowerSeriesRing(QQ) sage: f = L(fun); f x + x^2 + x^4 + O(x^7) sage: fs = f.shift(-4) @@ -720,8 +718,8 @@ def shift(self, n, use_fraction_field=False): 1 + x^4 + O(x^7) sage: fs.shift(4) x^4 + x^8 + O(x^11) - sage: f.shift(-4, use_fraction_field=True) - x^-3 + x^-2 + 1 + O(x^3) + sage: M(f).shift(-4) + x^-3 + x^-2 + 1 + O(x^4) TESTS:: @@ -735,9 +733,10 @@ def shift(self, n, use_fraction_field=False): 0 sage: L. = LazyPowerSeriesRing(QQ) + sage: M = L.fraction_field() sage: f = x.shift(-3); f 0 - sage: f = x.shift(-3, use_fraction_field=True); f + sage: f = M(x).shift(-3); f x^-2 sage: f.parent() Lazy Laurent Series Ring in x over Rational Field @@ -785,12 +784,7 @@ def shift(self, n, use_fraction_field=False): if P._arity != 1: raise ValueError("arity must be equal to 1") - if use_fraction_field: - P = P.fraction_field() - if isinstance(self._coeff_stream, Stream_zero): - if use_fraction_field: - return P.zero() return self if isinstance(self._coeff_stream, Stream_shift): From 0e0e5f8a6bc761c5895df0fd874b556f84275195 Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Mon, 20 Mar 2023 21:31:27 +0100 Subject: [PATCH 235/249] mention inexact zeros issue --- .../rings/polynomial/multi_polynomial_element.py | 14 ++++++++++++++ src/sage/rings/polynomial/polydict.pyx | 9 +++++++++ 2 files changed, 23 insertions(+) diff --git a/src/sage/rings/polynomial/multi_polynomial_element.py b/src/sage/rings/polynomial/multi_polynomial_element.py index d1bc8ea7cfe..16a6946cf88 100644 --- a/src/sage/rings/polynomial/multi_polynomial_element.py +++ b/src/sage/rings/polynomial/multi_polynomial_element.py @@ -80,6 +80,20 @@ def is_MPolynomial(x): class MPolynomial_element(MPolynomial): + r""" + Generic multivariate polynomial. + + This implementation is based on the :class:`~sage.rings.polynomial.polydict.PolyDict`. + + .. TODO:: + + As mentioned in their docstring, + :class:`~sage.rings.polynomial.polydict.PolyDict` objects never clear + zeros. In all arithmetic operations on :class:`MPolynomial_element` + there is an additional call to the method ``remove_zeros`` to clear + them. This is not ideal because of the presence of inexact zeros, see + :trac:`35174`. + """ def __init__(self, parent, x): """ EXAMPLES:: diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index 6c54d546b20..f6edd759d21 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -100,6 +100,12 @@ cdef class PolyDict: A PolyDict holds a dictionary all of whose keys are :class:`ETuple` and whose values are coefficients on which it is implicitely assumed that arithmetic operations can be performed. + + No arithmetic operation on :class:`PolyDict` clear zero coefficients as of + now there is no reliable way of testing it in the most general setting, see + :trac:`35319`. For removing zero coefficients from a :class:`PolyDict` you + can use the method :meth:`remove_zeros` which can be parametrized by a zero + test. """ def __init__(self, pdict, zero=None, remove_zero=None, force_int_exponents=None, force_etuples=None, bint check=True): """ @@ -207,6 +213,9 @@ cdef class PolyDict: sage: f PolyDict with representation {} + The following example shows how to remove only exact zeros from a ``PolyDict`` + containing univariate power series:: + sage: R. = PowerSeriesRing(QQ) sage: f = PolyDict({(1, 1): O(t), (1, 0): R.zero()}) sage: f.remove_zeros(lambda s: s.is_zero() and s.prec() is Infinity) From 1a7eeac1a5da609b30fa9f0a36d6784e5dff6e7d Mon Sep 17 00:00:00 2001 From: Vincent Delecroix Date: Mon, 20 Mar 2023 21:36:29 +0100 Subject: [PATCH 236/249] some final details --- src/sage/rings/polynomial/polydict.pyx | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/sage/rings/polynomial/polydict.pyx b/src/sage/rings/polynomial/polydict.pyx index f6edd759d21..3db1bb6c531 100644 --- a/src/sage/rings/polynomial/polydict.pyx +++ b/src/sage/rings/polynomial/polydict.pyx @@ -122,8 +122,8 @@ cdef class PolyDict: - ``force_etuples`` -- deprecated - - ``check`` -- if set to ``False`` then assumes that the exponents are all valid ``ETuple``. In - that case the construction is a bit faster. + - ``check`` -- if set to ``False`` then assumes that the exponents are + all valid ``ETuple``; in that case the construction is a bit faster. EXAMPLES:: @@ -224,6 +224,19 @@ cdef class PolyDict: """ if not self.__repn: return + # NOTE: in each of the conditional statements below, what the first + # loop does is equivalent to + # + # if all(self.__repn.values()): + # return + # + # and + # + # if all(not zero_test(coeff) for coeff in self.__repn.values()): + # return + # + # However, 'all(...)' is badly handled by the Cython compiler and we + # rather unfold it for efficiency. cdef bint has_zero_coefficient = False if zero_test is None: for coeff in self.__repn.values(): @@ -2437,7 +2450,7 @@ cdef class ETuple: result._data[2 * ind + 1] = exp1 - 1 else: # var(pos) disappears from self - result._nonzero = self._nonzero-1 + result._nonzero = self._nonzero - 1 memcpy(result._data, self._data, sizeof(int) * 2 * ind) if ind + 1 < self._nonzero: memcpy(result._data + 2 * ind, self._data + 2 * (ind + 1), sizeof(int) * 2 * (self._nonzero - ind - 1)) From 73440b4c493c31f0eb91f3fb5fa31295b058bef0 Mon Sep 17 00:00:00 2001 From: Martin Rubey Date: Tue, 21 Mar 2023 10:53:25 +0100 Subject: [PATCH 237/249] start the dense cache with the first non-zero term, remove _offset --- src/sage/data_structures/stream.py | 173 ++++++++++++++--------------- src/sage/rings/lazy_series.py | 2 +- 2 files changed, 83 insertions(+), 92 deletions(-) diff --git a/src/sage/data_structures/stream.py b/src/sage/data_structures/stream.py index 943fbf8face..10e3f14743a 100644 --- a/src/sage/data_structures/stream.py +++ b/src/sage/data_structures/stream.py @@ -159,11 +159,15 @@ def _approximate_order(self): def __ne__(self, other): """ - Check inequality of ``self`` and ``other``. + Return whether ``self`` and ``other`` are known to be different. The default is to always return ``False`` as it usually cannot be decided whether they are equal. + INPUT: + + - ``other`` -- a stream + EXAMPLES:: sage: from sage.data_structures.stream import Stream @@ -172,6 +176,7 @@ def __ne__(self, other): False sage: CS != Stream(-2) False + """ return False @@ -204,14 +209,7 @@ class Stream_inexact(Stream): - ``is_sparse`` -- boolean; whether the implementation of the stream is sparse - ``true_order`` -- boolean; if the approximate order is the actual order - .. TODO:: - - The ``approximate_order`` is currently only updated when - invoking :meth:`order`. It might make sense to update it - whenever the coefficient one larger than the current - ``approximate_order`` is computed, since in some methods this - will allow shortcuts. - + If the cache is dense, it begins with the first non-zero term. """ def __init__(self, is_sparse, true_order): """ @@ -235,27 +233,6 @@ def __init__(self, is_sparse, true_order): self._cache = list() self._iter = self.iterate_coefficients() - @lazy_attribute - def _offset(self): - """ - Return the offset of a stream with a dense cache. - - EXAMPLES:: - - sage: from sage.data_structures.stream import Stream_function - sage: f = Stream_function(lambda n: n, False, -3) - sage: f._offset - -3 - sage: [f[i] for i in range(-3, 5)] - [-3, -2, -1, 0, 1, 2, 3, 4] - sage: f._cache - [-3, -2, -1, 0, 1, 2, 3, 4] - """ - # self[n] == self._cache[n-self._offset] - if self._is_sparse: - raise ValueError("_offset is only for dense streams") - return self._approximate_order - def is_nonzero(self): r""" Return ``True`` if and only if the cache contains a nonzero element. @@ -370,11 +347,11 @@ def __getitem__(self, n): sage: f[3] 9 sage: f._cache - [0, 1, 4, 9] + [1, 4, 9] sage: [f[i] for i in range(10)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] sage: f._cache - [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] + [1, 4, 9, 16, 25, 36, 49, 64, 81] """ if n < self._approximate_order: return ZZ.zero() @@ -402,24 +379,24 @@ def __getitem__(self, n): return c # Dense implementation - i = n - self._offset - if i >= len(self._cache): - a = len(self._cache) + self._offset - if self._true_order: - # It is important to extend by generator: - # self._iter might recurse, and thereby extend the - # cache itself, too. - self._cache.extend(next(self._iter) for _ in range(a, n+1)) + while not self._true_order and n >= self._approximate_order: + c = next(self._iter) + if c: + self._true_order = True + self._cache.append(c) else: - for _ in range(a, n+1): - c = next(self._iter) - self._cache.append(c) - if c: - self._true_order = True - else: - self._approximate_order += 1 + self._approximate_order += 1 - return self._cache[i] + if self._true_order: + # It is important to extend by generator: + # self._iter might recurse, and thereby extend the + # cache itself, too. + i = n - self._approximate_order + self._cache.extend(next(self._iter) + for _ in range(i - len(self._cache) + 1)) + return self._cache[i] + + return ZZ.zero() def iterate_coefficients(self): """ @@ -467,10 +444,13 @@ def order(self): def __ne__(self, other): """ - Check inequality of ``self`` and ``other``. + Return whether ``self`` and ``other`` are known to be different. - Check if there are any differences in the caches to see if they - are known to be not equal. + Only the elements in the caches are considered. + + INPUT: + + - ``other`` -- a stream EXAMPLES:: @@ -536,31 +516,30 @@ def __ne__(self, other): True sage: g != f True + """ + # TODO: more cases, in particular mixed implementations, + # could be detected if not isinstance(other, Stream_inexact): return False - if self._is_sparse: + if self._is_sparse and other._is_sparse: for i in self._cache: if i in other._cache and other._cache[i] != self._cache[i]: return True - else: # they are dense - # Make ``self`` have the smaller approximate order. - if self._approximate_order > other._approximate_order: - self, other = other, self - saorder = self._approximate_order - soffset = self._offset - oaorder = other._approximate_order - ooffset = other._offset - end = min(oaorder, soffset + len(self._cache)) - for i in range(saorder, end): - if self._cache[i-soffset]: - return True - # now check all known values - end = min(soffset + len(self._cache), ooffset + len(other._cache)) - for i in range(oaorder, end): - if self._cache[i-soffset] != other._cache[i-ooffset]: - return True + + elif not self._is_sparse and not other._is_sparse: + if ((self._true_order + and other._approximate_order > self._approximate_order) + or (other._true_order + and self._approximate_order > other._approximate_order)): + return True + + if not self._true_order or not other._true_order: + return False + + if any(i != j for i, j in zip(self._cache, other._cache)): + return True return False @@ -765,7 +744,9 @@ def __hash__(self): def __eq__(self, other): """ - Test the equality between ``self`` and ``other``. + Return whether ``self`` and ``other`` are known to be equal. + + If ``other`` is also exact, equality is computable. INPUT: @@ -797,6 +778,7 @@ def __eq__(self, other): sage: t = Stream_exact([2], order=-1, degree=5, constant=1) sage: s == t False + """ return (isinstance(other, type(self)) and self._degree == other._degree @@ -806,8 +788,10 @@ def __eq__(self, other): def __ne__(self, other): """ - Test inequality between ``self`` and ``other``, where - other is exact or inexact, but not zero. + Return whether ``self`` and ``other`` are known to be different. + + The argument ``other`` may be exact or inexact, but is + assumed to be non-zero. INPUT: @@ -852,9 +836,12 @@ def __ne__(self, other): if self[i] != other._cache[i]: return True else: - if other._offset > self._approximate_order: - return False - return any(self[i] != c for i, c in enumerate(other._cache, other._offset)) + if other._true_order: + return any(self[i] != c + for i, c in enumerate(other._cache, + other._approximate_order)) + if other._approximate_order > self._approximate_order: + return True return False @@ -1094,11 +1081,11 @@ def __hash__(self): def __eq__(self, other): """ - Test equality. + Return whether ``self`` and ``other`` are known to be equal. INPUT: - - ``other`` -- a stream of coefficients + - ``other`` -- a stream EXAMPLES:: @@ -1178,11 +1165,11 @@ def __hash__(self): def __eq__(self, other): """ - Test equality. + Return whether ``self`` and ``other`` are known to be equal. INPUT: - - ``other`` -- a :class:`Stream` of coefficients + - ``other`` -- a stream EXAMPLES:: @@ -1241,11 +1228,11 @@ def __hash__(self): def __eq__(self, other): """ - Test the equality between ``self`` and ``other``. + Return whether ``self`` and ``other`` are known to be equal. INPUT: - - ``other`` -- a :class:`Stream` of coefficients + - ``other`` -- a stream EXAMPLES:: @@ -1330,7 +1317,11 @@ def order(self): def __eq__(self, other): """ - Check equality of ``self`` and ``other``. + Return whether ``self`` and ``other`` are known to be equal. + + INPUT: + + - ``other`` -- a stream EXAMPLES:: @@ -2095,7 +2086,7 @@ def compute_product(self, n, la): sage: f = Stream_exact([1]) # irrelevant for this test sage: g = Stream_function(lambda n: s[n], True, 0) sage: h = Stream_plethysm(f, g, True, p) - sage: B = p[2, 2, 1](sum(s[i] for i in range(7))) + sage: B = p[2, 2, 1](sum(p(s[i]) for i in range(7))) sage: all(h.compute_product(k, Partition([2, 2, 1])) == B.restrict_degree(k) for k in range(7)) True """ @@ -2235,11 +2226,11 @@ def __hash__(self): def __eq__(self, other): """ - Test equality. + Return whether ``self`` and ``other`` are known to be equal. INPUT: - - ``other`` -- a stream of coefficients + - ``other`` -- a stream EXAMPLES:: @@ -2690,11 +2681,11 @@ def __hash__(self): def __eq__(self, other): """ - Test equality. + Return whether ``self`` and ``other`` are known to be equal. INPUT: - - ``other`` -- a stream of coefficients + - ``other`` -- a stream EXAMPLES:: @@ -2805,11 +2796,11 @@ def __hash__(self): def __eq__(self, other): """ - Test equality. + Return whether ``self`` and ``other`` are known to be equal. INPUT: - - ``other`` -- a stream of coefficients + - ``other`` -- a stream EXAMPLES:: @@ -2934,11 +2925,11 @@ def __hash__(self): def __eq__(self, other): """ - Test equality. + Return whether ``self`` and ``other`` are known to be equal. INPUT: - - ``other`` -- a stream of coefficients + - ``other`` -- a stream EXAMPLES:: diff --git a/src/sage/rings/lazy_series.py b/src/sage/rings/lazy_series.py index a2ec1653726..edb76d4f9a1 100644 --- a/src/sage/rings/lazy_series.py +++ b/src/sage/rings/lazy_series.py @@ -50,7 +50,7 @@ sage: s.coefficient(10) 10 sage: s._coeff_stream._cache - [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] + [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] We can do arithmetic with lazy power series:: From 105908feb5c5827f9978080199ea2a7da507329d Mon Sep 17 00:00:00 2001 From: Martin Rubey Date: Tue, 21 Mar 2023 14:01:18 +0100 Subject: [PATCH 238/249] optimize sparse case --- src/sage/data_structures/stream.py | 28 ++++++++++++++-------------- src/sage/rings/lazy_series.py | 4 ++-- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/sage/data_structures/stream.py b/src/sage/data_structures/stream.py index 10e3f14743a..086bd6ed48a 100644 --- a/src/sage/data_structures/stream.py +++ b/src/sage/data_structures/stream.py @@ -341,7 +341,7 @@ def __getitem__(self, n): sage: [f[i] for i in range(10)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] sage: f._cache - {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81} + {1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81} sage: f = Stream_function(lambda n: n^2, False, 0) sage: f[3] @@ -360,24 +360,24 @@ def __getitem__(self, n): try: return self._cache[n] except KeyError: - c = self.get_coefficient(n) - self._cache[n] = c - if not self._true_order and n == self._approximate_order: + pass + + c = self.get_coefficient(n) + if not self._true_order and n == self._approximate_order and not c: # self._approximate_order is not in self._cache if # self._true_order is False - if c: + ao = self._approximate_order + 1 + while ao in self._cache: + if self._cache[ao]: self._true_order = True - self._approximate_order = n - else: - ao = self._approximate_order + 1 - while ao in self._cache: - if self._cache[ao]: - self._true_order = True - break - ao += 1 - self._approximate_order = ao + break + ao += 1 + self._approximate_order = ao return c + self._cache[n] = c + return c + # Dense implementation while not self._true_order and n >= self._approximate_order: c = next(self._iter) diff --git a/src/sage/rings/lazy_series.py b/src/sage/rings/lazy_series.py index edb76d4f9a1..8a9f6f19687 100644 --- a/src/sage/rings/lazy_series.py +++ b/src/sage/rings/lazy_series.py @@ -39,7 +39,7 @@ sage: s.coefficient(10) 10 sage: s._coeff_stream._cache - {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 10: 10} + {1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 10: 10} Using the dense implementation, all coefficients up to the required coefficient are computed. :: @@ -366,7 +366,7 @@ def __getitem__(self, n): sage: f[:3] [] sage: f._coeff_stream._cache - {1: 0, 2: 0} + {} """ R = self.parent()._internal_poly_ring.base_ring() coeff_stream = self._coeff_stream From 50eb60e57a4d439bbf94a80b61b17cdd2ce6023d Mon Sep 17 00:00:00 2001 From: Martin Rubey Date: Tue, 21 Mar 2023 17:36:08 +0100 Subject: [PATCH 239/249] fix updating true_order in sparse case, add doctest --- src/sage/data_structures/stream.py | 35 ++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/src/sage/data_structures/stream.py b/src/sage/data_structures/stream.py index 086bd6ed48a..c932e75d690 100644 --- a/src/sage/data_structures/stream.py +++ b/src/sage/data_structures/stream.py @@ -363,19 +363,24 @@ def __getitem__(self, n): pass c = self.get_coefficient(n) - if not self._true_order and n == self._approximate_order and not c: - # self._approximate_order is not in self._cache if - # self._true_order is False - ao = self._approximate_order + 1 - while ao in self._cache: - if self._cache[ao]: - self._true_order = True - break - ao += 1 - self._approximate_order = ao + if self._true_order or n > self._approximate_order: + self._cache[n] = c + return c + + if c: + self._true_order = True + self._cache[n] = c return c - self._cache[n] = c + # self._approximate_order is not in self._cache if + # self._true_order is False + ao = self._approximate_order + 1 + while ao in self._cache: + if self._cache[ao]: + self._true_order = True + break + ao += 1 + self._approximate_order = ao return c # Dense implementation @@ -434,6 +439,14 @@ def order(self): sage: f = Stream_function(lambda n: n*(n+1), False, -1) sage: f.order() 1 + sage: f._true_order + True + + sage: f = Stream_function(lambda n: n*(n+1), True, -1) + sage: f.order() + 1 + sage: f._true_order + True """ if self._true_order: return self._approximate_order From 79da410606ff2f17f7a2c82b13abd0a735ec7c04 Mon Sep 17 00:00:00 2001 From: Travis Scrimshaw Date: Wed, 22 Mar 2023 11:35:26 +0900 Subject: [PATCH 240/249] Update due to changes in #35265. --- src/sage/data_structures/stream.py | 37 +++++------------------------- 1 file changed, 6 insertions(+), 31 deletions(-) diff --git a/src/sage/data_structures/stream.py b/src/sage/data_structures/stream.py index a24e8490ff5..5d0ccf7e369 100644 --- a/src/sage/data_structures/stream.py +++ b/src/sage/data_structures/stream.py @@ -2880,33 +2880,6 @@ def __init__(self, series, shift, minimal_valuation): self._minimal_valuation = minimal_valuation self._approximate_order = minimal_valuation - @lazy_attribute - def _offset(self): - """ - Return the offset of a stream with a dense cache. - - EXAMPLES:: - - sage: from sage.data_structures.stream import Stream_function, Stream_truncated - sage: def fun(n): return 1 if ZZ(n).is_power_of(2) else 0 - sage: f = Stream_function(fun, False, 0) - sage: [f[i] for i in range(8)] - [0, 1, 1, 0, 1, 0, 0, 0] - sage: f._cache - [0, 1, 1, 0, 1, 0, 0, 0] - sage: s = Stream_truncated(f, -5, 0) - sage: s._offset - -5 - sage: [s[i] for i in range(10)] - [0, 0, 0, 1, 0, 0, 0, 0, 0, 0] - sage: s._cache - [0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0] - """ - # self[n] = self._cache[n-self._offset] - if self._is_sparse: - raise ValueError("_offset is only for dense streams") - return self._series._offset + self._shift - def __getitem__(self, n): """ Return the ``n``-th coefficient of ``self``. @@ -2997,7 +2970,7 @@ def order(self): n = self._approximate_order cache = self._series._cache while True: - if n-self._shift in cache: + if n - self._shift in cache: if cache[n-self._shift]: self._approximate_order = n self._true_order = True @@ -3005,6 +2978,7 @@ def order(self): elif self[n]: return n n += 1 + # dense case return super().order() def is_nonzero(self): @@ -3020,7 +2994,7 @@ def is_nonzero(self): sage: [f[i] for i in range(0, 4)] [0, 1, 1, 0] sage: f._cache - [0, 1, 1, 0] + [1, 1, 0] sage: s = Stream_truncated(f, -5, 0) sage: s.is_nonzero() False @@ -3033,7 +3007,7 @@ def is_nonzero(self): sage: [f[i] for i in range(0, 4)] [0, 1, 1, 0] sage: f._cache - {0: 0, 1: 1, 2: 1, 3: 0} + {1: 1, 2: 1, 3: 0} sage: s = Stream_truncated(f, -5, 0) sage: s.is_nonzero() False @@ -3044,7 +3018,8 @@ def is_nonzero(self): """ if self._is_sparse: return any(c for n, c in self._series._cache.items() if n + self._shift >= self._minimal_valuation) - start = self._approximate_order - self._offset + offset = self._series._approximate_order + self._shift + start = self._approximate_order - offset return any(self._series._cache[start:]) From d4648b5a05686179c9632fe00033d72b5134a846 Mon Sep 17 00:00:00 2001 From: Travis Scrimshaw Date: Wed, 22 Mar 2023 14:41:16 +0900 Subject: [PATCH 241/249] Adding reviewer comment and removing _minimal_valuation. --- src/sage/data_structures/stream.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/sage/data_structures/stream.py b/src/sage/data_structures/stream.py index 5d0ccf7e369..36ac93b227c 100644 --- a/src/sage/data_structures/stream.py +++ b/src/sage/data_structures/stream.py @@ -2875,9 +2875,10 @@ def __init__(self, series, shift, minimal_valuation): assert isinstance(series, Stream_inexact) super().__init__(series._is_sparse, False) self._series = series + # We share self._series._cache but not self._series._approximate order + # self._approximate_order cannot be updated by self._series.__getitem__ self._cache = series._cache self._shift = shift - self._minimal_valuation = minimal_valuation self._approximate_order = minimal_valuation def __getitem__(self, n): @@ -3017,7 +3018,7 @@ def is_nonzero(self): True """ if self._is_sparse: - return any(c for n, c in self._series._cache.items() if n + self._shift >= self._minimal_valuation) + return any(c for n, c in self._series._cache.items() if n + self._shift >= self._approximate_order) offset = self._series._approximate_order + self._shift start = self._approximate_order - offset return any(self._series._cache[start:]) From ff4ece81b89ff5c16743b1d174becaf2dd56c783 Mon Sep 17 00:00:00 2001 From: Travis Scrimshaw Date: Wed, 22 Mar 2023 16:17:52 +0900 Subject: [PATCH 242/249] Update the _approximate_order and _true_order for Stream_truncated. --- src/sage/data_structures/stream.py | 79 ++++++++++++++++++++++++++++-- src/sage/rings/lazy_series.py | 9 ++++ 2 files changed, 84 insertions(+), 4 deletions(-) diff --git a/src/sage/data_structures/stream.py b/src/sage/data_structures/stream.py index 36ac93b227c..02a7449ce89 100644 --- a/src/sage/data_structures/stream.py +++ b/src/sage/data_structures/stream.py @@ -2871,15 +2871,57 @@ def __init__(self, series, shift, minimal_valuation): sage: TestSuite(s).run(skip="_test_pickling") sage: s = Stream_truncated(Stream_function(fun, False, 0), -5, 0) sage: TestSuite(s).run(skip="_test_pickling") + + Verify that we have used the cache to see if we can get the + true order at initialization:: + + sage: f = Stream_function(fun, True, 0) + sage: [f[i] for i in range(0, 10)] + [0, 1, 1, 0, 1, 0, 0, 0, 1, 0] + sage: f._cache + {1: 1, 2: 1, 3: 0, 4: 1, 5: 0, 6: 0, 7: 0, 8: 1, 9: 0} + sage: s = Stream_truncated(f, -5, 0) + sage: s._true_order + True + sage: s._approximate_order + 3 + sage: f = Stream_function(fun, False, 0) + sage: [f[i] for i in range(0, 10)] + [0, 1, 1, 0, 1, 0, 0, 0, 1, 0] + sage: f._cache + [1, 1, 0, 1, 0, 0, 0, 1, 0] + sage: s = Stream_truncated(f, -5, 0) + sage: s._true_order + True + sage: s._approximate_order + 3 """ - assert isinstance(series, Stream_inexact) super().__init__(series._is_sparse, False) + assert isinstance(series, Stream_inexact) self._series = series # We share self._series._cache but not self._series._approximate order # self._approximate_order cannot be updated by self._series.__getitem__ self._cache = series._cache self._shift = shift - self._approximate_order = minimal_valuation + ao = minimal_valuation + # Try to find the true order based on the values already computed + true_order = False + if self._is_sparse: + ao -= shift + while ao in self._cache: + if self._cache[ao]: + self._true_order = True + break + ao += 1 + ao += shift + else: + start = ao - (series._approximate_order + shift) + for val in self._cache[start:]: + if val: + self._true_order = True + break + ao += 1 + self._approximate_order = ao def __getitem__(self, n): """ @@ -2892,10 +2934,39 @@ def __getitem__(self, n): sage: s = Stream_truncated(Stream_function(fun, True, 0), -5, 0) sage: [s[i] for i in range(10)] [0, 0, 0, 1, 0, 0, 0, 0, 0, 0] + sage: s._approximate_order + 3 + sage: s._true_order + True + sage: s = Stream_truncated(Stream_function(fun, False, 0), -5, 0) + sage: s[10] + 0 + sage: s._approximate_order + 3 + sage: s._true_order + True """ if n < self._approximate_order: return ZZ.zero() - return self._series[n-self._shift] + ret = self._series[n-self._shift] + if not self._true_order: + if self._is_sparse: + ao = self._approximate_order - self._shift + while ao in self._cache: + if self._cache[ao]: + self._true_order = True + break + ao += 1 + self._approximate_order = ao + self._shift + else: # dense case + offset = self._series._approximate_order + self._shift + start = self._approximate_order - offset + for val in self._cache[start:]: + if val: + self._true_order = True + break + self._approximate_order += 1 + return ret def __hash__(self): """ @@ -3021,7 +3092,7 @@ def is_nonzero(self): return any(c for n, c in self._series._cache.items() if n + self._shift >= self._approximate_order) offset = self._series._approximate_order + self._shift start = self._approximate_order - offset - return any(self._series._cache[start:]) + return any(self._cache[start:]) class Stream_derivative(Stream_inexact): diff --git a/src/sage/rings/lazy_series.py b/src/sage/rings/lazy_series.py index 8a284cbf257..8b0b8aa1dff 100644 --- a/src/sage/rings/lazy_series.py +++ b/src/sage/rings/lazy_series.py @@ -763,6 +763,15 @@ def shift(self, n): sage: g x^3 + O(x^7) sage: g._coeff_stream._approximate_order + 3 + sage: g._coeff_stream._true_order + True + sage: g.valuation() + 3 + + sage: f = L(lambda n: 1 if ZZ(n).is_power_of(2) else 0) + sage: g = f.shift(-5) + sage: g._coeff_stream._approximate_order 0 sage: g._coeff_stream._true_order False From 9d4d7bd66e1f1a8f5a468ad03769bfd291abaedf Mon Sep 17 00:00:00 2001 From: Travis Scrimshaw Date: Wed, 22 Mar 2023 22:51:11 +0900 Subject: [PATCH 243/249] Some reviewer changes. --- src/sage/data_structures/stream.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sage/data_structures/stream.py b/src/sage/data_structures/stream.py index 02a7449ce89..3fee0dcf890 100644 --- a/src/sage/data_structures/stream.py +++ b/src/sage/data_structures/stream.py @@ -2905,7 +2905,6 @@ def __init__(self, series, shift, minimal_valuation): self._shift = shift ao = minimal_valuation # Try to find the true order based on the values already computed - true_order = False if self._is_sparse: ao -= shift while ao in self._cache: @@ -3089,7 +3088,8 @@ def is_nonzero(self): True """ if self._is_sparse: - return any(c for n, c in self._series._cache.items() if n + self._shift >= self._approximate_order) + return any(c for n, c in self._series._cache.items() + if n + self._shift >= self._approximate_order) offset = self._series._approximate_order + self._shift start = self._approximate_order - offset return any(self._cache[start:]) From 0324f53d84a4d48deaba81598d9acc8aea37abd1 Mon Sep 17 00:00:00 2001 From: Dima Pasechnik Date: Thu, 23 Mar 2023 22:18:59 +0000 Subject: [PATCH 244/249] remove unicode --- build/pkgs/cylp/SPKG.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/pkgs/cylp/SPKG.rst b/build/pkgs/cylp/SPKG.rst index f7906322538..10b8192e39c 100644 --- a/build/pkgs/cylp/SPKG.rst +++ b/build/pkgs/cylp/SPKG.rst @@ -12,7 +12,7 @@ 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; +https://www.gnu.org/licenses/license-list.html#EPL2; see also the discussion in :trac:`26511`. Upstream Contact From 0051f196a4a0215815feb5383a4353d86a210bd0 Mon Sep 17 00:00:00 2001 From: Dima Pasechnik Date: Fri, 24 Mar 2023 12:36:34 +0000 Subject: [PATCH 245/249] remove erroneus comment on netlify --- .github/workflows/doc-build-pdf.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/doc-build-pdf.yml b/.github/workflows/doc-build-pdf.yml index c6640895db5..17f008eb627 100644 --- a/.github/workflows/doc-build-pdf.yml +++ b/.github/workflows/doc-build-pdf.yml @@ -39,7 +39,6 @@ jobs: run: | # For some reason the deploy step below cannot find /sage/... # So copy everything from there to local folder - # We also need to replace the symlinks because netlify is not following them mkdir -p ./docs cp -r -L /sage/local/share/doc/sage/pdf/en/* ./docs # Zip everything for increased performance From 5330147f9f4f91e5115396eef3d95ced73064f80 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Fri, 24 Mar 2023 11:58:24 -0700 Subject: [PATCH 246/249] .github/workflows/doc-build-pdf.yml: First run 'make build' with V=0 --- .github/workflows/doc-build-pdf.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/doc-build-pdf.yml b/.github/workflows/doc-build-pdf.yml index 17f008eb627..1fed6b453ce 100644 --- a/.github/workflows/doc-build-pdf.yml +++ b/.github/workflows/doc-build-pdf.yml @@ -29,7 +29,7 @@ jobs: ./configure --enable-build-as-root --prefix=/sage/local --with-sage-venv --enable-download-from-upstream-url - name: Build - run: make doc-pdf + run: make build V=0 && make doc-pdf env: MAKE: make -j2 SAGE_NUM_THREADS: 2 From 82e02a10e90df78a8c532759f991914a661a5e3b Mon Sep 17 00:00:00 2001 From: Release Manager Date: Sun, 26 Mar 2023 13:07:10 +0200 Subject: [PATCH 247/249] Updated SageMath version to 10.0.beta6 --- .zenodo.json | 8 ++++---- VERSION.txt | 2 +- build/pkgs/configure/checksums.ini | 6 +++--- build/pkgs/configure/package-version.txt | 2 +- build/pkgs/sage_conf/install-requires.txt | 2 +- build/pkgs/sage_docbuild/install-requires.txt | 2 +- build/pkgs/sage_setup/install-requires.txt | 2 +- build/pkgs/sage_sws2rst/install-requires.txt | 2 +- build/pkgs/sagelib/install-requires.txt | 2 +- build/pkgs/sagemath_categories/install-requires.txt | 2 +- build/pkgs/sagemath_environment/install-requires.txt | 2 +- build/pkgs/sagemath_objects/install-requires.txt | 2 +- build/pkgs/sagemath_repl/install-requires.txt | 2 +- pkgs/sage-conf/VERSION.txt | 2 +- pkgs/sage-conf_pypi/VERSION.txt | 2 +- pkgs/sage-docbuild/VERSION.txt | 2 +- pkgs/sage-setup/VERSION.txt | 2 +- pkgs/sage-sws2rst/VERSION.txt | 2 +- pkgs/sagemath-categories/VERSION.txt | 2 +- pkgs/sagemath-environment/VERSION.txt | 2 +- pkgs/sagemath-objects/VERSION.txt | 2 +- pkgs/sagemath-repl/VERSION.txt | 2 +- src/VERSION.txt | 2 +- src/bin/sage-version.sh | 6 +++--- src/sage/version.py | 6 +++--- 25 files changed, 34 insertions(+), 34 deletions(-) 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/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 6c2ab0b9423..9eac903027b 100644 --- a/build/pkgs/configure/checksums.ini +++ b/build/pkgs/configure/checksums.ini @@ -1,4 +1,4 @@ tarball=configure-VERSION.tar.gz -sha1=9dc473ec70c91a061179259f66a2010eaa89c81c -md5=bf9729a5443b7ddd19ade63af2d3bf53 -cksum=1529922696 +sha1=c9dfa61ff70a2dceec85ad01fc37ee42232402c0 +md5=7479fb53c1b9fd56aea37f83a34cdac3 +cksum=3525422540 diff --git a/build/pkgs/configure/package-version.txt b/build/pkgs/configure/package-version.txt index 32e1ca4a997..d6f6149ac91 100644 --- a/build/pkgs/configure/package-version.txt +++ b/build/pkgs/configure/package-version.txt @@ -1 +1 @@ -892c702f48724208e34e8e01f97e8989e4143463 +4452928a1a41758883e2f0e3a445b015dfa0e593 diff --git a/build/pkgs/sage_conf/install-requires.txt b/build/pkgs/sage_conf/install-requires.txt index 083603726cb..123896d5d52 100644 --- a/build/pkgs/sage_conf/install-requires.txt +++ b/build/pkgs/sage_conf/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sage-conf ~= 10.0b5 +sage-conf ~= 10.0b6 diff --git a/build/pkgs/sage_docbuild/install-requires.txt b/build/pkgs/sage_docbuild/install-requires.txt index 3576ceb1623..d3ff68ee776 100644 --- a/build/pkgs/sage_docbuild/install-requires.txt +++ b/build/pkgs/sage_docbuild/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sage-docbuild ~= 10.0b5 +sage-docbuild ~= 10.0b6 diff --git a/build/pkgs/sage_setup/install-requires.txt b/build/pkgs/sage_setup/install-requires.txt index 2de9f347a60..5cb11164816 100644 --- a/build/pkgs/sage_setup/install-requires.txt +++ b/build/pkgs/sage_setup/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sage-setup ~= 10.0b5 +sage-setup ~= 10.0b6 diff --git a/build/pkgs/sage_sws2rst/install-requires.txt b/build/pkgs/sage_sws2rst/install-requires.txt index 2dc1afb9940..6634c1c0ca7 100644 --- a/build/pkgs/sage_sws2rst/install-requires.txt +++ b/build/pkgs/sage_sws2rst/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sage-sws2rst ~= 10.0b5 +sage-sws2rst ~= 10.0b6 diff --git a/build/pkgs/sagelib/install-requires.txt b/build/pkgs/sagelib/install-requires.txt index 4d12f420955..36396cd0389 100644 --- a/build/pkgs/sagelib/install-requires.txt +++ b/build/pkgs/sagelib/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagelib ~= 10.0b5 +sagelib ~= 10.0b6 diff --git a/build/pkgs/sagemath_categories/install-requires.txt b/build/pkgs/sagemath_categories/install-requires.txt index b6fb3fc47c3..eb41d33c0d6 100644 --- a/build/pkgs/sagemath_categories/install-requires.txt +++ b/build/pkgs/sagemath_categories/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-categories ~= 10.0b5 +sagemath-categories ~= 10.0b6 diff --git a/build/pkgs/sagemath_environment/install-requires.txt b/build/pkgs/sagemath_environment/install-requires.txt index 850c4c58136..297e2253b00 100644 --- a/build/pkgs/sagemath_environment/install-requires.txt +++ b/build/pkgs/sagemath_environment/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-environment ~= 10.0b5 +sagemath-environment ~= 10.0b6 diff --git a/build/pkgs/sagemath_objects/install-requires.txt b/build/pkgs/sagemath_objects/install-requires.txt index 0f574aeb17c..72d863dfaae 100644 --- a/build/pkgs/sagemath_objects/install-requires.txt +++ b/build/pkgs/sagemath_objects/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-objects ~= 10.0b5 +sagemath-objects ~= 10.0b6 diff --git a/build/pkgs/sagemath_repl/install-requires.txt b/build/pkgs/sagemath_repl/install-requires.txt index 9a97416aaaa..e7c352f3877 100644 --- a/build/pkgs/sagemath_repl/install-requires.txt +++ b/build/pkgs/sagemath_repl/install-requires.txt @@ -1,2 +1,2 @@ # This file is updated on every release by the sage-update-version script -sagemath-repl ~= 10.0b5 +sagemath-repl ~= 10.0b6 diff --git a/pkgs/sage-conf/VERSION.txt b/pkgs/sage-conf/VERSION.txt index 7ae32525ef1..38f579c02f2 100644 --- a/pkgs/sage-conf/VERSION.txt +++ b/pkgs/sage-conf/VERSION.txt @@ -1 +1 @@ -10.0.beta5 +10.0.beta6 diff --git a/pkgs/sage-conf_pypi/VERSION.txt b/pkgs/sage-conf_pypi/VERSION.txt index 7ae32525ef1..38f579c02f2 100644 --- a/pkgs/sage-conf_pypi/VERSION.txt +++ b/pkgs/sage-conf_pypi/VERSION.txt @@ -1 +1 @@ -10.0.beta5 +10.0.beta6 diff --git a/pkgs/sage-docbuild/VERSION.txt b/pkgs/sage-docbuild/VERSION.txt index 7ae32525ef1..38f579c02f2 100644 --- a/pkgs/sage-docbuild/VERSION.txt +++ b/pkgs/sage-docbuild/VERSION.txt @@ -1 +1 @@ -10.0.beta5 +10.0.beta6 diff --git a/pkgs/sage-setup/VERSION.txt b/pkgs/sage-setup/VERSION.txt index 7ae32525ef1..38f579c02f2 100644 --- a/pkgs/sage-setup/VERSION.txt +++ b/pkgs/sage-setup/VERSION.txt @@ -1 +1 @@ -10.0.beta5 +10.0.beta6 diff --git a/pkgs/sage-sws2rst/VERSION.txt b/pkgs/sage-sws2rst/VERSION.txt index 7ae32525ef1..38f579c02f2 100644 --- a/pkgs/sage-sws2rst/VERSION.txt +++ b/pkgs/sage-sws2rst/VERSION.txt @@ -1 +1 @@ -10.0.beta5 +10.0.beta6 diff --git a/pkgs/sagemath-categories/VERSION.txt b/pkgs/sagemath-categories/VERSION.txt index 7ae32525ef1..38f579c02f2 100644 --- a/pkgs/sagemath-categories/VERSION.txt +++ b/pkgs/sagemath-categories/VERSION.txt @@ -1 +1 @@ -10.0.beta5 +10.0.beta6 diff --git a/pkgs/sagemath-environment/VERSION.txt b/pkgs/sagemath-environment/VERSION.txt index 7ae32525ef1..38f579c02f2 100644 --- a/pkgs/sagemath-environment/VERSION.txt +++ b/pkgs/sagemath-environment/VERSION.txt @@ -1 +1 @@ -10.0.beta5 +10.0.beta6 diff --git a/pkgs/sagemath-objects/VERSION.txt b/pkgs/sagemath-objects/VERSION.txt index 7ae32525ef1..38f579c02f2 100644 --- a/pkgs/sagemath-objects/VERSION.txt +++ b/pkgs/sagemath-objects/VERSION.txt @@ -1 +1 @@ -10.0.beta5 +10.0.beta6 diff --git a/pkgs/sagemath-repl/VERSION.txt b/pkgs/sagemath-repl/VERSION.txt index 7ae32525ef1..38f579c02f2 100644 --- a/pkgs/sagemath-repl/VERSION.txt +++ b/pkgs/sagemath-repl/VERSION.txt @@ -1 +1 @@ -10.0.beta5 +10.0.beta6 diff --git a/src/VERSION.txt b/src/VERSION.txt index 7ae32525ef1..38f579c02f2 100644 --- a/src/VERSION.txt +++ b/src/VERSION.txt @@ -1 +1 @@ -10.0.beta5 +10.0.beta6 diff --git a/src/bin/sage-version.sh b/src/bin/sage-version.sh index c2565a79820..64eaffed74b 100644 --- a/src/bin/sage-version.sh +++ b/src/bin/sage-version.sh @@ -4,6 +4,6 @@ # which stops "setup.py develop" from rewriting it as a Python file. : # This file is auto-generated by the sage-update-version script, do not edit! -SAGE_VERSION='10.0.beta5' -SAGE_RELEASE_DATE='2023-03-19' -SAGE_VERSION_BANNER='SageMath version 10.0.beta5, Release Date: 2023-03-19' +SAGE_VERSION='10.0.beta6' +SAGE_RELEASE_DATE='2023-03-26' +SAGE_VERSION_BANNER='SageMath version 10.0.beta6, Release Date: 2023-03-26' diff --git a/src/sage/version.py b/src/sage/version.py index cf1395381a9..fa0332b7c5b 100644 --- a/src/sage/version.py +++ b/src/sage/version.py @@ -1,5 +1,5 @@ # Sage version information for Python scripts # This file is auto-generated by the sage-update-version script, do not edit! -version = '10.0.beta5' -date = '2023-03-19' -banner = 'SageMath version 10.0.beta5, Release Date: 2023-03-19' +version = '10.0.beta6' +date = '2023-03-26' +banner = 'SageMath version 10.0.beta6, Release Date: 2023-03-26' From 4fc560b7a977dbf889d657159fcb2fb30eef60f4 Mon Sep 17 00:00:00 2001 From: Martin Rubey Date: Sun, 26 Mar 2023 22:41:23 +0200 Subject: [PATCH 248/249] fix missing backticks --- src/sage/data_structures/stream.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sage/data_structures/stream.py b/src/sage/data_structures/stream.py index 115981fc06b..3b03346f59b 100644 --- a/src/sage/data_structures/stream.py +++ b/src/sage/data_structures/stream.py @@ -122,13 +122,13 @@ class Stream(): If an approximate order or even the true order is known, it must be set after calling ``super().__init__``. - Otherwise, a lazy attribute `_approximate_order` has to be + Otherwise, a lazy attribute ``_approximate_order`` has to be defined. Any initialization code depending on the approximate orders of input streams can be put into this definition. However, keep in mind that (trivially) this initialization - code is not executed if `_approximate_order` is set to a + code is not executed if ``_approximate_order`` is set to a value before it is accessed. """ From 2adc1b96a9247667c8fa3ebb2ef9121eed700d81 Mon Sep 17 00:00:00 2001 From: Travis Scrimshaw Date: Tue, 28 Mar 2023 17:49:30 +0900 Subject: [PATCH 249/249] Initial implementation of key tableaux crystals. --- src/sage/combinat/crystals/key_crystals.py | 547 +++++++++++++++++++++ 1 file changed, 547 insertions(+) create mode 100644 src/sage/combinat/crystals/key_crystals.py diff --git a/src/sage/combinat/crystals/key_crystals.py b/src/sage/combinat/crystals/key_crystals.py new file mode 100644 index 00000000000..6d3eac4740d --- /dev/null +++ b/src/sage/combinat/crystals/key_crystals.py @@ -0,0 +1,547 @@ +r""" +Crystals of Key Tableaux + +AUTHORS: + +- Travis Scrimshaw: Initial version +""" + +# **************************************************************************** +# Copyright (C) 2023 Travis Scrimshaw +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# https://www.gnu.org/licenses/ +# **************************************************************************** + +from sage.combinat.root_system.cartan_type import CartanType +from sage.combinat.crystals.tensor_product import CrystalOfTableaux +from sage.categories.highest_weight_crystals import HighestWeightCrystals +from sage.structure.parent import Parent +from sage.structure.unique_representation import UniqueRepresentation +from sage.structure.list_clone import ClonableArray +from sage.rings.integer_ring import ZZ + +from sage.misc.lazy_attribute import lazy_attribute +from sage.misc.cachefunc import cached_method +from collections.abc import Sequence + +class KeyTableau(ClonableArray): + r""" + A key tableau. + + For more information, see + :class:`~sage.combinat.crystals.key_crystals.KeyTableaux`. + """ + def __init__(self, parent, data, check=True): + r""" + EXAMPLES:: + + sage: Y = crystals.infinity.GeneralizedYoungWalls(2) + sage: mg = Y.module_generators[0] + sage: TestSuite(mg).run() + """ + if check: + data = [tuple(row) for row in data] + ClonableArray.__init__(self, parent, data, check=check) + + def check(self): + if list(self) not in self.parent(): + raise ValueError("not a key tableau") + + def _repr_(self): + r""" + EXAMPLES:: + """ + return repr([list(row) for row in self]) + + def _repr_diagram(self): + r""" + Return a string representation of the diagram of ``self``. + + EXAMPLES:: + """ + if not self: + return '0' + ret = "" + width = max(len(repr(val)) for row in self for val in row) + base = f"{{:^{width}}}" + return "\n".join("|" + " ".join(base.format(val) for val in row) + for row in reversed(self)) + + def _latex_(self): + r""" + Return a latex representation of ``self``. + """ + if not self: + return "{\\emptyset}" + from sage.combinat.output import tex_from_array + return tex_from_array(self) + + def _ascii_art_(self): + r""" + Return an ascii art representation of ``self``. + + EXAMPLES:: + """ + from sage.typeset.ascii_art import AsciiArt + return AsciiArt(self._repr_diagram().splitlines()) + + def _unicode_art_(self): + """ + Return a unicode art representation of ``self``. + """ + from sage.typeset.unicode_art import UnicodeArt + if not self.data: + return UnicodeArt(["0"]) + + from sage.combinat.output import ascii_art_table + import unicodedata + v = unicodedata.lookup('BOX DRAWINGS LIGHT VERTICAL') + vl = unicodedata.lookup('BOX DRAWINGS LIGHT VERTICAL AND LEFT') + table = [[None]*(self.cols-len(row)) + row for row in reversed(self)] + ret = [] + for i,row in enumerate(ascii_art_table(table, use_unicode=True).splitlines()): + if row[-1] == " ": + if i % 2 == 0: + ret.append(row[:-1] + vl) + else: + ret.append(row[:-1] + v) + else: + ret.append(row) + return UnicodeArt(ret) + + def pp(self): + r""" + Pretty print ``self``. + """ + print(self._repr_diagram()) + + def _signature_data(self, i): + """ + Return data for the signature rule. + + We cancel `-+` pairs (in that order) to compute the ``i``-signature + and return the relevant data. We replace `i` with `+` and + `i + 1` with a `-`. + + OUTPUT: + + A tuple consisting of the following: + + - the column of the rightmost unpaired `+` (``None`` if does not exist) + - the column of the leftmost unpaired `-` (``None`` if does not exist) + - the number of unpaired `+` + - the number of unpaired `-` + """ + P = self.parent() + num_plus = 0 + pos_plus = [] + num_minus = 0 + pos_minus = None + for width in range(P._width): + for ind, row in enumerate(self): + if len(row) <= width: + continue + if row[width] == i: + pos_plus.append((ind, width)) + elif row[width] == i + 1: + if pos_plus: + pos_plus.pop() + else: + num_minus += 1 + pos_minus = (ind, width) + num_plus = len(pos_plus) + if pos_plus: + pos_plus = pos_plus[0] + else: + pos_plus = None + return (pos_plus, pos_minus, num_plus, num_minus) + + def e(self, i, by_tableau=False): + r""" + Return the application of the Kashiwara raising operator + `e_i` on ``self``. + + EXAMPLES:: + """ + P = self.parent() + n = P._cartan_type.rank() + if by_tableau: + ret = self.to_tableau().f(n+1-i) + if ret is None: + return None + return P.from_tableau(ret) + + pm = self._signature_data(i)[1] + if pm is None: + return None + data = [list(row) for row in self] + P = self.parent() + ind = pm[0] # the row index containing the unpaired i+1 + row = data[ind] + upper = data[ind+1:] + for j in range(pm[1], len(row)): + if row[j] != i + 1: + break + row[j] = i + for r2 in upper: + if len(r2) > j and r2[j] == i: + r2[j] = i + 1 + data = tuple(map(tuple, data)) + return P.element_class(P, data, check=False) + +# e_1 +# 211 +# 3322 + +# 211 +# 3322 +# `\phi`:: +# 1144 +# 455 +# f_4 +# 1144 +# 555 + +# 111 +# 3322 + +# 111 +# 3322 + +# 122 +# 3311 + + def f(self, i, by_tableau=False): + r""" + Return the application of the Kashiwara lowering operator + `f_i` on ``self``. + + EXAMPLES:: + """ + P = self.parent() + n = P._cartan_type.rank() + if by_tableau: + ret = self.to_tableau().e(n+1-i) + if ret is None: + return None + return P.from_tableau(ret) + + pp = self._signature_data(i)[0] + if pp is None: + return None + data = [list(row) for row in self] + P = self.parent() + ind = pp[0] # the row index containing the unpaired i + row = data[ind] + upper = data[ind+1:] + for j in range(pp[1], -1, -1): + if row[j] != i: + break + row[j] = i + 1 + for r2 in upper: + if len(r2) > j and r2[j] == i + 1: + r2[j] = i + if not P._check_content(data): + return None + data = tuple(map(tuple, data)) + return P.element_class(P, data, check=False) + + +# f_1 +# 1 +# 55511 +# 422 + +# 1 +# 422 +# 55511 +# Applying `\phi`:: +# 11155 +# 244 +# 5 +# e_4 +# 11145 +# 244 +# 5 + +# 1 +# 422 +# 55521 + +# 1 +# 55521 +# 422 + + def weight(self, root_lattice=False): + r""" + Return the weight of ``self``. + + INPUT: + + - ``root_lattice`` -- boolean determining whether weight should appear + in root lattice or not in extended affine weight lattice. + + EXAMPLES:: + + sage: x = crystals.infinity.GeneralizedYoungWalls(3)([[],[1,0,3,2],[2,1],[3,2,1,0,3,2],[],[],[2]]) + sage: x.weight() + 2*Lambda[0] + Lambda[1] - 4*Lambda[2] + Lambda[3] - 2*delta + sage: x.weight(root_lattice=True) + -2*alpha[0] - 3*alpha[1] - 5*alpha[2] - 3*alpha[3] + """ + P = self.parent().weight_lattice_realization() + wt = [P.base_ring().zero()] * len(L.basis()) + for row in self: + for val in row: + wt[val-1] += 1 + return L.from_vector(wt, coerce=False) + + def epsilon(self, i): + r""" + Return the number of `i`-colored arrows in the `i`-string above + ``self`` in the crystal graph. + + EXAMPLES:: + + sage: y = crystals.infinity.GeneralizedYoungWalls(3)([[],[1,0,3,2],[2,1],[3,2,1,0,3,2],[],[],[2]]) + sage: y.epsilon(1) + 0 + sage: y.epsilon(2) + 3 + sage: y.epsilon(0) + 0 + """ + n = self.parent()._cartan_type.rank() + return self.to_tableau().phi(n+1-i) + return ZZ(self._signature_data(i)[3]) # number of -'s + + def phi(self, i): + r""" + Return the value `\varepsilon_i(Y) + \langle h_i, + \mathrm{wt}(Y)\rangle`, where `h_i` is the `i`-th simple + coroot and `Y` is ``self``. + + EXAMPLES:: + + sage: y = crystals.infinity.GeneralizedYoungWalls(3)([[0],[1,0,3,2],[2,1],[3,2,1,0,3,2],[0],[],[2]]) + sage: y.phi(1) + 3 + sage: y.phi(2) + -1 + """ + n = self.parent()._cartan_type.rank() + return self.to_tableau().epsilon(n+1-i) + return ZZ(self._signature_data(i)[2]) # number of +'s + + def to_tableau(self): + """ + Return ``self`` as an element of the crystal of semistandard + Young tableaux of type `A_n`. + """ + P = self.parent() + C = P._ssyt + n = P._cartan_type.rank() + ret = sum((sorted((n + 2 - row[i] for row in self if len(row) > i), reverse=True) + for i in range(P._width)), []) + return C(list=ret) + + +class KeyTableaux(UniqueRepresentation, Parent): + r""" + Key tableaux + """ + @staticmethod + def __classcall_private__(cls, shape, n=None, category=None): + r""" + Normalize input to ensure a unique representation. + + INPUT: + + - ``shape`` -- the shape + - ``n`` -- (optional) type `A_n` + + EXAMPLES:: + + sage: Yinf = crystals.infinity.GeneralizedYoungWalls(3) + sage: Yinf2 = crystals.infinity.GeneralizedYoungWalls(int(3)) + sage: Yinf is Yinf2 + True + """ + shape = list(shape) + if n is None: + n = len(shape) - 1 + while shape and not shape[-1]: # standardize by removing trailing 0's + shape.pop() + shape = tuple(shape) + if n < len(shape) - 1: + raise ValueError(f"the rank must be at least {len(shape)-1}") + return super().__classcall__(cls, shape, n, category) + + def __init__(self, shape, n, category): + r""" + EXAMPLES:: + + sage: Yinf = crystals.infinity.GeneralizedYoungWalls(3) + sage: TestSuite(Yinf).run() + """ + self._cartan_type = CartanType(['A', n]) + self._shape = shape + self._width = max(shape, default=0) + self._ssyt = CrystalOfTableaux(self._cartan_type, shape=sorted(shape, reverse=True)) + category = HighestWeightCrystals().Finite().or_subcategory(category) + Parent.__init__(self, category=category) + + Element = KeyTableau + + @lazy_attribute + def module_generators(self): + r""" + Return the highest weight element of ``self``. + + Note that this is not the generator of the corresponding module + of ``self`` as `U_q(\mathfrak{gl}_n)^+`-module (which is instead + :meth:`extremal_module_generator()`). This is for implementation + details in the category of + :class:`~sage.categories.highest_weight_crystals.HighestWeightCrystals` + assuming the ``module_generators`` contains all of the highest weight + elements and those generate ``self`` under `f_i`. + """ + gen = self.extremal_module_generator() + return (gen.to_highest_weight()[0],) + + @cached_method + def extremal_module_generator(self): + """ + Return the generator of ``self``, considered as an extremal weight + module. + """ + data = tuple([(i,)*ell for i, ell in enumerate(self._shape, start=1)]) + return self.element_class(self, data, check=False) + + def _element_constructor_(self, data, check=True): + r""" + Construct an element of ``self`` from ``data``. + + INPUT: + + - ``data`` -- a multilist + + EXAMPLES:: + + sage: GYW = crystals.infinity.GeneralizedYoungWalls(2) + sage: y = GYW([[],[1,0],[2,1]]) # indirect doctest + sage: y + [[], [1, 0], [2, 1]] + """ + return self.element_class(self, data, check=check) + + def _repr_(self): + r""" + EXAMPLES:: + + sage: Y = crystals.infinity.GeneralizedYoungWalls(4) + sage: Y + Crystal of generalized Young walls of type ['A', 4, 1] + """ + return "Crystal of key tableaux of type {} and shape {}".format(self._cartan_type, self._shape) + + def __contains__(self, data): + """ + Check if ``data`` is an element of ``self``. + """ + if isinstance(data, self.element_class): + return data.parent() is self + + # Check the shape agrees + if not isinstance(data, Sequence): + return False + if len(self._shape) != len(data): + return False + if any((not isinstance(row, Sequence)) or len(row) != ell + for row, ell in zip(data, self._shape)): + return False + + # Check entries in each column are distinct + for i in range(self._width): + col = [row[i] for row in data if len(row) > i] + if len(col) != len(set(col)): + return False + + # Check the other nontrivial content conditions + return self._check_content(data) + + def _check_content(self, data): + """ + Check the content of ``data`` is an element of ``self``, where + we assume that ``data`` is a filling of ``self._shape`` with + with distinct entries in the columns. + """ + # Check rows are weakly decreasing + for row in data: + if any(row[i] < row[i+1] for i in range(len(row)-1)): + return False + + # Check the other condition + for ind, row in enumerate(data): + for ri, k in enumerate(row): + i = max((row[ri] for row in data[ind+1:] if len(row) > ri and row[ri] < k), default=None) + if i is None: + continue + if ri == len(row) - 1 or i >= row[ri+1]: + return False + + # Check the semistandard condition + return all(not row or row[0] <= i for i, row in enumerate(data, start=1)) + + def from_tableau(self, T): + """ + Return the element of ``self`` corresponding to ``T`` if the result + is in ``self`` and ``None`` otherwise. + """ + if isinstance(T, self._ssyt.element_class): + T = T.to_tableau() + + # Special case of the empty tableau + if not T: + if T not in self: + return None + return self.element_class(self, [], check=False) + + data = [[None] * ell for ell in self._shape] + n = self._cartan_type.rank() + 2 + T = ([n - val for val in col] for col in reversed(T.conjugate())) + + for j in range(self._width-1,-1,-1): + col = next(T) + for ind, row in enumerate(data): + if len(row) <= j: + continue + + if len(row) == j + 1: # rightmost entry in the row + row[j] = col.pop() + else: + # Necessarily there is an entry to the right + for i in range(len(col)-1,-1,-1): + if col[i] >= row[j+1]: + row[j] = col.pop(i) + break + + # Check the semistandard condition + if row[j] > ind + 1: + return None + if not col: + break + + assert data in self + data = tuple(map(tuple, data)) + return self.element_class(self, data, check=False) + + def shape(self): + """ + Return the shape of ``self``. + """ + return self._shape \ No newline at end of file