diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 32b993c0..dc8ad3b0 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -32,7 +32,7 @@ jobs: pattern: cibw-* path: dist merge-multiple: true - - name: Generate artifact attestation for sdist and wheel(s) + - name: Generate artifact attestation for sdist and wheels uses: actions/attest-build-provenance@v2 with: subject-path: "dist/*" diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e8ba3ba7..35d25386 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -107,6 +107,7 @@ repos: - nox - numpy - pytest + - mqt.core>=3.0.0b4 # Check for spelling - repo: https://github.com/crate-ci/typos diff --git a/cmake/ExternalDependencies.cmake b/cmake/ExternalDependencies.cmake index bd947950..68104eb4 100644 --- a/cmake/ExternalDependencies.cmake +++ b/cmake/ExternalDependencies.cmake @@ -4,6 +4,19 @@ include(FetchContent) set(FETCH_PACKAGES "") if(BUILD_MQT_QCEC_BINDINGS) + # Manually detect the installed mqt-core package. + execute_process( + COMMAND "${Python_EXECUTABLE}" -m mqt.core --cmake_dir + OUTPUT_STRIP_TRAILING_WHITESPACE + OUTPUT_VARIABLE mqt-core_DIR + ERROR_QUIET) + + # Add the detected directory to the CMake prefix path. + if(mqt-core_DIR) + list(APPEND CMAKE_PREFIX_PATH "${mqt-core_DIR}") + message(STATUS "Found mqt-core package: ${mqt-core_DIR}") + endif() + if(NOT SKBUILD) # Manually detect the installed pybind11 package. execute_process( @@ -20,9 +33,9 @@ if(BUILD_MQT_QCEC_BINDINGS) endif() # cmake-format: off -set(MQT_CORE_VERSION 2.7.1 +set(MQT_CORE_VERSION 3.0.0 CACHE STRING "MQT Core version") -set(MQT_CORE_REV "5c3cb8edf0f43663a8edc7ae77c753926b466802" +set(MQT_CORE_REV "eaedadc689f13eabe8d504e23e0b038f0ddc49af" CACHE STRING "MQT Core identifier (tag, branch or commit hash)") set(MQT_CORE_REPO_OWNER "cda-tum" CACHE STRING "MQT Core repository owner (change when using a fork)") diff --git a/docs/source/library/VerifyCompilation.rst b/docs/source/library/VerifyCompilation.rst index 3dcbe032..5ebd2921 100644 --- a/docs/source/library/VerifyCompilation.rst +++ b/docs/source/library/VerifyCompilation.rst @@ -22,4 +22,5 @@ Compilation Flow Profile Generation QCEC provides dedicated compilation flow profiles for IBM Qiskit which can be used to efficiently verify the results of compilation flow results :cite:p:`burgholzer2020verifyingResultsIBM`. These profiles are generated from IBM Qiskit using the :func:`.generate_profile` method. + .. currentmodule:: mqt.qcec.compilation_flow_profiles .. autofunction:: generate_profile diff --git a/noxfile.py b/noxfile.py index 45c22ffd..2b0ef822 100644 --- a/noxfile.py +++ b/noxfile.py @@ -57,6 +57,11 @@ def _run_tests( "build", "--only-group", "test", + # Build mqt-core from source to work around pybind believing that two + # compiled extensions might not be binary compatible. + # This will be fixed in a new pybind11 release that includes https://github.com/pybind/pybind11/pull/5439. + "--no-binary-package", + "mqt-core", *install_args, env=env, ) @@ -119,6 +124,11 @@ def docs(session: nox.Session) -> None: "build", "--only-group", "docs", + # Build mqt-core from source to work around pybind believing that two + # compiled extensions might not be binary compatible. + # This will be fixed in a new pybind11 release that includes https://github.com/pybind/pybind11/pull/5439. + "--no-binary-package", + "mqt-core", env=env, ) diff --git a/pyproject.toml b/pyproject.toml index aa6fa8c2..6caa94c3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,6 +3,7 @@ requires = [ "scikit-build-core>=0.10.7", "setuptools-scm>=8.1", "pybind11>=2.13.6", + "mqt.core>=3.0.0b4", ] build-backend = "scikit_build_core.build" @@ -39,12 +40,19 @@ classifiers = [ ] requires-python = ">=3.9" dependencies = [ + "mqt.core>=3.0.0b4", "importlib_resources>=5.0; python_version < '3.10'", "typing_extensions>=4.2; python_version < '3.11'", # used for typing.Unpack - "qiskit[qasm3-import]>=1.0.0", + "numpy>=2.1; python_version >= '3.13'", + "numpy>=1.26; python_version >= '3.12'", + "numpy>=1.24; python_version >= '3.11'", + "numpy>=1.22", ] dynamic = ["version"] +[project.optional-dependencies] +qiskit = ["qiskit[qasm3-import]>=1.0.0"] + [project.urls] Homepage = "https://github.com/cda-tum/mqt-qcec" Documentation = "https://mqt.readthedocs.io/projects/qcec" @@ -136,6 +144,8 @@ report.exclude_also = [ 'if TYPE_CHECKING:', 'raise AssertionError', 'raise NotImplementedError', + 'def __dir__()', # Ignore __dir__ method that exists mainly for better IDE support + '@overload' # Overloads are only for static typing ] @@ -275,15 +285,34 @@ manylinux-aarch64-image = "manylinux_2_28" manylinux-ppc64le-image = "manylinux_2_28" manylinux-s390x-image = "manylinux_2_28" +# The mqt-core shared libraries are provided by the mqt-core Python package. +# They should not be vendorized into the mqt-qcec wheel. This requires +# excluding the shared libraries from the repair process. + [tool.cibuildwheel.linux] environment = { DEPLOY="ON" } +# The SOVERSION needs to be updated when the shared libraries are updated. +repair-wheel-command = """auditwheel repair -w {dest_dir} {wheel} \ +--exclude libmqt-core-ir.so.3.0 \ +--exclude libmqt-core-qasm.so.3.0 \ +--exclude libmqt-core-circuit-optimizer.so.3.0 \ +--exclude libmqt-core-algorithms.so.3.0 \ +--exclude libmqt-core-dd.so.3.0 \ +--exclude libmqt-core-zx.so.3.0""" [tool.cibuildwheel.macos] environment = { MACOSX_DEPLOYMENT_TARGET = "10.15" } +repair-wheel-command = "delocate-wheel --require-archs {delocate_archs} -w {dest_dir} -v {wheel} --ignore-missing-dependencies" [tool.cibuildwheel.windows] -before-build = "pip install delvewheel>=1.7.3" -repair-wheel-command = "delvewheel repair -v -w {dest_dir} {wheel} --namespace-pkg mqt" +before-build = "uv pip install delvewheel>=1.9.0" +repair-wheel-command = """delvewheel repair -w {dest_dir} {wheel} --namespace-pkg mqt \ +--exclude mqt-core-ir.dll \ +--exclude mqt-core-qasm.dll \ +--exclude mqt-core-circuit-optimizer.dll \ +--exclude mqt-core-algorithms.dll \ +--exclude mqt-core-dd.dll \ +--exclude mqt-core-zx.dll""" environment = { CMAKE_ARGS = "-T ClangCL" } [[tool.cibuildwheel.overrides]] @@ -295,6 +324,7 @@ environment = { MACOSX_DEPLOYMENT_TARGET = "11.0" } required-version = ">=0.5.20" reinstall-package = ["mqt.qcec"] + [tool.uv.sources] mqt-qcec = { workspace = true } @@ -303,10 +333,11 @@ build = [ "pybind11>=2.13.6", "scikit-build-core>=0.10.7", "setuptools-scm>=8.1", + "mqt-core>=3.0.0b4", ] docs = [ "furo>=2024.8.6", - "qiskit[visualization]>=1.0.0", + "qiskit[qasm3-import,visualization]>=1.0.0", "setuptools-scm>=8.1", "sphinx-autoapi>=3.4.0", "sphinx-copybutton>=0.5.2", @@ -321,6 +352,7 @@ docs = [ test = [ "pytest>=8.3.4", "pytest-cov>=6", + "qiskit[qasm3-import]>=1.0.0", ] dev = [ {include-group = "build"}, diff --git a/src/mqt/qcec/__init__.py b/src/mqt/qcec/__init__.py index fd879cdb..bbcd2a23 100644 --- a/src/mqt/qcec/__init__.py +++ b/src/mqt/qcec/__init__.py @@ -6,8 +6,25 @@ from __future__ import annotations +import sys + +# under Windows, make sure to add the appropriate DLL directory to the PATH +if sys.platform == "win32": + + def _dll_patch() -> None: + """Add the DLL directory to the PATH.""" + import os + import sysconfig + from pathlib import Path + + bin_dir = Path(sysconfig.get_paths()["purelib"]) / "mqt" / "core" / "bin" + os.add_dll_directory(str(bin_dir)) + + _dll_patch() + del _dll_patch + from ._version import version as __version__ -from .compilation_flow_profiles import AncillaMode, generate_profile +from .compilation_flow_profiles import AncillaMode from .pyqcec import ( ApplicationScheme, Configuration, @@ -26,7 +43,6 @@ "EquivalenceCriterion", "StateType", "__version__", - "generate_profile", "verify", "verify_compilation", ] diff --git a/src/mqt/qcec/_compat/optional.py b/src/mqt/qcec/_compat/optional.py new file mode 100644 index 00000000..6e381d14 --- /dev/null +++ b/src/mqt/qcec/_compat/optional.py @@ -0,0 +1,101 @@ +"""Optional dependency tester. + +Inspired by Qiskit's LazyDependencyManager +https://github.com/Qiskit/qiskit/blob/f13673b05edf98263f80a174d2e13a118b4acda7/qiskit/utils/lazy_tester.py#L44 +""" + +from __future__ import annotations + +import contextlib +import importlib +import typing +import warnings + +__all__ = ["HAS_QISKIT", "OptionalDependencyTester"] + + +def __dir__() -> list[str]: + return __all__ + + +class OptionalDependencyTester: + """A manager for optional dependencies to assert their availability. + + This class is used to lazily test for the availability of optional dependencies. + It can be used in Boolean contexts to check if the dependency is available. + """ + + def __init__(self, module: str, *, msg: str | None = None) -> None: + """Construct a new optional dependency tester. + + Args: + module: the name of the module to test for. + msg: an extra message to include in the error raised if this is required. + """ + self._module = module + self._bool: bool | None = None + self._msg = msg + + def _is_available(self) -> bool: + """Test the availability of the module. + + Returns: + ``True`` if the module is available, ``False`` otherwise. + """ + try: + importlib.import_module(self._module) + except ImportError as exc: # pragma: no cover + warnings.warn( + f"Module '{self._module}' failed to import with: {exc!r}", + category=UserWarning, + stacklevel=2, + ) + return False + else: + return True + + def __bool__(self) -> bool: + """Check if the dependency is available. + + Returns: + ``True`` if the dependency is available, ``False`` otherwise. + """ + if self._bool is None: + self._bool = self._is_available() + return self._bool + + def require_now(self, feature: str) -> None: + """Eagerly attempt to import the dependency and raise an exception if it cannot be imported. + + Args: + feature: the feature that is requiring this dependency. + + Raises: + ImportError: if the dependency cannot be imported. + """ + if self: + return + message = f"The '{self._module}' library is required to {feature}." + if self._msg: + message += f" {self._msg}." + raise ImportError(message) + + @contextlib.contextmanager + def disable_locally(self) -> typing.Generator[None, None, None]: + """Create a context during which the value of the dependency manager will be ``False``. + + Yields: + None + """ + previous = self._bool + self._bool = False + try: + yield + finally: + self._bool = previous + + +HAS_QISKIT = OptionalDependencyTester( + "qiskit", + msg="Please install the `mqt.qcec[qiskit]` extra or a compatible version of Qiskit to use functionality related to its functionality.", +) diff --git a/src/mqt/qcec/compilation_flow_profiles.py b/src/mqt/qcec/compilation_flow_profiles.py index 911f552c..f85b2033 100644 --- a/src/mqt/qcec/compilation_flow_profiles.py +++ b/src/mqt/qcec/compilation_flow_profiles.py @@ -7,11 +7,22 @@ from typing import TYPE_CHECKING, Any import numpy as np -from qiskit import QuantumCircuit, transpile -from qiskit import __version__ as qiskit_version + +from ._compat.optional import HAS_QISKIT if TYPE_CHECKING: from numpy.typing import NDArray + from qiskit.circuit import QuantumCircuit + +__all__ = [ + "AncillaMode", + "generate_profile", + "generate_profile_name", +] + + +def __dir__() -> list[str]: + return __all__ @unique @@ -154,8 +165,10 @@ def __str__(self) -> str: multi_controlled_gates_v_chain = [mcx_v_chain] -def create_general_gate(qubits: int, params: int, controls: int, identifier: str) -> QuantumCircuit: +def __create_general_gate(qubits: int, params: int, controls: int, identifier: str) -> QuantumCircuit: """Create a ``QuantumCircuit`` containing a single gate ``identifier`` with the given number of ``qubits``, ``params``, and ``controls``.""" + from qiskit.circuit import QuantumCircuit + required_qubits = qubits + controls qc = QuantumCircuit(required_qubits) gate_identifier = "c" * controls + identifier @@ -167,7 +180,7 @@ def create_general_gate(qubits: int, params: int, controls: int, identifier: str return qc -def create_multi_controlled_gate( +def __create_multi_controlled_gate( qubits: int, params: int, controls: int, @@ -176,6 +189,8 @@ def create_multi_controlled_gate( identifier: str, ) -> QuantumCircuit: """Create a ``QuantumCircuit`` containing a single multi-controlled gate ``identifier`` with the given number of ``qubits``, ``params``, and ``controls`` using ``ancilla_qubits`` ancilla qubits and the given ancilla ``mode``.""" + from qiskit.circuit import QuantumCircuit + required_qubits = qubits + controls # special handling for v-chain mode which is indicated by the ancilla_qubits being None @@ -208,12 +223,14 @@ def create_multi_controlled_gate( return qc -def compute_cost( +def __compute_cost( qc: QuantumCircuit, basis_gates: list[str], optimization_level: int = 1, ) -> int: """Compute the cost of a circuit by transpiling the circuit to a given ``basis_gates`` gate set and a certain ``optimization_level``.""" + from qiskit import transpile + transpiled_circuit = transpile( qc, basis_gates=basis_gates, optimization_level=optimization_level, seed_transpiler=12345 ) @@ -228,7 +245,7 @@ class GateType(Enum): MULTI_CONTROLLED = 2 -def create_gate_profile_data( +def __create_gate_profile_data( gate_collection: list[dict[str, Any]], gate_type: GateType, basis_gates: list[str] | None = None, @@ -254,9 +271,9 @@ def create_gate_profile_data( qc = None # create the gate if gate_type == GateType.GENERAL: - qc = create_general_gate(qubits, params, control, gate) + qc = __create_general_gate(qubits, params, control, gate) elif gate_type == GateType.MULTI_CONTROLLED: - qc = create_multi_controlled_gate( + qc = __create_multi_controlled_gate( qubits, params, control, @@ -265,14 +282,14 @@ def create_gate_profile_data( gate, ) # compute the cost - cost = compute_cost(qc, basis_gates, optimization_level) + cost = __compute_cost(qc, basis_gates, optimization_level) # add the cost to the profile data profile_data[gate, control] = cost return profile_data -def add_special_case_data( +def __add_special_case_data( profile_data: dict[tuple[str, int], int], special_cases: dict[str, Any] | None = None, ) -> None: @@ -292,19 +309,17 @@ def add_special_case_data( profile_data.setdefault((gate, nc), cost) -def generate_profile_name(optimization_level: int = 1, mode: AncillaMode = AncillaMode.NO_ANCILLA) -> str: - """Generate a profile name based on the given optimization level and ancilla mode.""" - return "qiskit_O" + str(optimization_level) + "_" + str(mode) + ".profile" - - -def write_profile_data_to_file(profile_data: dict[tuple[str, int], int], filename: Path) -> None: +def __write_profile_data_to_file(profile_data: dict[tuple[str, int], int], filename: Path) -> None: """Write the profile data to a file.""" + HAS_QISKIT.require_now("generate compilation flow profiles") + from qiskit import __version__ as qiskit_version + with Path(filename).open("w+", encoding="utf-8") as f: f.write(f"# {filename}, Qiskit version: {qiskit_version}\n") f.writelines(f"{gate} {controls} {cost}\n" for (gate, controls), cost in profile_data.items()) -def check_recurrence(seq: list[int], order: int = 2) -> list[int] | None: +def __check_recurrence(seq: list[int], order: int = 2) -> list[int] | None: """Determine a recurrence relation with a given ``order`` in ``sequence`` and return the corresponding coefficients or ``None`` if no relation was determined.""" if len(seq) < (2 * order + 1): return None @@ -325,7 +340,7 @@ def check_recurrence(seq: list[int], order: int = 2) -> list[int] | None: return list(coefficients) -def find_continuation( +def __find_continuation( profile_data: dict[tuple[str, int], int], gate: str, cutoff: int = 5, @@ -345,7 +360,7 @@ def find_continuation( coeffs = None for order in range(1, max_order + 1): - coeffs = check_recurrence(sequence, order) + coeffs = __check_recurrence(sequence, order) if coeffs is not None: break @@ -371,6 +386,11 @@ def find_continuation( default_profile_path = Path(__file__).resolve().parent.joinpath("profiles") +def generate_profile_name(optimization_level: int = 1, mode: AncillaMode = AncillaMode.NO_ANCILLA) -> str: + """Generate a profile name based on the given optimization level and ancilla mode.""" + return "qiskit_O" + str(optimization_level) + "_" + str(mode) + ".profile" + + def generate_profile( optimization_level: int = 1, mode: AncillaMode = AncillaMode.NO_ANCILLA, @@ -392,34 +412,34 @@ def generate_profile( filepath = default_profile_path # generate general profile data - profile = create_gate_profile_data(general_gates, GateType.GENERAL, optimization_level=optimization_level) + profile = __create_gate_profile_data(general_gates, GateType.GENERAL, optimization_level=optimization_level) # add multi-controlled gates profile.update( - create_gate_profile_data( + __create_gate_profile_data( multi_controlled_gates, GateType.MULTI_CONTROLLED, optimization_level=optimization_level, ) ) - find_continuation(profile, gate="p", max_control=max_controls) + __find_continuation(profile, gate="p", max_control=max_controls) gate_collection = gate_collection_for_mode[mode] # add multi-controlled gates with specific mode profile.update( - create_gate_profile_data( + __create_gate_profile_data( gate_collection, GateType.MULTI_CONTROLLED, optimization_level=optimization_level, ) ) - find_continuation(profile, gate="x", max_control=max_controls) + __find_continuation(profile, gate="x", max_control=max_controls) # add special case data - add_special_case_data(profile) + __add_special_case_data(profile) # write profile data to file filename = generate_profile_name(optimization_level=optimization_level, mode=mode) filepath = filepath.joinpath(filename) - write_profile_data_to_file(profile, filepath) + __write_profile_data_to_file(profile, filepath) diff --git a/src/mqt/qcec/configuration.py b/src/mqt/qcec/configuration.py index 54884455..0f051265 100644 --- a/src/mqt/qcec/configuration.py +++ b/src/mqt/qcec/configuration.py @@ -8,6 +8,12 @@ from . import ApplicationScheme, Configuration, StateType from .literals import ApplicationSchemeName, StateTypeName +__all__ = ["ConfigurationOptions", "augment_config_from_kwargs"] + + +def __dir__() -> list[str]: + return __all__ + class ConfigurationOptions(TypedDict, total=False): """A dictionary of configuration options. diff --git a/src/mqt/qcec/literals.py b/src/mqt/qcec/literals.py index 551b0253..0c38cb79 100644 --- a/src/mqt/qcec/literals.py +++ b/src/mqt/qcec/literals.py @@ -4,6 +4,17 @@ from typing import Literal +__all__ = [ + "ApplicationSchemeName", + "EquivalenceCriterionName", + "StateTypeName", +] + + +def __dir__() -> list[str]: + return __all__ + + ApplicationSchemeName = Literal["sequential", "one_to_one", "proportional", "lookahead", "gate_cost"] EquivalenceCriterionName = Literal[ "no_information", diff --git a/src/mqt/qcec/parameterized.py b/src/mqt/qcec/parameterized.py index 211c2927..9d2d8502 100644 --- a/src/mqt/qcec/parameterized.py +++ b/src/mqt/qcec/parameterized.py @@ -4,20 +4,31 @@ import time from itertools import chain -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, cast + +import numpy as np + +from mqt.core.ir.symbolic import Expression + +from . import Configuration, EquivalenceCheckingManager, EquivalenceCriterion if TYPE_CHECKING: from numpy.typing import NDArray - from qiskit import QuantumCircuit -import numpy as np -from qiskit.circuit import Parameter, ParameterExpression + from mqt.core.ir import QuantumComputation + from mqt.core.ir.operations import SymbolicOperation + from mqt.core.ir.symbolic import Variable -from . import Configuration, EquivalenceCheckingManager, EquivalenceCriterion +__all__ = [ + "check_instantiated", + "check_instantiated_random", + "check_parameterized", + "check_parameterized_zx", +] -def __is_parameterized(qc: QuantumCircuit | str) -> bool: - return not isinstance(qc, str) and qc.parameters +def __dir__() -> list[str]: + return __all__ def __adjust_timeout(curr_timeout: float, res: EquivalenceCheckingManager.Results | float) -> float: @@ -30,57 +41,52 @@ def __adjust_timeout(curr_timeout: float, res: EquivalenceCheckingManager.Result def check_parameterized_zx( - circ1: QuantumCircuit | str, circ2: QuantumCircuit | str, configuration: Configuration + circ1: QuantumComputation, circ2: QuantumComputation, configuration: Configuration ) -> EquivalenceCheckingManager.Results: """Check circuits for equivalence with the ZX-calculus.""" ecm = EquivalenceCheckingManager(circ1, circ2, configuration) ecm.disable_all_checkers() - ecm.set_zx_checker(True) + ecm.set_zx_checker() ecm.run() return ecm.get_results() -def extract_params( - circ1: QuantumCircuit, circ2: QuantumCircuit -) -> tuple[list[Parameter], NDArray[np.float64], NDArray[np.float64]]: +def __extract_params( + circ1: QuantumComputation, circ2: QuantumComputation +) -> tuple[list[Variable], NDArray[np.float64], NDArray[np.float64]]: """Extract parameters and equations of parameterized circuits.""" - p1 = set(circ1.parameters) - p2 = set(circ2.parameters) - - p = p1.union(p2) - - n_params = len(p) - exprs = list(chain(*[instr.operation.params for instr in circ1.data + circ2.data if instr.operation.params != []])) - - def is_expr(x: float | Parameter | ParameterExpression) -> bool: - return isinstance(x, (Parameter, ParameterExpression)) - - symb_params: list[Parameter | ParameterExpression] = [param for param in p if is_expr(param)] - symb_params.sort(key=lambda param: param.name) - symb_exprs = list(filter(is_expr, exprs)) - - offsets = np.zeros(len(symb_exprs)) - for row, expr in enumerate(symb_exprs): - zero_map = dict.fromkeys(expr.parameters, 0) - offsets[row] = -float(expr.bind(zero_map)) - - equs = np.zeros((len(symb_exprs), n_params)) - - for col, param in enumerate(symb_params): - for row, expr in enumerate(symb_exprs): - one_map = dict.fromkeys(expr.parameters, 0) - if param in expr.parameters: - one_map[param] = 1 - val = float((expr + offsets[row]).bind(one_map)) - equs[row, col] = val - - return symb_params, equs, offsets + symbolic_params = list(circ1.variables.union(circ2.variables)) + num_symbolic_params = len(symbolic_params) + + symbolic_expressions = [ + param + for op in chain(circ1, circ2) + if op.is_symbolic_operation() + for param in cast("SymbolicOperation", op).get_parameters() + if isinstance(param, Expression) and not param.is_constant() + ] + num_symbolic_expressions = len(symbolic_expressions) + + offsets = np.zeros(num_symbolic_expressions) + for row, expr in enumerate(symbolic_expressions): + zero_map = dict.fromkeys(expr.variables, 0.0) + offsets[row] = -float(expr.evaluate(zero_map)) + + equations = np.zeros((num_symbolic_expressions, num_symbolic_params)) + for col, param in enumerate(symbolic_params): + for row, expr in enumerate(symbolic_expressions): + one_map = dict.fromkeys(expr.variables, 0.0) + if param in expr.variables: + one_map[param] = 1.0 + equations[row, col] = (expr + offsets[row]).evaluate(one_map) + + return symbolic_params, equations, offsets def check_instantiated( - circ1: QuantumCircuit, circ2: QuantumCircuit, configuration: Configuration + circ1: QuantumComputation, circ2: QuantumComputation, configuration: Configuration ) -> EquivalenceCheckingManager.Results: """Check circuits for equivalence with DD equivalence checker.""" ecm = EquivalenceCheckingManager(circ1, circ2, configuration) @@ -92,7 +98,7 @@ def check_instantiated( def check_instantiated_random( - circ1: QuantumCircuit, circ2: QuantumCircuit, params: list[Parameter], configuration: Configuration + circ1: QuantumComputation, circ2: QuantumComputation, params: list[Variable], configuration: Configuration ) -> EquivalenceCheckingManager.Results: """Check whether circuits are equivalent for random instantiation of symbolic parameters.""" param_map = {} @@ -100,14 +106,14 @@ def check_instantiated_random( for p in params: param_map[p] = rng.random() * 2 * np.pi - circ1_inst = circ1.assign_parameters(param_map) - circ2_inst = circ2.assign_parameters(param_map) + circ1_inst = circ1.instantiate(param_map) + circ2_inst = circ2.instantiate(param_map) return check_instantiated(circ1_inst, circ2_inst, configuration) def check_parameterized( - circ1: QuantumCircuit | str, circ2: QuantumCircuit | str, configuration: Configuration + circ1: QuantumComputation, circ2: QuantumComputation, configuration: Configuration ) -> EquivalenceCheckingManager.Results: """Equivalence checking flow for parameterized circuit.""" total_preprocessing_time = 0.0 @@ -115,99 +121,99 @@ def check_parameterized( total_simulations_started = 0 total_simulations_finished = 0 - def _update_stats(res: EquivalenceCheckingManager.Results) -> None: + def __update_stats(result: EquivalenceCheckingManager.Results) -> None: nonlocal total_preprocessing_time, total_runtime, total_simulations_started, total_simulations_finished - total_preprocessing_time += res.preprocessing_time - total_runtime += res.check_time - total_simulations_started += res.started_simulations - total_simulations_finished += res.performed_simulations + total_preprocessing_time += result.preprocessing_time + total_runtime += result.check_time + total_simulations_started += result.started_simulations + total_simulations_finished += result.performed_simulations - def _write_stats(i: int, res: EquivalenceCheckingManager.Results) -> None: + def __write_stats(instantiation: int, result: EquivalenceCheckingManager.Results) -> None: nonlocal total_preprocessing_time, total_runtime, total_simulations_started, total_simulations_finished - res.check_time = total_runtime - res.preprocessing_time = total_preprocessing_time - res.started_simulations = total_simulations_started - res.performed_simulations = total_simulations_finished - res.performed_instantiations = i + result.check_time = total_runtime + result.preprocessing_time = total_preprocessing_time + result.started_simulations = total_simulations_started + result.performed_simulations = total_simulations_finished + result.performed_instantiations = instantiation res = check_parameterized_zx(circ1, circ2, configuration) if res.considered_equivalent(): return res - _update_stats(res) + __update_stats(res) timeout = __adjust_timeout(configuration.execution.timeout, res) n_checks = configuration.parameterized.additional_instantiations tol = configuration.parameterized.parameterized_tolerance - parameters, mat, offsets = extract_params(circ1, circ2) + parameters, mat, offsets = __extract_params(circ1, circ2) - def _instantiate_params( - qc1: QuantumCircuit, qc2: QuantumCircuit, b: NDArray[np.float64] - ) -> tuple[QuantumCircuit, QuantumCircuit, float]: + def __instantiate_params( + qc1: QuantumComputation, qc2: QuantumComputation, b: NDArray[np.float64] + ) -> tuple[QuantumComputation, QuantumComputation, float]: start_time = time.time() mat_pinv = np.linalg.pinv(mat) x = np.dot(mat_pinv, b) param_map = {param: x[i] for i, param in enumerate(parameters)} - qc1_bound = qc1.assign_parameters(param_map) - qc2_bound = qc2.assign_parameters(param_map) - - def _round_zero_params(qc: QuantumCircuit) -> QuantumCircuit: - for instr in qc.data: - operation = instr.operation - if not hasattr(operation, "mutable") or operation.mutable: - params = operation.params - operation.params = [float(x) for x in params] - operation.params = [0 if np.abs(x) < tol else x for x in operation.params] - return qc - - qc1_bound = _round_zero_params(qc1_bound) - qc2_bound = _round_zero_params(qc2_bound) - return qc1_bound, qc2_bound, time.time() - start_time + qc1_bound = qc1.instantiate(param_map) + qc2_bound = qc2.instantiate(param_map) - def _instantiate_params_zero( - qc1: QuantumCircuit, qc2: QuantumCircuit - ) -> tuple[QuantumCircuit, QuantumCircuit, float]: - return _instantiate_params(qc1, qc2, offsets) + def __round_zero_params(qc: QuantumComputation) -> None: + for op in qc: + if len(op.parameter) == 0: + continue - def _instantiate_params_phases( - qc1: QuantumCircuit, qc2: QuantumCircuit - ) -> tuple[QuantumCircuit, QuantumCircuit, float]: - phases = [0, np.pi, np.pi / 2, -np.pi / 2, np.pi / 4, -np.pi / 4] - rng = np.random.default_rng() - b = rng.choice(phases, size=len(offsets)) + offsets - return _instantiate_params(qc1, qc2, b) + for i, param in enumerate(op.parameter): + if np.abs(param) < tol: + op.parameter[i] = 0 - circ1_inst, circ2_inst, runtime = _instantiate_params_zero(circ1, circ2) + __round_zero_params(qc1_bound) + __round_zero_params(qc2_bound) + return qc1_bound, qc2_bound, time.time() - start_time + + def __instantiate_params_zero( + qc1: QuantumComputation, qc2: QuantumComputation + ) -> tuple[QuantumComputation, QuantumComputation, float]: + return __instantiate_params(qc1, qc2, offsets) + + circ1_inst, circ2_inst, runtime = __instantiate_params_zero(circ1, circ2) timeout = __adjust_timeout(timeout, runtime) if timeout < 0: - _write_stats(1, res) + __write_stats(1, res) res.equivalence = EquivalenceCriterion.no_information return res res = check_instantiated(circ1_inst, circ2_inst, configuration) - _update_stats(res) + __update_stats(res) if res.equivalence == EquivalenceCriterion.not_equivalent: - _write_stats(1, res) + __write_stats(1, res) return res + def __instantiate_params_phases( + qc1: QuantumComputation, qc2: QuantumComputation + ) -> tuple[QuantumComputation, QuantumComputation, float]: + phases = [0.0, np.pi, np.pi / 2, -np.pi / 2, np.pi / 4, -np.pi / 4] + rng = np.random.default_rng() + b = rng.choice(phases, size=len(offsets)) + offsets + return __instantiate_params(qc1, qc2, b) + for i in range(n_checks): - circ1_inst, circ2_inst, runtime = _instantiate_params_phases(circ1, circ2) + circ1_inst, circ2_inst, runtime = __instantiate_params_phases(circ1, circ2) timeout = __adjust_timeout(timeout, runtime) res = check_instantiated(circ1_inst, circ2_inst, configuration) timeout = __adjust_timeout(timeout, res) if timeout < 0: - _write_stats(i + 2, res) + __write_stats(i + 2, res) res.equivalence = EquivalenceCriterion.no_information return res - _update_stats(res) + __update_stats(res) if res.equivalence == EquivalenceCriterion.not_equivalent: - _write_stats(i + 2, res) + __write_stats(i + 2, res) return res res = check_instantiated_random(circ1, circ2, parameters, configuration) @@ -215,6 +221,6 @@ def _instantiate_params_phases( if timeout < 0: res.equivalence = EquivalenceCriterion.no_information - _update_stats(res) - _write_stats(n_checks + 2, res) + __update_stats(res) + __write_stats(n_checks + 2, res) return res diff --git a/src/mqt/qcec/pyqcec.pyi b/src/mqt/qcec/pyqcec.pyi index 46ff207d..6815897a 100644 --- a/src/mqt/qcec/pyqcec.pyi +++ b/src/mqt/qcec/pyqcec.pyi @@ -1,6 +1,6 @@ from typing import Any, ClassVar, overload -from qiskit import QuantumCircuit +from mqt.core.ir import QuantumComputation from .literals import ApplicationSchemeName, EquivalenceCriterionName, StateTypeName @@ -111,9 +111,7 @@ class EquivalenceCheckingManager: def considered_equivalent(self) -> bool: ... def json(self) -> dict[str, Any]: ... - def __init__( - self, circ1: QuantumCircuit | str, circ2: QuantumCircuit | str, config: Configuration = ... - ) -> None: ... + def __init__(self, circ1: QuantumComputation, circ2: QuantumComputation, config: Configuration = ...) -> None: ... def backpropagate_output_permutation(self) -> None: ... def disable_all_checkers(self) -> None: ... def elide_permutations(self) -> None: ... diff --git a/src/mqt/qcec/verify.py b/src/mqt/qcec/verify.py index 6d78ba7a..6019976e 100644 --- a/src/mqt/qcec/verify.py +++ b/src/mqt/qcec/verify.py @@ -4,20 +4,32 @@ from typing import TYPE_CHECKING +from mqt.core import load + +from . import Configuration, EquivalenceCheckingManager +from .configuration import augment_config_from_kwargs +from .parameterized import check_parameterized + if TYPE_CHECKING: - from qiskit import QuantumCircuit + import os + + from qiskit.circuit import QuantumCircuit + + from mqt.core.ir import QuantumComputation from ._compat.typing import Unpack from .configuration import ConfigurationOptions -from . import Configuration, EquivalenceCheckingManager -from .configuration import augment_config_from_kwargs -from .parameterized import __is_parameterized, check_parameterized +__all__ = ["verify"] + + +def __dir__() -> list[str]: + return __all__ def verify( - circ1: QuantumCircuit | str, - circ2: QuantumCircuit | str, + circ1: QuantumComputation | str | os.PathLike[str] | QuantumCircuit, + circ2: QuantumComputation | str | os.PathLike[str] | QuantumCircuit, configuration: Configuration | None = None, **kwargs: Unpack[ConfigurationOptions], ) -> EquivalenceCheckingManager.Results: @@ -49,11 +61,15 @@ def verify( # prepare the configuration augment_config_from_kwargs(configuration, kwargs) - if __is_parameterized(circ1) or __is_parameterized(circ2): - return check_parameterized(circ1, circ2, configuration) + # load the circuits + qc1 = load(circ1) + qc2 = load(circ2) + + if not qc1.is_variable_free() or not qc2.is_variable_free(): + return check_parameterized(qc1, qc2, configuration) # create the equivalence checker from configuration - ecm = EquivalenceCheckingManager(circ1, circ2, configuration) + ecm = EquivalenceCheckingManager(qc1, qc2, configuration) # execute the check ecm.run() diff --git a/src/mqt/qcec/verify_compilation_flow.py b/src/mqt/qcec/verify_compilation_flow.py index 556fc1de..282b8d62 100644 --- a/src/mqt/qcec/verify_compilation_flow.py +++ b/src/mqt/qcec/verify_compilation_flow.py @@ -5,12 +5,7 @@ import warnings from typing import TYPE_CHECKING -if TYPE_CHECKING: - from ._compat.typing import Unpack - from .configuration import ConfigurationOptions - -from qiskit import QuantumCircuit -from qiskit.transpiler.passes import ContainsInstruction +from mqt.core import load from . import ApplicationScheme, Configuration, EquivalenceCheckingManager from ._compat.importlib import resources @@ -18,30 +13,47 @@ from .configuration import augment_config_from_kwargs from .verify import verify +if TYPE_CHECKING: + import os + + from qiskit.circuit import QuantumCircuit + + from mqt.core.ir import QuantumComputation + + from ._compat.typing import Unpack + from .configuration import ConfigurationOptions + +__all__ = ["verify_compilation"] + -def __check_if_circuit_contains_measurements(circuit: QuantumCircuit) -> None: +def __dir__() -> list[str]: + return __all__ + + +def __check_if_circuit_contains_measurements(circuit: QuantumComputation) -> None: """Check if the circuit contains measurements and emits a warning if it does not. Args: circuit: The circuit to check. """ - analysis_pass = ContainsInstruction("measure") - analysis_pass(circuit) - if not analysis_pass.property_set["contains_measure"]: - warnings.warn( - UserWarning( - "One of the circuits does not contain any measurements. " - "This may lead to unexpected results since the measurements are used " - "to infer the output qubit permutation at the end of the circuit. " - "Please consider adding measurements to the circuit _before_ compilation." - ), - stacklevel=2, - ) + for op in circuit: + if op.name == "measure": + return + + warnings.warn( + UserWarning( + "One of the circuits does not contain any measurements. " + "This may lead to unexpected results since the measurements are used " + "to infer the output qubit permutation at the end of the circuit. " + "Please consider adding measurements to the circuit _before_ compilation." + ), + stacklevel=2, + ) def verify_compilation( - original_circuit: QuantumCircuit | str, - compiled_circuit: QuantumCircuit | str, + original_circuit: QuantumComputation | str | os.PathLike[str] | QuantumCircuit, + compiled_circuit: QuantumComputation | str | os.PathLike[str] | QuantumCircuit, optimization_level: int = 1, ancilla_mode: AncillaMode = AncillaMode.NO_ANCILLA, configuration: Configuration | None = None, @@ -78,11 +90,11 @@ def verify_compilation( # prepare the configuration augment_config_from_kwargs(configuration, kwargs) - if isinstance(original_circuit, QuantumCircuit): - __check_if_circuit_contains_measurements(original_circuit) - - if isinstance(compiled_circuit, QuantumCircuit): - __check_if_circuit_contains_measurements(compiled_circuit) + # load the circuits + qc1 = load(original_circuit) + __check_if_circuit_contains_measurements(qc1) + qc2 = load(compiled_circuit) + __check_if_circuit_contains_measurements(qc2) # use the gate_cost scheme for the verification configuration.application.construction_scheme = ApplicationScheme.gate_cost @@ -95,4 +107,4 @@ def verify_compilation( with resources.as_file(ref) as path: configuration.application.profile = str(path) - return verify(original_circuit, compiled_circuit, configuration=configuration) + return verify(qc1, qc2, configuration=configuration) diff --git a/src/python/CMakeLists.txt b/src/python/CMakeLists.txt index e57188b0..cbe74a29 100644 --- a/src/python/CMakeLists.txt +++ b/src/python/CMakeLists.txt @@ -1,3 +1,22 @@ +if(APPLE) + set(BASEPOINT @loader_path) +else() + set(BASEPOINT $ORIGIN) +endif() +set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) +set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) +list( + APPEND + CMAKE_INSTALL_RPATH + ${BASEPOINT} + ${BASEPOINT}/${CMAKE_INSTALL_LIBDIR} + ${BASEPOINT}/../core/${CMAKE_INSTALL_LIBDIR} + ${BASEPOINT}/../core/lib + ${BASEPOINT}/../core/lib64 + ${BASEPOINT}/../../core/${CMAKE_INSTALL_LIBDIR} + ${BASEPOINT}/../../core/lib + ${BASEPOINT}/../../core/lib64) + pybind11_add_module( pyqcec # Prefer thin LTO if available @@ -6,7 +25,7 @@ pybind11_add_module( OPT_SIZE # Source code goes here bindings.cpp) -target_link_libraries(pyqcec PRIVATE MQT::QCEC MQT::CorePython pybind11_json MQT::ProjectOptions +target_link_libraries(pyqcec PRIVATE MQT::QCEC pybind11_json MQT::ProjectOptions MQT::ProjectWarnings) # Install directive for scikit-build-core diff --git a/src/python/bindings.cpp b/src/python/bindings.cpp index 3ede11df..ac093e0f 100644 --- a/src/python/bindings.cpp +++ b/src/python/bindings.cpp @@ -10,7 +10,6 @@ #include "checker/dd/simulation/StateType.hpp" #include "dd/RealNumber.hpp" #include "ir/QuantumComputation.hpp" -#include "python/qiskit/QuantumCircuit.hpp" #include #include @@ -26,50 +25,6 @@ namespace py = pybind11; using namespace pybind11::literals; namespace ec { -namespace { -qc::QuantumComputation importCircuit(const py::object& circ) { - const py::object quantumCircuit = - py::module::import("qiskit").attr("QuantumCircuit"); - const py::object pyQasmQobjExperiment = - py::module::import("qiskit.qobj").attr("QasmQobjExperiment"); - - auto qc = qc::QuantumComputation(); - - if (py::isinstance(circ)) { - const auto file = circ.cast(); - qc.import(file); - } else if (py::isinstance(circ, quantumCircuit)) { - qc::qiskit::QuantumCircuit::import(qc, circ); - } else { - throw std::runtime_error( - "PyObject is neither py::str, QuantumCircuit, nor QasmQobjExperiment"); - } - - return qc; -} - -std::unique_ptr -createManagerFromConfiguration(const py::object& circ1, const py::object& circ2, - const Configuration& configuration = {}) { - qc::QuantumComputation qc1; - try { - qc1 = importCircuit(circ1); - } catch (const std::exception& ex) { - throw std::runtime_error("Could not import first circuit: " + - std::string(ex.what())); - } - - qc::QuantumComputation qc2; - try { - qc2 = importCircuit(circ2); - } catch (const std::exception& ex) { - throw std::runtime_error("Could not import second circuit: " + - std::string(ex.what())); - } - - return std::make_unique(qc1, qc2, configuration); -} -} // namespace PYBIND11_MODULE(pyqcec, m, py::mod_gil_not_used()) { m.doc() = "Python interface for the MQT QCEC quantum circuit equivalence " @@ -189,8 +144,9 @@ PYBIND11_MODULE(pyqcec, m, py::mod_gil_not_used()) { "tool"); // Constructors - ecm.def(py::init(&createManagerFromConfiguration), "circ1"_a, "circ2"_a, - "config"_a = Configuration(), + ecm.def(py::init(), + "circ1"_a, "circ2"_a, "config"_a = Configuration(), "Create an equivalence checking manager for two circuits and " "configure it with a :class:`Configuration` object.") .def("get_configuration", &EquivalenceCheckingManager::getConfiguration) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 8d402742..8d668bb0 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -5,4 +5,4 @@ file(GLOB_RECURSE TEST_FILES "*.cpp") package_add_test(mqt-qcec-test MQT::QCEC ${TEST_FILES}) # link to MQT::CoreAlgorithms library for dynamic circuit tests -target_link_libraries(mqt-qcec-test PRIVATE MQT::CoreAlgorithms) +target_link_libraries(mqt-qcec-test PRIVATE MQT::CoreAlgorithms MQT::CoreQASM) diff --git a/test/circuits/original/5xp1_194.qasm b/test/circuits/original/5xp1_194.qasm new file mode 100644 index 00000000..53371ac1 --- /dev/null +++ b/test/circuits/original/5xp1_194.qasm @@ -0,0 +1,90 @@ +// i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +// o 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +OPENQASM 3.0; +include "stdgates.inc"; +qubit[17] q; +cx q[10], q[9]; +cx q[10], q[8]; +cx q[10], q[7]; +cx q[10], q[5]; +cx q[11], q[8]; +cx q[11], q[6]; +cx q[15], q[7]; +cx q[15], q[6]; +cx q[15], q[5]; +cx q[15], q[3]; +cx q[16], q[6]; +cx q[16], q[4]; +ccx q[14], q[16], q[5]; +ctrl(3) @ x q[10], q[11], q[12], q[9]; +ctrl(3) @ x q[10], q[11], q[12], q[7]; +ctrl(3) @ x q[10], q[11], q[12], q[0]; +x q[13]; +cx q[13], q[2]; +cx q[13], q[1]; +ccx q[13], q[14], q[4]; +x q[14]; +x q[13]; +ccx q[13], q[14], q[3]; +x q[10]; +ctrl(4) @ x q[10], q[11], q[12], q[16], q[9]; +ctrl(4) @ x q[10], q[11], q[12], q[16], q[8]; +ctrl(4) @ x q[10], q[11], q[12], q[16], q[0]; +ccx q[10], q[12], q[9]; +ccx q[10], q[12], q[7]; +cx q[14], q[2]; +ctrl(3) @ x q[13], q[14], q[15], q[5]; +ctrl(3) @ x q[13], q[14], q[15], q[4]; +x q[13]; +ctrl(5) @ x q[10], q[13], q[14], q[15], q[16], q[6]; +x q[10]; +x q[11]; +ctrl(4) @ x q[10], q[11], q[15], q[16], q[8]; +ctrl(4) @ x q[10], q[11], q[15], q[16], q[7]; +ctrl(4) @ x q[11], q[12], q[15], q[16], q[8]; +x q[10]; +ctrl(6) @ x q[10], q[11], q[13], q[14], q[15], q[16], q[8]; +ctrl(6) @ x q[10], q[11], q[13], q[14], q[15], q[16], q[7]; +x q[10]; +x q[12]; +ctrl(3) @ x q[10], q[11], q[12], q[9]; +ctrl(3) @ x q[10], q[11], q[12], q[8]; +ctrl(3) @ x q[10], q[11], q[12], q[7]; +x q[10]; +ctrl(7) @ x q[10], q[11], q[12], q[13], q[14], q[15], q[16], q[8]; +x q[11]; +x q[13]; +x q[14]; +x q[12]; +x q[16]; +ctrl(3) @ x q[13], q[15], q[16], q[5]; +ctrl(4) @ x q[10], q[13], q[14], q[16], q[6]; +ctrl(3) @ x q[10], q[15], q[16], q[7]; +ctrl(3) @ x q[10], q[15], q[16], q[6]; +ctrl(7) @ x q[10], q[11], q[12], q[13], q[14], q[15], q[16], q[9]; +ctrl(7) @ x q[10], q[11], q[12], q[13], q[14], q[15], q[16], q[8]; +ctrl(7) @ x q[10], q[11], q[12], q[13], q[14], q[15], q[16], q[0]; +ctrl(6) @ x q[10], q[11], q[13], q[14], q[15], q[16], q[7]; +x q[15]; +ctrl(5) @ x q[10], q[13], q[14], q[15], q[16], q[7]; +x q[10]; +x q[16]; +ctrl(3) @ x q[11], q[15], q[16], q[7]; +ctrl(4) @ x q[10], q[14], q[15], q[16], q[6]; +x q[12]; +ctrl(6) @ x q[10], q[11], q[12], q[14], q[15], q[16], q[8]; +ctrl(5) @ x q[10], q[12], q[14], q[15], q[16], q[8]; +x q[16]; +ctrl(4) @ x q[13], q[14], q[15], q[16], q[7]; +ctrl(4) @ x q[13], q[14], q[15], q[16], q[6]; +ctrl(4) @ x q[13], q[14], q[15], q[16], q[5]; +x q[13]; +ctrl(7) @ x q[10], q[11], q[12], q[13], q[14], q[15], q[16], q[9]; +ctrl(7) @ x q[10], q[11], q[12], q[13], q[14], q[15], q[16], q[8]; +ctrl(6) @ x q[10], q[11], q[13], q[14], q[15], q[16], q[7]; +ctrl(5) @ x q[10], q[13], q[14], q[15], q[16], q[7]; +x q[14]; +ctrl(6) @ x q[10], q[11], q[12], q[14], q[15], q[16], q[9]; +ctrl(6) @ x q[10], q[11], q[12], q[14], q[15], q[16], q[8]; +x q[11]; +ctrl(4) @ x q[10], q[11], q[14], q[15], q[7]; diff --git a/test/circuits/original/5xp1_194.real b/test/circuits/original/5xp1_194.real deleted file mode 100755 index aa4c531d..00000000 --- a/test/circuits/original/5xp1_194.real +++ /dev/null @@ -1,100 +0,0 @@ -# Function: 5xp1 -# Used Library: EQ (Gates: 85, Quantum costs: 1430) -# This file have been taken from RevLib (www.revlib.org). -.version 1.0 -# Created by tfc2real J. Rice Jan 2009 -# Parameters for Exorcism: -n 1 -r 1 -a 0 -b 1 -c 1 -# Templates applied in both directions -.numvars 17 -.variables f9 f8 f7 f6 f5 f4 f3 f2 f1 f0 x6 x5 x4 x3 x2 x1 x0 -.inputs 0 0 0 0 0 0 0 0 0 0 x6 x5 x4 x3 x2 x1 x0 -.outputs f9 f8 f7 f6 f5 f4 f3 f2 f1 f0 x6 x5 x4 x3 x2 x1 x0 -.constants 0000000000------- -.garbage 1111111---------- -.begin -t2 x6 f0 -t2 x6 f1 -t2 x6 f2 -t2 x6 f4 -t2 x5 f1 -t2 x5 f3 -t2 x1 f2 -t2 x1 f3 -t2 x1 f4 -t2 x1 f6 -t2 x0 f3 -t2 x0 f5 -t3 x0 x2 f4 -t4 x4 x5 x6 f0 -t4 x4 x5 x6 f2 -t4 x4 x5 x6 f9 -t1 x3 -t2 x3 f7 -t2 x3 f8 -t3 x2 x3 f5 -t1 x2 -t1 x3 -t3 x2 x3 f6 -t1 x6 -t5 x0 x4 x5 x6 f0 -t5 x0 x4 x5 x6 f1 -t5 x0 x4 x5 x6 f9 -t3 x4 x6 f0 -t3 x4 x6 f2 -t2 x2 f7 -t4 x1 x2 x3 f4 -t4 x1 x2 x3 f5 -t1 x3 -t6 x0 x1 x2 x3 x6 f3 -t1 x6 -t1 x5 -t5 x0 x1 x5 x6 f1 -t5 x0 x1 x5 x6 f2 -t5 x0 x1 x4 x5 f1 -t1 x6 -t7 x0 x1 x2 x3 x5 x6 f1 -t7 x0 x1 x2 x3 x5 x6 f2 -t1 x6 -t1 x4 -t4 x4 x5 x6 f0 -t4 x4 x5 x6 f1 -t4 x4 x5 x6 f2 -t1 x6 -t8 x0 x1 x2 x3 x4 x5 x6 f1 -t1 x5 -t1 x3 -t1 x2 -t1 x4 -t1 x0 -t4 x0 x1 x3 f4 -t5 x0 x2 x3 x6 f3 -t4 x0 x1 x6 f2 -t4 x0 x1 x6 f3 -t8 x0 x1 x2 x3 x4 x5 x6 f0 -t8 x0 x1 x2 x3 x4 x5 x6 f1 -t8 x0 x1 x2 x3 x4 x5 x6 f9 -t7 x0 x1 x2 x3 x5 x6 f2 -t1 x1 -t6 x0 x1 x2 x3 x6 f2 -t1 x6 -t1 x0 -t4 x0 x1 x5 f2 -t5 x0 x1 x2 x6 f3 -t1 x4 -t7 x0 x1 x2 x4 x5 x6 f1 -t6 x0 x1 x2 x4 x6 f1 -t1 x0 -t5 x0 x1 x2 x3 f2 -t5 x0 x1 x2 x3 f3 -t5 x0 x1 x2 x3 f4 -t1 x3 -t8 x0 x1 x2 x3 x4 x5 x6 f0 -t8 x0 x1 x2 x3 x4 x5 x6 f1 -t7 x0 x1 x2 x3 x5 x6 f2 -t6 x0 x1 x2 x3 x6 f2 -t1 x2 -t7 x0 x1 x2 x4 x5 x6 f0 -t7 x0 x1 x2 x4 x5 x6 f1 -t1 x5 -t5 x1 x2 x5 x6 f2 -.end diff --git a/test/circuits/original/C7552_205.qasm b/test/circuits/original/C7552_205.qasm new file mode 100644 index 00000000..cade0dcc --- /dev/null +++ b/test/circuits/original/C7552_205.qasm @@ -0,0 +1,85 @@ +// i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 +// o 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 +OPENQASM 3.0; +include "stdgates.inc"; +qubit[21] q; +ccx q[16], q[19], q[6]; +ccx q[16], q[19], q[2]; +cx q[16], q[2]; +ctrl(4) @ x q[16], q[17], q[18], q[20], q[15]; +ctrl(4) @ x q[16], q[17], q[18], q[20], q[14]; +ctrl(4) @ x q[16], q[17], q[18], q[20], q[7]; +ctrl(4) @ x q[16], q[17], q[18], q[20], q[6]; +ccx q[16], q[20], q[15]; +ccx q[16], q[20], q[14]; +ccx q[16], q[20], q[11]; +ccx q[16], q[20], q[7]; +ccx q[16], q[20], q[6]; +ccx q[16], q[20], q[3]; +ccx q[16], q[17], q[7]; +ccx q[16], q[17], q[6]; +ctrl(4) @ x q[16], q[18], q[19], q[20], q[15]; +ctrl(4) @ x q[16], q[18], q[19], q[20], q[11]; +ctrl(4) @ x q[16], q[18], q[19], q[20], q[7]; +ctrl(4) @ x q[16], q[18], q[19], q[20], q[3]; +x q[18]; +ctrl(4) @ x q[16], q[18], q[19], q[20], q[13]; +ctrl(4) @ x q[16], q[18], q[19], q[20], q[9]; +ctrl(4) @ x q[16], q[18], q[19], q[20], q[5]; +ctrl(4) @ x q[16], q[18], q[19], q[20], q[1]; +ctrl(4) @ x q[16], q[17], q[18], q[20], q[13]; +ctrl(4) @ x q[16], q[17], q[18], q[20], q[12]; +ctrl(4) @ x q[16], q[17], q[18], q[20], q[5]; +ctrl(4) @ x q[16], q[17], q[18], q[20], q[4]; +ctrl(4) @ x q[16], q[17], q[18], q[19], q[7]; +ctrl(4) @ x q[16], q[17], q[18], q[19], q[6]; +ctrl(4) @ x q[16], q[17], q[18], q[19], q[5]; +ctrl(4) @ x q[16], q[17], q[18], q[19], q[4]; +ctrl(3) @ x q[16], q[18], q[19], q[6]; +ctrl(3) @ x q[16], q[18], q[19], q[4]; +ctrl(3) @ x q[16], q[18], q[20], q[15]; +ctrl(3) @ x q[16], q[18], q[20], q[14]; +ctrl(3) @ x q[16], q[18], q[20], q[13]; +ctrl(3) @ x q[16], q[18], q[20], q[12]; +ctrl(3) @ x q[16], q[18], q[20], q[11]; +ctrl(3) @ x q[16], q[18], q[20], q[9]; +ctrl(3) @ x q[16], q[18], q[20], q[7]; +ctrl(3) @ x q[16], q[18], q[20], q[6]; +ctrl(3) @ x q[16], q[18], q[20], q[5]; +ctrl(3) @ x q[16], q[18], q[20], q[4]; +ctrl(3) @ x q[16], q[18], q[20], q[3]; +ctrl(3) @ x q[16], q[18], q[20], q[1]; +x q[19]; +ctrl(4) @ x q[16], q[17], q[18], q[19], q[3]; +ctrl(4) @ x q[16], q[17], q[18], q[19], q[1]; +ctrl(3) @ x q[16], q[17], q[19], q[7]; +ctrl(3) @ x q[16], q[17], q[19], q[6]; +ctrl(3) @ x q[16], q[17], q[19], q[3]; +ctrl(3) @ x q[16], q[17], q[19], q[2]; +x q[17]; +ctrl(4) @ x q[16], q[17], q[18], q[19], q[2]; +ctrl(4) @ x q[16], q[17], q[18], q[19], q[0]; +ctrl(4) @ x q[16], q[17], q[19], q[20], q[15]; +ctrl(4) @ x q[16], q[17], q[19], q[20], q[14]; +ctrl(4) @ x q[16], q[17], q[19], q[20], q[11]; +ctrl(4) @ x q[16], q[17], q[19], q[20], q[10]; +ctrl(4) @ x q[16], q[17], q[19], q[20], q[7]; +ctrl(4) @ x q[16], q[17], q[19], q[20], q[6]; +ctrl(4) @ x q[16], q[17], q[19], q[20], q[3]; +ctrl(4) @ x q[16], q[17], q[19], q[20], q[2]; +ctrl(5) @ x q[16], q[17], q[18], q[19], q[20], q[15]; +ctrl(5) @ x q[16], q[17], q[18], q[19], q[20], q[14]; +ctrl(5) @ x q[16], q[17], q[18], q[19], q[20], q[13]; +ctrl(5) @ x q[16], q[17], q[18], q[19], q[20], q[12]; +ctrl(5) @ x q[16], q[17], q[18], q[19], q[20], q[11]; +ctrl(5) @ x q[16], q[17], q[18], q[19], q[20], q[10]; +ctrl(5) @ x q[16], q[17], q[18], q[19], q[20], q[9]; +ctrl(5) @ x q[16], q[17], q[18], q[19], q[20], q[8]; +ctrl(5) @ x q[16], q[17], q[18], q[19], q[20], q[7]; +ctrl(5) @ x q[16], q[17], q[18], q[19], q[20], q[6]; +ctrl(5) @ x q[16], q[17], q[18], q[19], q[20], q[5]; +ctrl(5) @ x q[16], q[17], q[18], q[19], q[20], q[4]; +ctrl(5) @ x q[16], q[17], q[18], q[19], q[20], q[3]; +ctrl(5) @ x q[16], q[17], q[18], q[19], q[20], q[2]; +ctrl(5) @ x q[16], q[17], q[18], q[19], q[20], q[1]; +ctrl(5) @ x q[16], q[17], q[18], q[19], q[20], q[0]; diff --git a/test/circuits/original/C7552_205.real b/test/circuits/original/C7552_205.real deleted file mode 100755 index 90b16176..00000000 --- a/test/circuits/original/C7552_205.real +++ /dev/null @@ -1,95 +0,0 @@ -# Function: C7552 -# Used Library: MCT (Gates: 80, Quantum costs: 1728) -# This file have been taken from RevLib (www.revlib.org). -.version 1.0 -# Created by tfc2real J. Rice Jan 2009 -# Parameters for Exorcism: -n 1 -r 1 -a 0 -b 1 -c 1 -# Templates applied in both directions -.numvars 21 -.variables f15 f14 f13 f12 f11 f10 f9 f8 f7 f6 f5 f4 f3 f2 f1 f0 x4 x3 x2 x1 x0 -.inputs 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x4 x3 x2 x1 x0 -.outputs f15 f14 f13 f12 f11 f10 f9 f8 f7 f6 f5 f4 f3 f2 f1 f0 x4 x3 x2 x1 x0 -.constants 0000000000000000----- -.garbage ----------------11111 -.begin -t3 x1 x4 f9 -t3 x1 x4 f13 -t2 x4 f13 -t5 x0 x2 x3 x4 f0 -t5 x0 x2 x3 x4 f1 -t5 x0 x2 x3 x4 f8 -t5 x0 x2 x3 x4 f9 -t3 x0 x4 f0 -t3 x0 x4 f1 -t3 x0 x4 f4 -t3 x0 x4 f8 -t3 x0 x4 f9 -t3 x0 x4 f12 -t3 x3 x4 f8 -t3 x3 x4 f9 -t5 x0 x1 x2 x4 f0 -t5 x0 x1 x2 x4 f4 -t5 x0 x1 x2 x4 f8 -t5 x0 x1 x2 x4 f12 -t1 x2 -t5 x0 x1 x2 x4 f2 -t5 x0 x1 x2 x4 f6 -t5 x0 x1 x2 x4 f10 -t5 x0 x1 x2 x4 f14 -t5 x0 x2 x3 x4 f2 -t5 x0 x2 x3 x4 f3 -t5 x0 x2 x3 x4 f10 -t5 x0 x2 x3 x4 f11 -t5 x1 x2 x3 x4 f8 -t5 x1 x2 x3 x4 f9 -t5 x1 x2 x3 x4 f10 -t5 x1 x2 x3 x4 f11 -t4 x1 x2 x4 f9 -t4 x1 x2 x4 f11 -t4 x0 x2 x4 f0 -t4 x0 x2 x4 f1 -t4 x0 x2 x4 f2 -t4 x0 x2 x4 f3 -t4 x0 x2 x4 f4 -t4 x0 x2 x4 f6 -t4 x0 x2 x4 f8 -t4 x0 x2 x4 f9 -t4 x0 x2 x4 f10 -t4 x0 x2 x4 f11 -t4 x0 x2 x4 f12 -t4 x0 x2 x4 f14 -t1 x1 -t5 x1 x2 x3 x4 f12 -t5 x1 x2 x3 x4 f14 -t4 x1 x3 x4 f8 -t4 x1 x3 x4 f9 -t4 x1 x3 x4 f12 -t4 x1 x3 x4 f13 -t1 x3 -t5 x1 x2 x3 x4 f13 -t5 x1 x2 x3 x4 f15 -t5 x0 x1 x3 x4 f0 -t5 x0 x1 x3 x4 f1 -t5 x0 x1 x3 x4 f4 -t5 x0 x1 x3 x4 f5 -t5 x0 x1 x3 x4 f8 -t5 x0 x1 x3 x4 f9 -t5 x0 x1 x3 x4 f12 -t5 x0 x1 x3 x4 f13 -t6 x0 x1 x2 x3 x4 f0 -t6 x0 x1 x2 x3 x4 f1 -t6 x0 x1 x2 x3 x4 f2 -t6 x0 x1 x2 x3 x4 f3 -t6 x0 x1 x2 x3 x4 f4 -t6 x0 x1 x2 x3 x4 f5 -t6 x0 x1 x2 x3 x4 f6 -t6 x0 x1 x2 x3 x4 f7 -t6 x0 x1 x2 x3 x4 f8 -t6 x0 x1 x2 x3 x4 f9 -t6 x0 x1 x2 x3 x4 f10 -t6 x0 x1 x2 x3 x4 f11 -t6 x0 x1 x2 x3 x4 f12 -t6 x0 x1 x2 x3 x4 f13 -t6 x0 x1 x2 x3 x4 f14 -t6 x0 x1 x2 x3 x4 f15 -.end diff --git a/test/circuits/original/add6_196.qasm b/test/circuits/original/add6_196.qasm new file mode 100644 index 00000000..079097b0 --- /dev/null +++ b/test/circuits/original/add6_196.qasm @@ -0,0 +1,234 @@ +// i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 +// o 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 +OPENQASM 3.0; +include "stdgates.inc"; +qubit[19] q; +ctrl(3) @ x q[9], q[10], q[16], q[2]; +ccx q[10], q[16], q[4]; +ccx q[10], q[16], q[3]; +ccx q[11], q[17], q[5]; +ccx q[11], q[17], q[4]; +ccx q[11], q[17], q[3]; +ccx q[9], q[15], q[3]; +ccx q[9], q[15], q[2]; +ccx q[9], q[15], q[1]; +ccx q[9], q[15], q[0]; +ctrl(3) @ x q[8], q[9], q[15], q[1]; +ctrl(3) @ x q[8], q[9], q[15], q[0]; +ctrl(3) @ x q[7], q[8], q[14], q[0]; +ctrl(3) @ x q[10], q[15], q[16], q[2]; +ctrl(3) @ x q[10], q[15], q[16], q[1]; +ctrl(4) @ x q[10], q[14], q[15], q[16], q[1]; +ctrl(3) @ x q[11], q[12], q[18], q[4]; +ctrl(3) @ x q[11], q[12], q[18], q[3]; +ctrl(3) @ x q[11], q[12], q[18], q[2]; +ctrl(3) @ x q[11], q[12], q[18], q[1]; +ctrl(3) @ x q[10], q[11], q[17], q[3]; +ctrl(3) @ x q[8], q[13], q[14], q[0]; +ccx q[8], q[14], q[2]; +ccx q[8], q[14], q[1]; +ccx q[7], q[13], q[1]; +ccx q[7], q[13], q[0]; +x q[16]; +ctrl(5) @ x q[8], q[11], q[15], q[16], q[17], q[1]; +ctrl(5) @ x q[8], q[9], q[11], q[16], q[17], q[1]; +ctrl(3) @ x q[11], q[16], q[17], q[3]; +ctrl(5) @ x q[9], q[11], q[12], q[16], q[18], q[2]; +ctrl(5) @ x q[9], q[11], q[12], q[16], q[18], q[1]; +ctrl(5) @ x q[9], q[12], q[16], q[17], q[18], q[2]; +ctrl(5) @ x q[9], q[12], q[16], q[17], q[18], q[1]; +x q[10]; +ctrl(7) @ x q[7], q[10], q[11], q[12], q[14], q[15], q[18], q[0]; +ctrl(7) @ x q[7], q[10], q[12], q[14], q[15], q[17], q[18], q[0]; +ctrl(5) @ x q[8], q[9], q[10], q[11], q[17], q[1]; +ctrl(5) @ x q[8], q[10], q[11], q[15], q[17], q[1]; +ccx q[10], q[16], q[4]; +x q[17]; +ctrl(3) @ x q[12], q[17], q[18], q[4]; +ctrl(6) @ x q[10], q[12], q[14], q[15], q[17], q[18], q[1]; +ctrl(7) @ x q[7], q[8], q[10], q[12], q[15], q[17], q[18], q[0]; +ctrl(5) @ x q[9], q[10], q[12], q[17], q[18], q[2]; +ctrl(5) @ x q[9], q[10], q[12], q[17], q[18], q[1]; +ctrl(5) @ x q[9], q[10], q[12], q[17], q[18], q[0]; +ctrl(6) @ x q[8], q[9], q[10], q[12], q[17], q[18], q[1]; +ctrl(5) @ x q[10], q[12], q[15], q[17], q[18], q[2]; +ctrl(5) @ x q[10], q[12], q[15], q[17], q[18], q[1]; +ctrl(4) @ x q[10], q[12], q[17], q[18], q[3]; +ctrl(7) @ x q[9], q[10], q[12], q[13], q[14], q[17], q[18], q[0]; +x q[10]; +ctrl(4) @ x q[12], q[16], q[17], q[18], q[3]; +ctrl(4) @ x q[12], q[16], q[17], q[18], q[0]; +ctrl(5) @ x q[12], q[15], q[16], q[17], q[18], q[2]; +ctrl(5) @ x q[12], q[15], q[16], q[17], q[18], q[1]; +ctrl(5) @ x q[12], q[15], q[16], q[17], q[18], q[0]; +x q[11]; +ctrl(4) @ x q[10], q[11], q[12], q[18], q[3]; +ctrl(5) @ x q[10], q[11], q[12], q[15], q[18], q[2]; +ctrl(5) @ x q[10], q[11], q[12], q[15], q[18], q[1]; +x q[10]; +ctrl(5) @ x q[9], q[10], q[11], q[12], q[18], q[2]; +ctrl(6) @ x q[10], q[11], q[12], q[14], q[15], q[18], q[1]; +ctrl(7) @ x q[7], q[9], q[10], q[11], q[12], q[14], q[18], q[0]; +ctrl(7) @ x q[7], q[8], q[10], q[11], q[12], q[15], q[18], q[0]; +ctrl(7) @ x q[8], q[10], q[11], q[12], q[13], q[15], q[18], q[0]; +ctrl(4) @ x q[11], q[12], q[16], q[18], q[3]; +ctrl(4) @ x q[11], q[12], q[16], q[18], q[2]; +ctrl(4) @ x q[11], q[12], q[16], q[18], q[1]; +ccx q[11], q[17], q[5]; +x q[13]; +ctrl(4) @ x q[9], q[13], q[14], q[15], q[0]; +ctrl(4) @ x q[8], q[9], q[13], q[15], q[0]; +ctrl(7) @ x q[8], q[9], q[10], q[12], q[13], q[17], q[18], q[0]; +x q[10]; +ctrl(7) @ x q[8], q[9], q[10], q[11], q[12], q[13], q[18], q[0]; +ctrl(7) @ x q[8], q[11], q[12], q[13], q[15], q[16], q[18], q[0]; +x q[16]; +ctrl(7) @ x q[8], q[9], q[11], q[12], q[13], q[16], q[18], q[0]; +x q[14]; +ctrl(4) @ x q[9], q[10], q[14], q[16], q[1]; +ctrl(3) @ x q[9], q[14], q[15], q[1]; +x q[10]; +ctrl(7) @ x q[10], q[12], q[13], q[14], q[15], q[17], q[18], q[0]; +ctrl(6) @ x q[10], q[12], q[14], q[15], q[17], q[18], q[0]; +ctrl(7) @ x q[7], q[9], q[10], q[12], q[14], q[17], q[18], q[0]; +ctrl(6) @ x q[9], q[10], q[12], q[14], q[17], q[18], q[1]; +ctrl(6) @ x q[9], q[10], q[11], q[12], q[14], q[18], q[1]; +x q[10]; +ctrl(5) @ x q[9], q[10], q[13], q[14], q[16], q[0]; +ctrl(5) @ x q[10], q[13], q[14], q[15], q[16], q[0]; +x q[16]; +ctrl(7) @ x q[9], q[12], q[13], q[14], q[16], q[17], q[18], q[0]; +ctrl(7) @ x q[12], q[13], q[14], q[15], q[16], q[17], q[18], q[0]; +x q[7]; +x q[10]; +ctrl(7) @ x q[7], q[8], q[9], q[10], q[11], q[12], q[18], q[0]; +ccx q[7], q[13], q[1]; +x q[13]; +ctrl(4) @ x q[7], q[9], q[14], q[15], q[0]; +x q[8]; +ctrl(6) @ x q[8], q[11], q[12], q[15], q[16], q[18], q[1]; +ctrl(6) @ x q[8], q[9], q[11], q[12], q[16], q[18], q[1]; +ctrl(6) @ x q[8], q[9], q[12], q[16], q[17], q[18], q[1]; +ctrl(6) @ x q[8], q[9], q[12], q[16], q[17], q[18], q[0]; +ctrl(6) @ x q[8], q[12], q[15], q[16], q[17], q[18], q[1]; +ctrl(6) @ x q[8], q[12], q[15], q[16], q[17], q[18], q[0]; +ctrl(7) @ x q[8], q[10], q[12], q[13], q[15], q[17], q[18], q[0]; +ctrl(6) @ x q[8], q[10], q[12], q[15], q[17], q[18], q[1]; +ctrl(4) @ x q[7], q[8], q[9], q[15], q[0]; +ctrl(3) @ x q[8], q[9], q[15], q[0]; +ctrl(7) @ x q[7], q[8], q[11], q[12], q[15], q[16], q[18], q[0]; +ctrl(7) @ x q[7], q[8], q[12], q[15], q[16], q[17], q[18], q[0]; +ctrl(7) @ x q[7], q[8], q[9], q[12], q[16], q[17], q[18], q[0]; +ctrl(7) @ x q[7], q[8], q[9], q[10], q[12], q[17], q[18], q[0]; +x q[17]; +ctrl(7) @ x q[7], q[8], q[9], q[11], q[12], q[16], q[18], q[0]; +x q[11]; +ccx q[8], q[14], q[2]; +x q[15]; +ctrl(4) @ x q[10], q[11], q[15], q[17], q[2]; +ctrl(5) @ x q[7], q[10], q[11], q[15], q[17], q[0]; +ctrl(6) @ x q[7], q[11], q[14], q[15], q[16], q[17], q[0]; +x q[7]; +ctrl(6) @ x q[7], q[8], q[10], q[11], q[15], q[17], q[0]; +ctrl(5) @ x q[10], q[11], q[14], q[15], q[17], q[0]; +ctrl(6) @ x q[10], q[11], q[13], q[14], q[15], q[17], q[0]; +ctrl(4) @ x q[11], q[15], q[16], q[17], q[2]; +x q[14]; +ctrl(5) @ x q[10], q[11], q[14], q[15], q[17], q[1]; +ctrl(5) @ x q[11], q[14], q[15], q[16], q[17], q[1]; +ctrl(6) @ x q[7], q[8], q[11], q[15], q[16], q[17], q[0]; +ctrl(6) @ x q[8], q[11], q[13], q[15], q[16], q[17], q[0]; +x q[16]; +ctrl(6) @ x q[8], q[10], q[11], q[13], q[15], q[17], q[0]; +x q[10]; +ctrl(4) @ x q[8], q[10], q[15], q[16], q[1]; +x q[7]; +ctrl(5) @ x q[7], q[10], q[14], q[15], q[16], q[0]; +ctrl(6) @ x q[7], q[10], q[11], q[14], q[15], q[17], q[0]; +ctrl(5) @ x q[7], q[11], q[14], q[15], q[17], q[0]; +x q[13]; +ctrl(5) @ x q[7], q[8], q[10], q[15], q[16], q[0]; +ctrl(4) @ x q[7], q[10], q[15], q[16], q[0]; +ctrl(5) @ x q[8], q[10], q[13], q[15], q[16], q[0]; +x q[16]; +ctrl(6) @ x q[11], q[13], q[14], q[15], q[16], q[17], q[0]; +ctrl(5) @ x q[11], q[13], q[15], q[16], q[17], q[0]; +x q[16]; +x q[13]; +x q[11]; +ctrl(5) @ x q[11], q[12], q[15], q[16], q[18], q[2]; +ctrl(5) @ x q[11], q[12], q[15], q[16], q[18], q[1]; +ctrl(7) @ x q[10], q[11], q[12], q[13], q[14], q[15], q[18], q[0]; +ctrl(7) @ x q[11], q[12], q[13], q[14], q[15], q[16], q[18], q[0]; +ctrl(6) @ x q[8], q[10], q[11], q[12], q[15], q[18], q[1]; +ctrl(5) @ x q[8], q[11], q[12], q[15], q[18], q[1]; +x q[16]; +ctrl(6) @ x q[11], q[12], q[14], q[15], q[16], q[18], q[1]; +ctrl(6) @ x q[11], q[12], q[14], q[15], q[16], q[18], q[0]; +ctrl(7) @ x q[7], q[11], q[12], q[14], q[15], q[16], q[18], q[0]; +ctrl(6) @ x q[7], q[11], q[12], q[15], q[16], q[18], q[0]; +x q[11]; +x q[17]; +ctrl(6) @ x q[12], q[14], q[15], q[16], q[17], q[18], q[1]; +ctrl(7) @ x q[8], q[12], q[13], q[15], q[16], q[17], q[18], q[0]; +ctrl(7) @ x q[7], q[12], q[14], q[15], q[16], q[17], q[18], q[0]; +x q[7]; +ctrl(6) @ x q[7], q[12], q[15], q[16], q[17], q[18], q[0]; +x q[17]; +x q[9]; +ctrl(4) @ x q[9], q[11], q[16], q[17], q[2]; +ctrl(6) @ x q[7], q[8], q[9], q[11], q[16], q[17], q[0]; +ctrl(5) @ x q[7], q[9], q[11], q[16], q[17], q[0]; +ctrl(6) @ x q[7], q[9], q[11], q[14], q[16], q[17], q[0]; +ctrl(5) @ x q[9], q[11], q[14], q[16], q[17], q[1]; +ctrl(6) @ x q[8], q[9], q[11], q[13], q[16], q[17], q[0]; +x q[16]; +ctrl(5) @ x q[8], q[9], q[10], q[13], q[16], q[0]; +ctrl(4) @ x q[8], q[9], q[10], q[16], q[1]; +ctrl(4) @ x q[8], q[9], q[10], q[16], q[0]; +x q[8]; +ccx q[9], q[15], q[3]; +x q[7]; +ctrl(5) @ x q[7], q[8], q[9], q[10], q[16], q[0]; +ctrl(5) @ x q[7], q[9], q[10], q[14], q[16], q[0]; +x q[10]; +ctrl(4) @ x q[9], q[10], q[11], q[17], q[2]; +ctrl(5) @ x q[9], q[10], q[11], q[14], q[17], q[1]; +ctrl(5) @ x q[9], q[10], q[11], q[14], q[17], q[0]; +ctrl(6) @ x q[7], q[8], q[9], q[10], q[11], q[17], q[0]; +ctrl(6) @ x q[7], q[9], q[10], q[11], q[14], q[17], q[0]; +ctrl(5) @ x q[8], q[9], q[10], q[11], q[17], q[0]; +x q[8]; +ctrl(6) @ x q[8], q[9], q[10], q[11], q[13], q[17], q[0]; +x q[14]; +ctrl(6) @ x q[9], q[11], q[13], q[14], q[16], q[17], q[0]; +ctrl(6) @ x q[9], q[10], q[11], q[13], q[14], q[17], q[0]; +ctrl(5) @ x q[9], q[11], q[13], q[14], q[17], q[0]; +x q[14]; +x q[11]; +x q[16]; +ctrl(6) @ x q[9], q[11], q[12], q[14], q[16], q[18], q[1]; +ctrl(6) @ x q[9], q[11], q[12], q[14], q[16], q[18], q[0]; +ctrl(7) @ x q[9], q[11], q[12], q[13], q[14], q[16], q[18], q[0]; +ctrl(7) @ x q[9], q[10], q[11], q[12], q[13], q[14], q[18], q[0]; +ctrl(6) @ x q[8], q[9], q[10], q[11], q[12], q[18], q[1]; +x q[17]; +ctrl(6) @ x q[9], q[12], q[14], q[16], q[17], q[18], q[1]; +ctrl(7) @ x q[8], q[9], q[12], q[13], q[16], q[17], q[18], q[0]; +x q[14]; +ctrl(7) @ x q[7], q[9], q[11], q[12], q[14], q[16], q[18], q[0]; +ctrl(7) @ x q[7], q[9], q[12], q[14], q[16], q[17], q[18], q[0]; +x q[12]; +cx q[12], q[6]; +ccx q[12], q[18], q[5]; +ccx q[12], q[18], q[4]; +ccx q[12], q[18], q[3]; +ccx q[12], q[18], q[2]; +ccx q[12], q[18], q[1]; +x q[18]; +cx q[18], q[6]; +cx q[18], q[5]; +cx q[18], q[4]; +cx q[18], q[3]; +cx q[18], q[2]; +cx q[18], q[1]; diff --git a/test/circuits/original/add6_196.real b/test/circuits/original/add6_196.real deleted file mode 100755 index 0f9c2b4f..00000000 --- a/test/circuits/original/add6_196.real +++ /dev/null @@ -1,245 +0,0 @@ -# Function: add6 -# Used Library: EQ (Gates: 229, Quantum costs: 6455) -# This file have been taken from RevLib (www.revlib.org). -.version 1.0 -# Created by tfc2real J. Rice Jan 2009 -# Parameters for Exorcism: -n 1 -r 1 -a 0 -b 1 -c 1 -# Templates applied in both directions -.numvars 19 -.variables f6 f5 f4 f3 f2 f1 f0 x11 x10 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.inputs 0 0 0 0 0 0 0 x11 x10 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.outputs f6 f5 f4 f3 f2 f1 f0 x11 x10 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.constants 0000000------------ -.garbage 111111111111------- -.begin -t4 x2 x8 x9 f4 -t3 x2 x8 f2 -t3 x2 x8 f3 -t3 x1 x7 f1 -t3 x1 x7 f2 -t3 x1 x7 f3 -t3 x3 x9 f3 -t3 x3 x9 f4 -t3 x3 x9 f5 -t3 x3 x9 f6 -t4 x3 x9 x10 f5 -t4 x3 x9 x10 f6 -t4 x4 x10 x11 f6 -t4 x2 x3 x8 f4 -t4 x2 x3 x8 f5 -t5 x2 x3 x4 x8 f5 -t4 x0 x6 x7 f2 -t4 x0 x6 x7 f3 -t4 x0 x6 x7 f4 -t4 x0 x6 x7 f5 -t4 x1 x7 x8 f3 -t4 x4 x5 x10 f6 -t3 x4 x10 f4 -t3 x4 x10 f5 -t3 x5 x11 f5 -t3 x5 x11 f6 -t1 x2 -t6 x1 x2 x3 x7 x10 f5 -t6 x1 x2 x7 x9 x10 f5 -t4 x1 x2 x7 f3 -t6 x0 x2 x6 x7 x9 f4 -t6 x0 x2 x6 x7 x9 f5 -t6 x0 x1 x2 x6 x9 f4 -t6 x0 x1 x2 x6 x9 f5 -t1 x8 -t8 x0 x3 x4 x6 x7 x8 x11 f6 -t8 x0 x1 x3 x4 x6 x8 x11 f6 -t6 x1 x7 x8 x9 x10 f5 -t6 x1 x3 x7 x8 x10 f5 -t3 x2 x8 f2 -t1 x1 -t4 x0 x1 x6 f2 -t7 x0 x1 x3 x4 x6 x8 f5 -t8 x0 x1 x3 x6 x8 x10 x11 f6 -t6 x0 x1 x6 x8 x9 f4 -t6 x0 x1 x6 x8 x9 f5 -t6 x0 x1 x6 x8 x9 f6 -t7 x0 x1 x6 x8 x9 x10 f5 -t6 x0 x1 x3 x6 x8 f4 -t6 x0 x1 x3 x6 x8 f5 -t5 x0 x1 x6 x8 f3 -t8 x0 x1 x4 x5 x6 x8 x9 f6 -t1 x8 -t5 x0 x1 x2 x6 f3 -t5 x0 x1 x2 x6 f6 -t6 x0 x1 x2 x3 x6 f4 -t6 x0 x1 x2 x3 x6 f5 -t6 x0 x1 x2 x3 x6 f6 -t1 x7 -t5 x0 x6 x7 x8 f3 -t6 x0 x3 x6 x7 x8 f4 -t6 x0 x3 x6 x7 x8 f5 -t1 x8 -t6 x0 x6 x7 x8 x9 f4 -t7 x0 x3 x4 x6 x7 x8 f5 -t8 x0 x4 x6 x7 x8 x9 x11 f6 -t8 x0 x3 x6 x7 x8 x10 x11 f6 -t8 x0 x3 x5 x6 x7 x8 x10 f6 -t5 x0 x2 x6 x7 f3 -t5 x0 x2 x6 x7 f4 -t5 x0 x2 x6 x7 f5 -t3 x1 x7 f1 -t1 x5 -t5 x3 x4 x5 x9 f6 -t5 x3 x5 x9 x10 f6 -t8 x0 x1 x5 x6 x8 x9 x10 f6 -t1 x8 -t8 x0 x5 x6 x7 x8 x9 x10 f6 -t8 x0 x2 x3 x5 x6 x7 x10 f6 -t1 x2 -t8 x0 x2 x5 x6 x7 x9 x10 f6 -t1 x4 -t5 x2 x4 x8 x9 f5 -t4 x3 x4 x9 f5 -t1 x8 -t8 x0 x1 x3 x4 x5 x6 x8 f6 -t7 x0 x1 x3 x4 x6 x8 f6 -t8 x0 x1 x4 x6 x8 x9 x11 f6 -t7 x0 x1 x4 x6 x8 x9 f5 -t7 x0 x4 x6 x7 x8 x9 f5 -t1 x8 -t6 x2 x4 x5 x8 x9 f6 -t6 x2 x3 x4 x5 x8 f6 -t1 x2 -t8 x0 x1 x2 x4 x5 x6 x9 f6 -t8 x0 x1 x2 x3 x4 x5 x6 f6 -t1 x11 -t1 x8 -t8 x0 x6 x7 x8 x9 x10 x11 f6 -t3 x5 x11 f5 -t1 x5 -t5 x3 x4 x9 x11 f6 -t1 x10 -t7 x0 x2 x3 x6 x7 x10 f5 -t7 x0 x2 x6 x7 x9 x10 f5 -t7 x0 x1 x2 x6 x9 x10 f5 -t7 x0 x1 x2 x6 x9 x10 f6 -t7 x0 x1 x2 x3 x6 x10 f5 -t7 x0 x1 x2 x3 x6 x10 f6 -t8 x0 x1 x3 x5 x6 x8 x10 f6 -t7 x0 x1 x3 x6 x8 x10 f5 -t5 x3 x9 x10 x11 f6 -t4 x3 x9 x10 f6 -t8 x0 x2 x3 x6 x7 x10 x11 f6 -t8 x0 x1 x2 x3 x6 x10 x11 f6 -t8 x0 x1 x2 x6 x9 x10 x11 f6 -t8 x0 x1 x6 x8 x9 x10 x11 f6 -t1 x1 -t8 x0 x2 x6 x7 x9 x10 x11 f6 -t1 x7 -t3 x4 x10 f4 -t1 x3 -t5 x1 x3 x7 x8 f4 -t6 x1 x3 x7 x8 x11 f6 -t7 x1 x2 x3 x4 x7 x11 f6 -t1 x11 -t7 x1 x3 x7 x8 x10 x11 f6 -t6 x1 x3 x4 x7 x8 f6 -t7 x1 x3 x4 x5 x7 x8 f6 -t5 x1 x2 x3 x7 f4 -t1 x4 -t6 x1 x3 x4 x7 x8 f5 -t6 x1 x2 x3 x4 x7 f5 -t7 x1 x2 x3 x7 x10 x11 f6 -t7 x1 x2 x3 x5 x7 x10 f6 -t1 x2 -t7 x1 x3 x5 x7 x8 x10 f6 -t1 x8 -t5 x2 x3 x8 x10 f5 -t1 x11 -t6 x2 x3 x4 x8 x11 f6 -t7 x1 x3 x4 x7 x8 x11 f6 -t6 x1 x3 x4 x7 x11 f6 -t1 x5 -t6 x2 x3 x8 x10 x11 f6 -t5 x2 x3 x8 x11 f6 -t6 x2 x3 x5 x8 x10 f6 -t1 x2 -t7 x1 x2 x3 x4 x5 x7 f6 -t6 x1 x2 x3 x5 x7 f6 -t1 x2 -t1 x5 -t1 x7 -t6 x0 x2 x3 x6 x7 f4 -t6 x0 x2 x3 x6 x7 f5 -t8 x0 x3 x4 x5 x6 x7 x8 f6 -t8 x0 x2 x3 x4 x5 x6 x7 f6 -t7 x0 x3 x6 x7 x8 x10 f5 -t6 x0 x3 x6 x7 x10 f5 -t1 x2 -t7 x0 x2 x3 x4 x6 x7 f5 -t7 x0 x2 x3 x4 x6 x7 f6 -t8 x0 x2 x3 x4 x6 x7 x11 f6 -t7 x0 x2 x3 x6 x7 x11 f6 -t1 x7 -t1 x1 -t7 x0 x1 x2 x3 x4 x6 f5 -t8 x0 x1 x2 x3 x5 x6 x10 f6 -t8 x0 x1 x2 x3 x4 x6 x11 f6 -t1 x11 -t7 x0 x1 x2 x3 x6 x11 f6 -t1 x1 -t1 x9 -t5 x1 x2 x7 x9 f4 -t7 x1 x2 x7 x9 x10 x11 f6 -t6 x1 x2 x7 x9 x11 f6 -t7 x1 x2 x4 x7 x9 x11 f6 -t6 x1 x2 x4 x7 x9 f5 -t7 x1 x2 x5 x7 x9 x10 f6 -t1 x2 -t6 x2 x5 x8 x9 x10 f6 -t5 x2 x8 x9 x10 f5 -t5 x2 x8 x9 x10 f6 -t1 x10 -t3 x3 x9 f3 -t1 x11 -t6 x2 x8 x9 x10 x11 f6 -t6 x2 x4 x8 x9 x11 f6 -t1 x8 -t5 x1 x7 x8 x9 f4 -t6 x1 x4 x7 x8 x9 f5 -t6 x1 x4 x7 x8 x9 f6 -t7 x1 x7 x8 x9 x10 x11 f6 -t7 x1 x4 x7 x8 x9 x11 f6 -t6 x1 x7 x8 x9 x10 f6 -t1 x10 -t7 x1 x5 x7 x8 x9 x10 f6 -t1 x4 -t7 x1 x2 x4 x5 x7 x9 f6 -t7 x1 x4 x5 x7 x8 x9 f6 -t6 x1 x4 x5 x7 x9 f6 -t1 x4 -t1 x7 -t1 x2 -t7 x0 x2 x4 x6 x7 x9 f5 -t7 x0 x2 x4 x6 x7 x9 f6 -t8 x0 x2 x4 x5 x6 x7 x9 f6 -t8 x0 x4 x5 x6 x7 x8 x9 f6 -t7 x0 x6 x7 x8 x9 x10 f5 -t1 x1 -t7 x0 x1 x2 x4 x6 x9 f5 -t8 x0 x1 x2 x5 x6 x9 x10 f6 -t1 x4 -t8 x0 x2 x4 x6 x7 x9 x11 f6 -t8 x0 x1 x2 x4 x6 x9 x11 f6 -t1 x6 -t2 x6 f0 -t3 x0 x6 f1 -t3 x0 x6 f2 -t3 x0 x6 f3 -t3 x0 x6 f4 -t3 x0 x6 f5 -t1 x0 -t2 x0 f0 -t2 x0 f1 -t2 x0 f2 -t2 x0 f3 -t2 x0 f4 -t2 x0 f5 -.end -# size = 229 cost = 6487 diff --git a/test/circuits/original/alu1_198.qasm b/test/circuits/original/alu1_198.qasm new file mode 100644 index 00000000..e55352bd --- /dev/null +++ b/test/circuits/original/alu1_198.qasm @@ -0,0 +1,37 @@ +// i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 +// o 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 +OPENQASM 3.0; +include "stdgates.inc"; +qubit[20] q; +ctrl(3) @ x q[8], q[12], q[16], q[4]; +x q[7]; +x q[6]; +x q[5]; +x q[4]; +ctrl(3) @ x q[8], q[13], q[17], q[5]; +ctrl(3) @ x q[8], q[14], q[18], q[6]; +ctrl(3) @ x q[8], q[15], q[19], q[7]; +ctrl(3) @ x q[9], q[12], q[16], q[4]; +ccx q[9], q[16], q[4]; +ctrl(3) @ x q[9], q[13], q[17], q[5]; +ccx q[9], q[17], q[5]; +ctrl(3) @ x q[9], q[14], q[18], q[6]; +ccx q[9], q[18], q[6]; +ctrl(3) @ x q[9], q[15], q[19], q[7]; +ccx q[9], q[19], q[7]; +x q[17]; +x q[11]; +ctrl(3) @ x q[11], q[13], q[17], q[1]; +x q[13]; +x q[10]; +ctrl(3) @ x q[10], q[13], q[17], q[1]; +x q[18]; +ctrl(3) @ x q[11], q[14], q[18], q[2]; +x q[14]; +ctrl(3) @ x q[10], q[14], q[18], q[2]; +x q[19]; +ctrl(3) @ x q[11], q[15], q[19], q[3]; +x q[15]; +ctrl(3) @ x q[10], q[15], q[19], q[3]; +x q[16]; +ctrl(3) @ x q[11], q[12], q[16], q[0]; diff --git a/test/circuits/original/alu1_198.real b/test/circuits/original/alu1_198.real deleted file mode 100755 index f2e6eaad..00000000 --- a/test/circuits/original/alu1_198.real +++ /dev/null @@ -1,47 +0,0 @@ -# Function: alu1 -# Used Library: EQ (Gates: 32, Quantum costs: 228) -# This file have been taken from RevLib (www.revlib.org). -.version 1.0 -# Created by tfc2real J. Rice Jan 2009 -# Parameters for Exorcism: -n 1 -r 1 -a 0 -b 1 -c 1 -# Templates applied in both directions -.numvars 20 -.variables f7 f6 f5 f4 f3 f2 f1 f0 x11 x10 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.inputs 0 0 0 0 0 0 0 0 x11 x10 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.outputs f7 f6 f5 f4 f3 f2 f1 f0 x11 x10 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.constants 00000000------------ -.garbage 111111111111-------- -.begin -t4 x3 x7 x11 f3 -t1 f0 -t1 f1 -t1 f2 -t1 f3 -t4 x2 x6 x11 f2 -t4 x1 x5 x11 f1 -t4 x0 x4 x11 f0 -t4 x3 x7 x10 f3 -t3 x3 x10 f3 -t4 x2 x6 x10 f2 -t3 x2 x10 f2 -t4 x1 x5 x10 f1 -t3 x1 x10 f1 -t4 x0 x4 x10 f0 -t3 x0 x10 f0 -t1 x2 -t1 x8 -t4 x2 x6 x8 f6 -t1 x6 -t1 x9 -t4 x2 x6 x9 f6 -t1 x1 -t4 x1 x5 x8 f5 -t1 x5 -t4 x1 x5 x9 f5 -t1 x0 -t4 x0 x4 x8 f4 -t1 x4 -t4 x0 x4 x9 f4 -t1 x3 -t4 x3 x7 x8 f7 -.end diff --git a/test/circuits/original/apla_203.qasm b/test/circuits/original/apla_203.qasm new file mode 100644 index 00000000..02e4bbff --- /dev/null +++ b/test/circuits/original/apla_203.qasm @@ -0,0 +1,85 @@ +// i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 +// o 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 +OPENQASM 3.0; +include "stdgates.inc"; +qubit[22] q; +ctrl(3) @ x q[13], q[14], q[20], q[11]; +ctrl(3) @ x q[13], q[14], q[20], q[0]; +ctrl(3) @ x q[13], q[14], q[18], q[7]; +ctrl(3) @ x q[13], q[14], q[18], q[4]; +ctrl(3) @ x q[13], q[14], q[18], q[2]; +ctrl(4) @ x q[12], q[13], q[14], q[20], q[11]; +ctrl(4) @ x q[12], q[13], q[14], q[20], q[10]; +ctrl(4) @ x q[12], q[13], q[14], q[18], q[7]; +ctrl(4) @ x q[12], q[13], q[14], q[18], q[5]; +ctrl(4) @ x q[12], q[13], q[14], q[18], q[2]; +x q[20]; +x q[21]; +x q[19]; +x q[18]; +ctrl(6) @ x q[12], q[13], q[18], q[19], q[20], q[21], q[2]; +ctrl(5) @ x q[13], q[18], q[19], q[20], q[21], q[10]; +ctrl(5) @ x q[13], q[18], q[19], q[20], q[21], q[4]; +ctrl(5) @ x q[13], q[18], q[19], q[20], q[21], q[0]; +x q[17]; +x q[16]; +x q[15]; +ctrl(6) @ x q[13], q[15], q[16], q[17], q[18], q[20], q[6]; +ctrl(6) @ x q[13], q[15], q[16], q[17], q[18], q[20], q[3]; +x q[16]; +x q[13]; +ctrl(3) @ x q[13], q[14], q[16], q[2]; +ctrl(6) @ x q[12], q[13], q[15], q[18], q[19], q[21], q[11]; +ctrl(6) @ x q[12], q[13], q[15], q[18], q[19], q[21], q[10]; +ctrl(8) @ x q[12], q[13], q[14], q[15], q[16], q[18], q[19], q[21], q[11]; +ctrl(8) @ x q[12], q[13], q[14], q[15], q[16], q[18], q[19], q[21], q[10]; +ctrl(8) @ x q[12], q[13], q[14], q[16], q[17], q[18], q[20], q[21], q[7]; +ctrl(8) @ x q[12], q[13], q[14], q[16], q[17], q[18], q[20], q[21], q[4]; +x q[16]; +ctrl(5) @ x q[12], q[13], q[16], q[17], q[20], q[7]; +ctrl(5) @ x q[12], q[13], q[16], q[17], q[20], q[1]; +ctrl(6) @ x q[13], q[16], q[17], q[18], q[20], q[21], q[4]; +ctrl(7) @ x q[13], q[14], q[15], q[16], q[18], q[19], q[21], q[10]; +ctrl(7) @ x q[13], q[14], q[15], q[16], q[18], q[19], q[21], q[2]; +ctrl(7) @ x q[13], q[14], q[15], q[16], q[18], q[19], q[21], q[0]; +x q[13]; +x q[12]; +ctrl(7) @ x q[12], q[13], q[15], q[16], q[17], q[18], q[20], q[9]; +ctrl(7) @ x q[12], q[13], q[15], q[16], q[17], q[18], q[20], q[8]; +ctrl(7) @ x q[12], q[14], q[15], q[16], q[17], q[18], q[20], q[9]; +ctrl(8) @ x q[12], q[13], q[14], q[15], q[16], q[17], q[18], q[20], q[8]; +ctrl(8) @ x q[12], q[13], q[14], q[15], q[16], q[17], q[18], q[20], q[7]; +ctrl(8) @ x q[12], q[13], q[14], q[15], q[16], q[17], q[18], q[20], q[6]; +ctrl(8) @ x q[12], q[13], q[14], q[15], q[16], q[17], q[18], q[20], q[1]; +x q[13]; +ctrl(8) @ x q[12], q[13], q[14], q[15], q[16], q[17], q[18], q[20], q[3]; +ctrl(8) @ x q[12], q[13], q[14], q[16], q[17], q[18], q[20], q[21], q[4]; +ctrl(7) @ x q[12], q[13], q[14], q[17], q[19], q[20], q[21], q[9]; +ctrl(7) @ x q[12], q[13], q[14], q[17], q[19], q[20], q[21], q[4]; +ctrl(8) @ x q[12], q[13], q[14], q[16], q[17], q[19], q[20], q[21], q[2]; +ctrl(9) @ x q[12], q[13], q[15], q[16], q[17], q[18], q[19], q[20], q[21], q[9]; +ctrl(9) @ x q[12], q[13], q[15], q[16], q[17], q[18], q[19], q[20], q[21], q[2]; +x q[13]; +x q[14]; +ctrl(7) @ x q[13], q[14], q[15], q[16], q[17], q[18], q[20], q[8]; +ctrl(7) @ x q[13], q[14], q[15], q[16], q[17], q[18], q[20], q[6]; +ctrl(7) @ x q[13], q[14], q[15], q[16], q[17], q[18], q[20], q[1]; +ctrl(7) @ x q[13], q[14], q[15], q[16], q[17], q[19], q[21], q[7]; +ctrl(7) @ x q[13], q[14], q[15], q[16], q[17], q[19], q[21], q[2]; +ctrl(6) @ x q[13], q[14], q[18], q[19], q[20], q[21], q[11]; +ctrl(6) @ x q[13], q[14], q[18], q[19], q[20], q[21], q[10]; +ctrl(9) @ x q[13], q[14], q[15], q[16], q[17], q[18], q[19], q[20], q[21], q[2]; +ctrl(8) @ x q[12], q[13], q[14], q[15], q[16], q[17], q[19], q[21], q[9]; +ctrl(8) @ x q[12], q[13], q[14], q[15], q[16], q[17], q[19], q[21], q[7]; +ctrl(9) @ x q[12], q[14], q[15], q[16], q[17], q[18], q[19], q[20], q[21], q[9]; +ctrl(9) @ x q[12], q[14], q[15], q[16], q[17], q[18], q[19], q[20], q[21], q[2]; +x q[13]; +ctrl(5) @ x q[13], q[14], q[16], q[17], q[20], q[8]; +ctrl(5) @ x q[13], q[14], q[16], q[17], q[20], q[7]; +ctrl(6) @ x q[12], q[13], q[14], q[16], q[17], q[20], q[9]; +ctrl(6) @ x q[12], q[13], q[14], q[16], q[17], q[20], q[8]; +ctrl(6) @ x q[12], q[13], q[14], q[16], q[17], q[20], q[7]; +ctrl(6) @ x q[12], q[13], q[14], q[16], q[17], q[20], q[1]; +ctrl(6) @ x q[13], q[14], q[15], q[18], q[19], q[21], q[11]; +ctrl(6) @ x q[13], q[14], q[15], q[18], q[19], q[21], q[3]; +ctrl(6) @ x q[13], q[14], q[15], q[18], q[19], q[21], q[0]; diff --git a/test/circuits/original/apla_203.real b/test/circuits/original/apla_203.real deleted file mode 100755 index 50a9cf86..00000000 --- a/test/circuits/original/apla_203.real +++ /dev/null @@ -1,95 +0,0 @@ -# Function: apex4 -# Used Library: MCT (Gates: 80, Quantum costs: 3438) -# This file have been taken from RevLib (www.revlib.org). -.version 1.0 -# Created by tfc2real J. Rice Jan 2009 -# Parameters for Exorcism: -n 1 -r 1 -a 0 -b 1 -c 1 -# Templates applied in both directions -.numvars 22 -.variables f11 f10 f9 f8 f7 f6 f5 f4 f3 f2 f1 f0 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.inputs 0 0 0 0 0 0 0 0 0 0 0 0 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.outputs f11 f10 f9 f8 f7 f6 f5 f4 f3 f2 f1 f0 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.constants 000000000000---------- -.garbage 1111111111------------ -.begin -t4 x1 x7 x8 f0 -t4 x1 x7 x8 f11 -t4 x3 x7 x8 f4 -t4 x3 x7 x8 f7 -t4 x3 x7 x8 f9 -t5 x1 x7 x8 x9 f0 -t5 x1 x7 x8 x9 f1 -t5 x3 x7 x8 x9 f4 -t5 x3 x7 x8 x9 f6 -t5 x3 x7 x8 x9 f9 -t1 x1 -t1 x0 -t1 x2 -t1 x3 -t7 x0 x1 x2 x3 x8 x9 f9 -t6 x0 x1 x2 x3 x8 f1 -t6 x0 x1 x2 x3 x8 f7 -t6 x0 x1 x2 x3 x8 f11 -t1 x4 -t1 x5 -t1 x6 -t7 x1 x3 x4 x5 x6 x8 f5 -t7 x1 x3 x4 x5 x6 x8 f8 -t1 x5 -t1 x8 -t4 x5 x7 x8 f9 -t7 x0 x2 x3 x6 x8 x9 f0 -t7 x0 x2 x3 x6 x8 x9 f1 -t9 x0 x2 x3 x5 x6 x7 x8 x9 f0 -t9 x0 x2 x3 x5 x6 x7 x8 x9 f1 -t9 x0 x1 x3 x4 x5 x7 x8 x9 f4 -t9 x0 x1 x3 x4 x5 x7 x8 x9 f7 -t1 x5 -t6 x1 x4 x5 x8 x9 f4 -t6 x1 x4 x5 x8 x9 f10 -t7 x0 x1 x3 x4 x5 x8 f7 -t8 x0 x2 x3 x5 x6 x7 x8 f1 -t8 x0 x2 x3 x5 x6 x7 x8 f9 -t8 x0 x2 x3 x5 x6 x7 x8 f11 -t1 x8 -t1 x9 -t8 x1 x3 x4 x5 x6 x8 x9 f2 -t8 x1 x3 x4 x5 x6 x8 x9 f3 -t8 x1 x3 x4 x5 x6 x7 x9 f2 -t9 x1 x3 x4 x5 x6 x7 x8 x9 f3 -t9 x1 x3 x4 x5 x6 x7 x8 x9 f4 -t9 x1 x3 x4 x5 x6 x7 x8 x9 f5 -t9 x1 x3 x4 x5 x6 x7 x8 x9 f10 -t1 x8 -t9 x1 x3 x4 x5 x6 x7 x8 x9 f8 -t9 x0 x1 x3 x4 x5 x7 x8 x9 f7 -t8 x0 x1 x2 x4 x7 x8 x9 f2 -t8 x0 x1 x2 x4 x7 x8 x9 f7 -t9 x0 x1 x2 x4 x5 x7 x8 x9 f9 -t10 x0 x1 x2 x3 x4 x5 x6 x8 x9 f2 -t10 x0 x1 x2 x3 x4 x5 x6 x8 x9 f9 -t1 x8 -t1 x7 -t8 x1 x3 x4 x5 x6 x7 x8 f3 -t8 x1 x3 x4 x5 x6 x7 x8 f5 -t8 x1 x3 x4 x5 x6 x7 x8 f10 -t8 x0 x2 x4 x5 x6 x7 x8 f4 -t8 x0 x2 x4 x5 x6 x7 x8 f9 -t7 x0 x1 x2 x3 x7 x8 f0 -t7 x0 x1 x2 x3 x7 x8 f1 -t10 x0 x1 x2 x3 x4 x5 x6 x7 x8 f9 -t9 x0 x2 x4 x5 x6 x7 x8 x9 f2 -t9 x0 x2 x4 x5 x6 x7 x8 x9 f4 -t10 x0 x1 x2 x3 x4 x5 x6 x7 x9 f2 -t10 x0 x1 x2 x3 x4 x5 x6 x7 x9 f9 -t1 x8 -t6 x1 x4 x5 x7 x8 f3 -t6 x1 x4 x5 x7 x8 f4 -t7 x1 x4 x5 x7 x8 x9 f2 -t7 x1 x4 x5 x7 x8 x9 f3 -t7 x1 x4 x5 x7 x8 x9 f4 -t7 x1 x4 x5 x7 x8 x9 f10 -t7 x0 x2 x3 x6 x7 x8 f0 -t7 x0 x2 x3 x6 x7 x8 f8 -t7 x0 x2 x3 x6 x7 x8 f11 -.end diff --git a/test/circuits/original/c2_181.qasm b/test/circuits/original/c2_181.qasm new file mode 100644 index 00000000..3226b84b --- /dev/null +++ b/test/circuits/original/c2_181.qasm @@ -0,0 +1,121 @@ +// i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 +// o 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 +OPENQASM 3.0; +include "stdgates.inc"; +qubit[35] q; +ccx q[0], q[1], q[2]; +ccx q[3], q[4], q[5]; +ccx q[6], q[7], q[9]; +ccx q[10], q[11], q[12]; +ccx q[13], q[14], q[16]; +ccx q[17], q[18], q[20]; +ccx q[21], q[22], q[24]; +ccx q[25], q[26], q[27]; +ccx q[28], q[29], q[31]; +ccx q[32], q[33], q[34]; +cx q[0], q[1]; +cx q[3], q[4]; +cx q[6], q[7]; +cx q[10], q[11]; +cx q[13], q[14]; +cx q[17], q[18]; +cx q[21], q[22]; +cx q[25], q[26]; +cx q[28], q[29]; +cx q[32], q[33]; +ccx q[7], q[11], q[8]; +ccx q[14], q[18], q[15]; +ccx q[22], q[26], q[23]; +ccx q[29], q[33], q[30]; +ccx q[15], q[23], q[19]; +ccx q[2], q[4], q[5]; +ccx q[9], q[11], q[12]; +ccx q[16], q[18], q[20]; +ccx q[24], q[26], q[27]; +ccx q[31], q[33], q[34]; +ccx q[5], q[8], q[12]; +ccx q[20], q[23], q[27]; +ccx q[12], q[19], q[27]; +ccx q[12], q[15], q[20]; +ccx q[27], q[30], q[34]; +ccx q[5], q[7], q[9]; +ccx q[12], q[14], q[16]; +ccx q[20], q[22], q[24]; +ccx q[27], q[29], q[31]; +ccx q[15], q[23], q[19]; +ccx q[7], q[11], q[8]; +ccx q[14], q[18], q[15]; +ccx q[22], q[26], q[23]; +ccx q[29], q[33], q[30]; +cx q[2], q[4]; +cx q[5], q[7]; +cx q[9], q[11]; +cx q[12], q[14]; +cx q[16], q[18]; +cx q[20], q[22]; +cx q[24], q[26]; +cx q[27], q[29]; +cx q[31], q[33]; +x q[1]; +x q[4]; +x q[7]; +x q[11]; +x q[14]; +x q[18]; +x q[22]; +x q[26]; +x q[29]; +cx q[3], q[4]; +cx q[6], q[7]; +cx q[10], q[11]; +cx q[13], q[14]; +cx q[17], q[18]; +cx q[21], q[22]; +cx q[25], q[26]; +cx q[28], q[29]; +ccx q[7], q[11], q[8]; +ccx q[14], q[18], q[15]; +ccx q[22], q[26], q[23]; +ccx q[15], q[23], q[19]; +ccx q[5], q[7], q[9]; +ccx q[12], q[14], q[16]; +ccx q[20], q[22], q[24]; +ccx q[27], q[29], q[31]; +ccx q[12], q[15], q[20]; +ccx q[12], q[19], q[27]; +ccx q[5], q[8], q[12]; +ccx q[20], q[23], q[27]; +ccx q[2], q[4], q[5]; +ccx q[9], q[11], q[12]; +ccx q[16], q[18], q[20]; +ccx q[24], q[26], q[27]; +ccx q[15], q[23], q[19]; +ccx q[7], q[11], q[8]; +ccx q[14], q[18], q[15]; +ccx q[22], q[26], q[23]; +cx q[3], q[4]; +cx q[6], q[7]; +cx q[10], q[11]; +cx q[13], q[14]; +cx q[17], q[18]; +cx q[21], q[22]; +cx q[25], q[26]; +cx q[28], q[29]; +ccx q[0], q[1], q[2]; +ccx q[3], q[4], q[5]; +ccx q[6], q[7], q[9]; +ccx q[10], q[11], q[12]; +ccx q[13], q[14], q[16]; +ccx q[17], q[18], q[20]; +ccx q[21], q[22], q[24]; +ccx q[25], q[26], q[27]; +ccx q[28], q[29], q[31]; +x q[1]; +x q[4]; +x q[7]; +x q[11]; +x q[14]; +x q[18]; +x q[22]; +x q[26]; +x q[29]; diff --git a/test/circuits/original/c2_181.real b/test/circuits/original/c2_181.real deleted file mode 100755 index 656dedb3..00000000 --- a/test/circuits/original/c2_181.real +++ /dev/null @@ -1,125 +0,0 @@ -# Used Library: MCT (gates: 116, quantum costs: 368) -# This file have been taken from RevLib (www.revlib.org). -.version 1.0 -.numvars 35 -.variables x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 x32 x33 x34 -.inputs x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 x32 x33 x34 -.outputs x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 x32 x33 x34 -.begin -t3 x0 x1 x2 -t3 x3 x4 x5 -t3 x6 x7 x9 -t3 x10 x11 x12 -t3 x13 x14 x16 -t3 x17 x18 x20 -t3 x21 x22 x24 -t3 x25 x26 x27 -t3 x28 x29 x31 -t3 x32 x33 x34 -t2 x0 x1 -t2 x3 x4 -t2 x6 x7 -t2 x10 x11 -t2 x13 x14 -t2 x17 x18 -t2 x21 x22 -t2 x25 x26 -t2 x28 x29 -t2 x32 x33 -t3 x7 x11 x8 -t3 x14 x18 x15 -t3 x22 x26 x23 -t3 x29 x33 x30 -t3 x15 x23 x19 -t3 x2 x4 x5 -t3 x9 x11 x12 -t3 x16 x18 x20 -t3 x24 x26 x27 -t3 x31 x33 x34 -t3 x5 x8 x12 -t3 x20 x23 x27 -t3 x12 x19 x27 -t3 x12 x15 x20 -t3 x27 x30 x34 -t3 x5 x7 x9 -t3 x12 x14 x16 -t3 x20 x22 x24 -t3 x27 x29 x31 -t3 x15 x23 x19 -t3 x7 x11 x8 -t3 x14 x18 x15 -t3 x22 x26 x23 -t3 x29 x33 x30 -t2 x2 x4 -t2 x5 x7 -t2 x9 x11 -t2 x12 x14 -t2 x16 x18 -t2 x20 x22 -t2 x24 x26 -t2 x27 x29 -t2 x31 x33 -t1 x1 -t1 x4 -t1 x7 -t1 x11 -t1 x14 -t1 x18 -t1 x22 -t1 x26 -t1 x29 -t2 x3 x4 -t2 x6 x7 -t2 x10 x11 -t2 x13 x14 -t2 x17 x18 -t2 x21 x22 -t2 x25 x26 -t2 x28 x29 -t3 x7 x11 x8 -t3 x14 x18 x15 -t3 x22 x26 x23 -t3 x15 x23 x19 -t3 x5 x7 x9 -t3 x12 x14 x16 -t3 x20 x22 x24 -t3 x27 x29 x31 -t3 x12 x15 x20 -t3 x12 x19 x27 -t3 x5 x8 x12 -t3 x20 x23 x27 -t3 x2 x4 x5 -t3 x9 x11 x12 -t3 x16 x18 x20 -t3 x24 x26 x27 -t3 x15 x23 x19 -t3 x7 x11 x8 -t3 x14 x18 x15 -t3 x22 x26 x23 -t2 x3 x4 -t2 x6 x7 -t2 x10 x11 -t2 x13 x14 -t2 x17 x18 -t2 x21 x22 -t2 x25 x26 -t2 x28 x29 -t3 x0 x1 x2 -t3 x3 x4 x5 -t3 x6 x7 x9 -t3 x10 x11 x12 -t3 x13 x14 x16 -t3 x17 x18 x20 -t3 x21 x22 x24 -t3 x25 x26 x27 -t3 x28 x29 x31 -t1 x1 -t1 x4 -t1 x7 -t1 x11 -t1 x14 -t1 x18 -t1 x22 -t1 x26 -t1 x29 -.end diff --git a/test/circuits/original/c2_182.qasm b/test/circuits/original/c2_182.qasm new file mode 100644 index 00000000..62b009e2 --- /dev/null +++ b/test/circuits/original/c2_182.qasm @@ -0,0 +1,310 @@ +// i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 +// o 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 +OPENQASM 3.0; +include "stdgates.inc"; +qubit[35] q; +ctrl @ U(pi/2,-pi/2,pi/2) q[0], q[2]; +ctrl @ U(pi/2,-pi/2,pi/2) q[1], q[2]; +ctrl @ U(pi/2,-pi/2,pi/2) q[3], q[5]; +ctrl @ U(pi/2,-pi/2,pi/2) q[4], q[5]; +ctrl @ U(pi/2,-pi/2,pi/2) q[6], q[9]; +ctrl @ U(pi/2,-pi/2,pi/2) q[7], q[9]; +ctrl @ U(pi/2,-pi/2,pi/2) q[10], q[12]; +ctrl @ U(pi/2,-pi/2,pi/2) q[11], q[12]; +ctrl @ U(pi/2,-pi/2,pi/2) q[13], q[16]; +ctrl @ U(pi/2,-pi/2,pi/2) q[14], q[16]; +ctrl @ U(pi/2,-pi/2,pi/2) q[17], q[20]; +ctrl @ U(pi/2,-pi/2,pi/2) q[18], q[20]; +ctrl @ U(pi/2,-pi/2,pi/2) q[21], q[24]; +ctrl @ U(pi/2,-pi/2,pi/2) q[22], q[24]; +ctrl @ U(pi/2,-pi/2,pi/2) q[25], q[27]; +ctrl @ U(pi/2,-pi/2,pi/2) q[26], q[27]; +ctrl @ U(pi/2,-pi/2,pi/2) q[28], q[31]; +ctrl @ U(pi/2,-pi/2,pi/2) q[29], q[31]; +ctrl @ U(pi/2,-pi/2,pi/2) q[32], q[34]; +ctrl @ U(pi/2,-pi/2,pi/2) q[33], q[34]; +cx q[0], q[1]; +ctrl @ U(pi/2,pi/2,-pi/2) q[1], q[2]; +cx q[6], q[7]; +ctrl @ U(pi/2,pi/2,-pi/2) q[7], q[9]; +cx q[10], q[11]; +cx q[13], q[14]; +ctrl @ U(pi/2,pi/2,-pi/2) q[14], q[16]; +cx q[17], q[18]; +cx q[21], q[22]; +ctrl @ U(pi/2,pi/2,-pi/2) q[22], q[24]; +cx q[25], q[26]; +cx q[28], q[29]; +ctrl @ U(pi/2,pi/2,-pi/2) q[29], q[31]; +cx q[32], q[33]; +ctrl @ U(pi/2,-pi/2,pi/2) q[7], q[8]; +ctrl @ U(pi/2,-pi/2,pi/2) q[11], q[8]; +cx q[11], q[7]; +ctrl @ U(pi/2,pi/2,-pi/2) q[7], q[8]; +cx q[11], q[7]; +ctrl @ U(pi/2,-pi/2,pi/2) q[14], q[15]; +ctrl @ U(pi/2,-pi/2,pi/2) q[18], q[15]; +cx q[18], q[14]; +ctrl @ U(pi/2,pi/2,-pi/2) q[14], q[15]; +cx q[18], q[14]; +ctrl @ U(pi/2,-pi/2,pi/2) q[22], q[23]; +ctrl @ U(pi/2,-pi/2,pi/2) q[26], q[23]; +cx q[26], q[22]; +ctrl @ U(pi/2,pi/2,-pi/2) q[22], q[23]; +cx q[26], q[22]; +ctrl @ U(pi/2,-pi/2,pi/2) q[29], q[30]; +ctrl @ U(pi/2,-pi/2,pi/2) q[33], q[30]; +cx q[33], q[29]; +ctrl @ U(pi/2,pi/2,-pi/2) q[29], q[30]; +cx q[33], q[29]; +ctrl @ U(pi/2,-pi/2,pi/2) q[15], q[19]; +ctrl @ U(pi/2,-pi/2,pi/2) q[23], q[19]; +cx q[23], q[15]; +ctrl @ U(pi/2,pi/2,-pi/2) q[15], q[19]; +cx q[23], q[15]; +ctrl @ U(pi/2,-pi/2,pi/2) q[2], q[5]; +cx q[2], q[4]; +cx q[4], q[3]; +ctrl @ U(pi/2,pi/2,-pi/2) q[3], q[5]; +cx q[4], q[3]; +ctrl @ U(pi/2,-pi/2,pi/2) q[9], q[12]; +cx q[9], q[11]; +ctrl @ U(pi/2,pi/2,-pi/2) q[11], q[12]; +cx q[9], q[11]; +ctrl @ U(pi/2,-pi/2,pi/2) q[16], q[20]; +cx q[16], q[18]; +ctrl @ U(pi/2,pi/2,-pi/2) q[18], q[20]; +cx q[16], q[18]; +ctrl @ U(pi/2,-pi/2,pi/2) q[24], q[27]; +cx q[24], q[26]; +ctrl @ U(pi/2,pi/2,-pi/2) q[26], q[27]; +cx q[24], q[26]; +ctrl @ U(pi/2,-pi/2,pi/2) q[31], q[34]; +cx q[31], q[33]; +ctrl @ U(pi/2,pi/2,-pi/2) q[33], q[34]; +cx q[31], q[33]; +ctrl @ U(pi/2,-pi/2,pi/2) q[5], q[12]; +ctrl @ U(pi/2,-pi/2,pi/2) q[8], q[12]; +cx q[5], q[8]; +ctrl @ U(pi/2,pi/2,-pi/2) q[8], q[12]; +cx q[5], q[8]; +ctrl @ U(pi/2,-pi/2,pi/2) q[20], q[27]; +ctrl @ U(pi/2,-pi/2,pi/2) q[23], q[27]; +cx q[20], q[23]; +ctrl @ U(pi/2,pi/2,-pi/2) q[23], q[27]; +cx q[20], q[23]; +ctrl @ U(pi/2,-pi/2,pi/2) q[12], q[27]; +ctrl @ U(pi/2,-pi/2,pi/2) q[19], q[27]; +cx q[12], q[19]; +ctrl @ U(pi/2,pi/2,-pi/2) q[19], q[27]; +cx q[12], q[19]; +ctrl @ U(pi/2,-pi/2,pi/2) q[12], q[20]; +ctrl @ U(pi/2,-pi/2,pi/2) q[15], q[20]; +cx q[12], q[15]; +ctrl @ U(pi/2,pi/2,-pi/2) q[15], q[20]; +cx q[12], q[15]; +ctrl @ U(pi/2,-pi/2,pi/2) q[27], q[34]; +ctrl @ U(pi/2,-pi/2,pi/2) q[30], q[34]; +cx q[27], q[30]; +ctrl @ U(pi/2,pi/2,-pi/2) q[30], q[34]; +cx q[27], q[30]; +ctrl @ U(pi/2,-pi/2,pi/2) q[5], q[9]; +ctrl @ U(pi/2,-pi/2,pi/2) q[7], q[9]; +cx q[5], q[7]; +ctrl @ U(pi/2,pi/2,-pi/2) q[7], q[9]; +cx q[5], q[7]; +ctrl @ U(pi/2,-pi/2,pi/2) q[12], q[16]; +ctrl @ U(pi/2,-pi/2,pi/2) q[14], q[16]; +cx q[12], q[14]; +ctrl @ U(pi/2,pi/2,-pi/2) q[14], q[16]; +cx q[12], q[14]; +ctrl @ U(pi/2,-pi/2,pi/2) q[20], q[24]; +ctrl @ U(pi/2,-pi/2,pi/2) q[22], q[24]; +cx q[20], q[22]; +ctrl @ U(pi/2,pi/2,-pi/2) q[22], q[24]; +cx q[20], q[22]; +ctrl @ U(pi/2,-pi/2,pi/2) q[27], q[31]; +ctrl @ U(pi/2,-pi/2,pi/2) q[29], q[31]; +cx q[27], q[29]; +ctrl @ U(pi/2,pi/2,-pi/2) q[29], q[31]; +cx q[27], q[29]; +ctrl @ U(pi/2,-pi/2,pi/2) q[15], q[19]; +ctrl @ U(pi/2,-pi/2,pi/2) q[23], q[19]; +cx q[15], q[23]; +ctrl @ U(pi/2,pi/2,-pi/2) q[23], q[19]; +cx q[15], q[23]; +ctrl @ U(pi/2,-pi/2,pi/2) q[7], q[8]; +ctrl @ U(pi/2,-pi/2,pi/2) q[11], q[8]; +cx q[7], q[11]; +ctrl @ U(pi/2,pi/2,-pi/2) q[11], q[8]; +x q[7]; +cx q[7], q[11]; +ctrl @ U(pi/2,-pi/2,pi/2) q[14], q[15]; +ctrl @ U(pi/2,-pi/2,pi/2) q[18], q[15]; +cx q[18], q[14]; +ctrl @ U(pi/2,pi/2,-pi/2) q[14], q[15]; +x q[18]; +cx q[18], q[14]; +ctrl @ U(pi/2,-pi/2,pi/2) q[22], q[23]; +ctrl @ U(pi/2,-pi/2,pi/2) q[26], q[23]; +cx q[22], q[26]; +ctrl @ U(pi/2,pi/2,-pi/2) q[26], q[23]; +x q[22]; +cx q[22], q[26]; +ctrl @ U(pi/2,-pi/2,pi/2) q[29], q[30]; +ctrl @ U(pi/2,-pi/2,pi/2) q[33], q[30]; +cx q[33], q[29]; +ctrl @ U(pi/2,pi/2,-pi/2) q[29], q[30]; +cx q[33], q[29]; +cx q[5], q[7]; +cx q[9], q[11]; +cx q[12], q[14]; +cx q[16], q[18]; +cx q[20], q[22]; +cx q[24], q[26]; +cx q[31], q[33]; +x q[1]; +x q[4]; +x q[29]; +cx q[6], q[7]; +cx q[10], q[11]; +cx q[13], q[14]; +cx q[17], q[18]; +cx q[21], q[22]; +cx q[25], q[26]; +ctrl @ U(pi/2,-pi/2,pi/2) q[7], q[8]; +ctrl @ U(pi/2,-pi/2,pi/2) q[11], q[8]; +cx q[11], q[7]; +ctrl @ U(pi/2,pi/2,-pi/2) q[7], q[8]; +cx q[11], q[7]; +ctrl @ U(pi/2,-pi/2,pi/2) q[14], q[15]; +ctrl @ U(pi/2,-pi/2,pi/2) q[18], q[15]; +cx q[18], q[14]; +ctrl @ U(pi/2,pi/2,-pi/2) q[14], q[15]; +cx q[18], q[14]; +ctrl @ U(pi/2,-pi/2,pi/2) q[22], q[23]; +ctrl @ U(pi/2,-pi/2,pi/2) q[26], q[23]; +cx q[26], q[22]; +ctrl @ U(pi/2,pi/2,-pi/2) q[22], q[23]; +cx q[26], q[22]; +ctrl @ U(pi/2,-pi/2,pi/2) q[15], q[19]; +ctrl @ U(pi/2,-pi/2,pi/2) q[23], q[19]; +cx q[23], q[15]; +ctrl @ U(pi/2,pi/2,-pi/2) q[15], q[19]; +cx q[23], q[15]; +ctrl @ U(pi/2,-pi/2,pi/2) q[5], q[9]; +ctrl @ U(pi/2,-pi/2,pi/2) q[7], q[9]; +cx q[7], q[5]; +ctrl @ U(pi/2,pi/2,-pi/2) q[5], q[9]; +cx q[7], q[5]; +ctrl @ U(pi/2,-pi/2,pi/2) q[12], q[16]; +ctrl @ U(pi/2,-pi/2,pi/2) q[14], q[16]; +cx q[14], q[12]; +ctrl @ U(pi/2,pi/2,-pi/2) q[12], q[16]; +cx q[14], q[12]; +ctrl @ U(pi/2,-pi/2,pi/2) q[20], q[24]; +ctrl @ U(pi/2,-pi/2,pi/2) q[22], q[24]; +cx q[22], q[20]; +ctrl @ U(pi/2,pi/2,-pi/2) q[20], q[24]; +cx q[22], q[20]; +ctrl @ U(pi/2,-pi/2,pi/2) q[27], q[31]; +cx q[29], q[28]; +ctrl @ U(pi/2,pi/2,-pi/2) q[28], q[31]; +cx q[29], q[28]; +cx q[27], q[29]; +ctrl @ U(pi/2,-pi/2,pi/2) q[12], q[20]; +ctrl @ U(pi/2,-pi/2,pi/2) q[15], q[20]; +cx q[15], q[12]; +ctrl @ U(pi/2,pi/2,-pi/2) q[12], q[20]; +cx q[15], q[12]; +ctrl @ U(pi/2,-pi/2,pi/2) q[12], q[27]; +ctrl @ U(pi/2,-pi/2,pi/2) q[19], q[27]; +cx q[19], q[12]; +ctrl @ U(pi/2,pi/2,-pi/2) q[12], q[27]; +cx q[19], q[12]; +ctrl @ U(pi/2,-pi/2,pi/2) q[5], q[12]; +ctrl @ U(pi/2,-pi/2,pi/2) q[8], q[12]; +cx q[8], q[5]; +ctrl @ U(pi/2,pi/2,-pi/2) q[5], q[12]; +cx q[8], q[5]; +ctrl @ U(pi/2,-pi/2,pi/2) q[20], q[27]; +ctrl @ U(pi/2,-pi/2,pi/2) q[23], q[27]; +cx q[23], q[20]; +ctrl @ U(pi/2,pi/2,-pi/2) q[20], q[27]; +cx q[23], q[20]; +ctrl @ U(pi/2,-pi/2,pi/2) q[2], q[5]; +cx q[4], q[2]; +ctrl @ U(pi/2,pi/2,-pi/2) q[2], q[5]; +cx q[4], q[2]; +ctrl @ U(pi/2,-pi/2,pi/2) q[9], q[12]; +cx q[11], q[9]; +ctrl @ U(pi/2,pi/2,-pi/2) q[9], q[12]; +cx q[11], q[9]; +ctrl @ U(pi/2,-pi/2,pi/2) q[16], q[20]; +cx q[18], q[16]; +ctrl @ U(pi/2,pi/2,-pi/2) q[16], q[20]; +cx q[18], q[16]; +ctrl @ U(pi/2,-pi/2,pi/2) q[24], q[27]; +cx q[26], q[24]; +ctrl @ U(pi/2,pi/2,-pi/2) q[24], q[27]; +cx q[26], q[24]; +ctrl @ U(pi/2,-pi/2,pi/2) q[15], q[19]; +ctrl @ U(pi/2,-pi/2,pi/2) q[23], q[19]; +cx q[23], q[15]; +ctrl @ U(pi/2,pi/2,-pi/2) q[15], q[19]; +cx q[23], q[15]; +ctrl @ U(pi/2,-pi/2,pi/2) q[7], q[8]; +ctrl @ U(pi/2,-pi/2,pi/2) q[11], q[8]; +cx q[11], q[7]; +ctrl @ U(pi/2,pi/2,-pi/2) q[7], q[8]; +cx q[11], q[7]; +ctrl @ U(pi/2,-pi/2,pi/2) q[14], q[15]; +ctrl @ U(pi/2,-pi/2,pi/2) q[18], q[15]; +cx q[18], q[14]; +ctrl @ U(pi/2,pi/2,-pi/2) q[14], q[15]; +cx q[18], q[14]; +ctrl @ U(pi/2,-pi/2,pi/2) q[22], q[23]; +ctrl @ U(pi/2,-pi/2,pi/2) q[26], q[23]; +cx q[26], q[22]; +ctrl @ U(pi/2,pi/2,-pi/2) q[22], q[23]; +cx q[26], q[22]; +ctrl @ U(pi/2,-pi/2,pi/2) q[0], q[2]; +ctrl @ U(pi/2,-pi/2,pi/2) q[1], q[2]; +cx q[1], q[0]; +ctrl @ U(pi/2,pi/2,-pi/2) q[0], q[2]; +cx q[1], q[0]; +ctrl @ U(pi/2,-pi/2,pi/2) q[3], q[5]; +cx q[3], q[4]; +ctrl @ U(pi/2,-pi/2,pi/2) q[4], q[5]; +ctrl @ U(pi/2,-pi/2,pi/2) q[6], q[9]; +ctrl @ U(pi/2,pi/2,-pi/2) q[7], q[9]; +cx q[6], q[7]; +ctrl @ U(pi/2,-pi/2,pi/2) q[7], q[9]; +ctrl @ U(pi/2,-pi/2,pi/2) q[10], q[12]; +cx q[10], q[11]; +ctrl @ U(pi/2,-pi/2,pi/2) q[11], q[12]; +ctrl @ U(pi/2,-pi/2,pi/2) q[13], q[16]; +ctrl @ U(pi/2,pi/2,-pi/2) q[14], q[16]; +cx q[13], q[14]; +ctrl @ U(pi/2,-pi/2,pi/2) q[14], q[16]; +ctrl @ U(pi/2,-pi/2,pi/2) q[17], q[20]; +cx q[17], q[18]; +ctrl @ U(pi/2,-pi/2,pi/2) q[18], q[20]; +ctrl @ U(pi/2,-pi/2,pi/2) q[21], q[24]; +ctrl @ U(pi/2,pi/2,-pi/2) q[22], q[24]; +cx q[21], q[22]; +ctrl @ U(pi/2,-pi/2,pi/2) q[22], q[24]; +ctrl @ U(pi/2,-pi/2,pi/2) q[25], q[27]; +cx q[25], q[26]; +ctrl @ U(pi/2,-pi/2,pi/2) q[26], q[27]; +ctrl @ U(pi/2,-pi/2,pi/2) q[28], q[31]; +ctrl @ U(pi/2,-pi/2,pi/2) q[29], q[31]; +x q[1]; +x q[4]; +x q[7]; +x q[11]; +x q[14]; +x q[18]; +x q[22]; +x q[26]; +x q[29]; diff --git a/test/circuits/original/c2_182.real b/test/circuits/original/c2_182.real deleted file mode 100755 index 62d4d63c..00000000 --- a/test/circuits/original/c2_182.real +++ /dev/null @@ -1,314 +0,0 @@ -# Used Library: EQ (gates: 305, quantum costs: 305) -# This file have been taken from RevLib (www.revlib.org). -.version 1.0 -.numvars 35 -.variables x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 x32 x33 x34 -.inputs x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 x32 x33 x34 -.outputs x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 x32 x33 x34 -.begin -v x0 x2 -v x1 x2 -v x3 x5 -v x4 x5 -v x6 x9 -v x7 x9 -v x10 x12 -v x11 x12 -v x13 x16 -v x14 x16 -v x17 x20 -v x18 x20 -v x21 x24 -v x22 x24 -v x25 x27 -v x26 x27 -v x28 x31 -v x29 x31 -v x32 x34 -v x33 x34 -t2 x0 x1 -v+ x1 x2 -t2 x6 x7 -v+ x7 x9 -t2 x10 x11 -t2 x13 x14 -v+ x14 x16 -t2 x17 x18 -t2 x21 x22 -v+ x22 x24 -t2 x25 x26 -t2 x28 x29 -v+ x29 x31 -t2 x32 x33 -v x7 x8 -v x11 x8 -t2 x11 x7 -v+ x7 x8 -t2 x11 x7 -v x14 x15 -v x18 x15 -t2 x18 x14 -v+ x14 x15 -t2 x18 x14 -v x22 x23 -v x26 x23 -t2 x26 x22 -v+ x22 x23 -t2 x26 x22 -v x29 x30 -v x33 x30 -t2 x33 x29 -v+ x29 x30 -t2 x33 x29 -v x15 x19 -v x23 x19 -t2 x23 x15 -v+ x15 x19 -t2 x23 x15 -v x2 x5 -t2 x2 x4 -t2 x4 x3 -v+ x3 x5 -t2 x4 x3 -v x9 x12 -t2 x9 x11 -v+ x11 x12 -t2 x9 x11 -v x16 x20 -t2 x16 x18 -v+ x18 x20 -t2 x16 x18 -v x24 x27 -t2 x24 x26 -v+ x26 x27 -t2 x24 x26 -v x31 x34 -t2 x31 x33 -v+ x33 x34 -t2 x31 x33 -v x5 x12 -v x8 x12 -t2 x5 x8 -v+ x8 x12 -t2 x5 x8 -v x20 x27 -v x23 x27 -t2 x20 x23 -v+ x23 x27 -t2 x20 x23 -v x12 x27 -v x19 x27 -t2 x12 x19 -v+ x19 x27 -t2 x12 x19 -v x12 x20 -v x15 x20 -t2 x12 x15 -v+ x15 x20 -t2 x12 x15 -v x27 x34 -v x30 x34 -t2 x27 x30 -v+ x30 x34 -t2 x27 x30 -v x5 x9 -v x7 x9 -t2 x5 x7 -v+ x7 x9 -t2 x5 x7 -v x12 x16 -v x14 x16 -t2 x12 x14 -v+ x14 x16 -t2 x12 x14 -v x20 x24 -v x22 x24 -t2 x20 x22 -v+ x22 x24 -t2 x20 x22 -v x27 x31 -v x29 x31 -t2 x27 x29 -v+ x29 x31 -t2 x27 x29 -v x15 x19 -v x23 x19 -t2 x15 x23 -v+ x23 x19 -t2 x15 x23 -v x7 x8 -v x11 x8 -t2 x7 x11 -v+ x11 x8 -t1 x7 -t2 x7 x11 -v x14 x15 -v x18 x15 -t2 x18 x14 -v+ x14 x15 -t1 x18 -t2 x18 x14 -v x22 x23 -v x26 x23 -t2 x22 x26 -v+ x26 x23 -t1 x22 -t2 x22 x26 -v x29 x30 -v x33 x30 -t2 x33 x29 -v+ x29 x30 -t2 x33 x29 -t2 x5 x7 -t2 x9 x11 -t2 x12 x14 -t2 x16 x18 -t2 x20 x22 -t2 x24 x26 -t2 x31 x33 -t1 x1 -t1 x4 -t1 x29 -t2 x6 x7 -t2 x10 x11 -t2 x13 x14 -t2 x17 x18 -t2 x21 x22 -t2 x25 x26 -v x7 x8 -v x11 x8 -t2 x11 x7 -v+ x7 x8 -t2 x11 x7 -v x14 x15 -v x18 x15 -t2 x18 x14 -v+ x14 x15 -t2 x18 x14 -v x22 x23 -v x26 x23 -t2 x26 x22 -v+ x22 x23 -t2 x26 x22 -v x15 x19 -v x23 x19 -t2 x23 x15 -v+ x15 x19 -t2 x23 x15 -v x5 x9 -v x7 x9 -t2 x7 x5 -v+ x5 x9 -t2 x7 x5 -v x12 x16 -v x14 x16 -t2 x14 x12 -v+ x12 x16 -t2 x14 x12 -v x20 x24 -v x22 x24 -t2 x22 x20 -v+ x20 x24 -t2 x22 x20 -v x27 x31 -t2 x29 x28 -v+ x28 x31 -t2 x29 x28 -t2 x27 x29 -v x12 x20 -v x15 x20 -t2 x15 x12 -v+ x12 x20 -t2 x15 x12 -v x12 x27 -v x19 x27 -t2 x19 x12 -v+ x12 x27 -t2 x19 x12 -v x5 x12 -v x8 x12 -t2 x8 x5 -v+ x5 x12 -t2 x8 x5 -v x20 x27 -v x23 x27 -t2 x23 x20 -v+ x20 x27 -t2 x23 x20 -v x2 x5 -t2 x4 x2 -v+ x2 x5 -t2 x4 x2 -v x9 x12 -t2 x11 x9 -v+ x9 x12 -t2 x11 x9 -v x16 x20 -t2 x18 x16 -v+ x16 x20 -t2 x18 x16 -v x24 x27 -t2 x26 x24 -v+ x24 x27 -t2 x26 x24 -v x15 x19 -v x23 x19 -t2 x23 x15 -v+ x15 x19 -t2 x23 x15 -v x7 x8 -v x11 x8 -t2 x11 x7 -v+ x7 x8 -t2 x11 x7 -v x14 x15 -v x18 x15 -t2 x18 x14 -v+ x14 x15 -t2 x18 x14 -v x22 x23 -v x26 x23 -t2 x26 x22 -v+ x22 x23 -t2 x26 x22 -v x0 x2 -v x1 x2 -t2 x1 x0 -v+ x0 x2 -t2 x1 x0 -v x3 x5 -t2 x3 x4 -v x4 x5 -v x6 x9 -v+ x7 x9 -t2 x6 x7 -v x7 x9 -v x10 x12 -t2 x10 x11 -v x11 x12 -v x13 x16 -v+ x14 x16 -t2 x13 x14 -v x14 x16 -v x17 x20 -t2 x17 x18 -v x18 x20 -v x21 x24 -v+ x22 x24 -t2 x21 x22 -v x22 x24 -v x25 x27 -t2 x25 x26 -v x26 x27 -v x28 x31 -v x29 x31 -t1 x1 -t1 x4 -t1 x7 -t1 x11 -t1 x14 -t1 x18 -t1 x22 -t1 x26 -t1 x29 -.end diff --git a/test/circuits/original/cm150a_210.qasm b/test/circuits/original/cm150a_210.qasm new file mode 100644 index 00000000..5c112505 --- /dev/null +++ b/test/circuits/original/cm150a_210.qasm @@ -0,0 +1,58 @@ +// i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 +// o 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 +OPENQASM 3.0; +include "stdgates.inc"; +qubit[22] q; +cx q[1], q[0]; +x q[1]; +x q[6]; +ctrl(6) @ x q[1], q[2], q[3], q[4], q[5], q[6], q[0]; +x q[14]; +ctrl(6) @ x q[1], q[2], q[3], q[4], q[5], q[14], q[0]; +ctrl(5) @ x q[1], q[3], q[4], q[5], q[14], q[0]; +x q[3]; +x q[10]; +ctrl(6) @ x q[1], q[2], q[3], q[4], q[5], q[10], q[0]; +x q[18]; +ctrl(6) @ x q[1], q[2], q[3], q[4], q[5], q[18], q[0]; +ctrl(5) @ x q[1], q[3], q[4], q[5], q[18], q[0]; +x q[3]; +x q[4]; +x q[8]; +ctrl(6) @ x q[1], q[2], q[3], q[4], q[5], q[8], q[0]; +x q[16]; +ctrl(6) @ x q[1], q[2], q[3], q[4], q[5], q[16], q[0]; +ctrl(5) @ x q[1], q[3], q[4], q[5], q[16], q[0]; +x q[3]; +x q[12]; +ctrl(6) @ x q[1], q[2], q[3], q[4], q[5], q[12], q[0]; +x q[20]; +ctrl(6) @ x q[1], q[2], q[3], q[4], q[5], q[20], q[0]; +ctrl(5) @ x q[1], q[3], q[4], q[5], q[20], q[0]; +x q[3]; +x q[4]; +x q[5]; +x q[7]; +ctrl(6) @ x q[1], q[2], q[3], q[4], q[5], q[7], q[0]; +x q[15]; +ctrl(6) @ x q[1], q[2], q[3], q[4], q[5], q[15], q[0]; +ctrl(5) @ x q[1], q[3], q[4], q[5], q[15], q[0]; +x q[3]; +x q[11]; +ctrl(6) @ x q[1], q[2], q[3], q[4], q[5], q[11], q[0]; +x q[19]; +ctrl(6) @ x q[1], q[2], q[3], q[4], q[5], q[19], q[0]; +ctrl(5) @ x q[1], q[3], q[4], q[5], q[19], q[0]; +x q[3]; +x q[4]; +x q[9]; +ctrl(6) @ x q[1], q[2], q[3], q[4], q[5], q[9], q[0]; +x q[17]; +ctrl(6) @ x q[1], q[2], q[3], q[4], q[5], q[17], q[0]; +ctrl(5) @ x q[1], q[3], q[4], q[5], q[17], q[0]; +x q[3]; +x q[13]; +ctrl(6) @ x q[1], q[2], q[3], q[4], q[5], q[13], q[0]; +x q[2]; +x q[21]; +ctrl(6) @ x q[1], q[2], q[3], q[4], q[5], q[21], q[0]; diff --git a/test/circuits/original/cm150a_210.real b/test/circuits/original/cm150a_210.real deleted file mode 100755 index c727a737..00000000 --- a/test/circuits/original/cm150a_210.real +++ /dev/null @@ -1,68 +0,0 @@ -# Function: cm150a -# Used Library: MCT (Gates: 53, Quantum costs: 1096) -# This file have been taken from RevLib (www.revlib.org). -.version 1.0 -# Created by tfc2real J. Rice Jan 2009 -# Parameters for Exorcism: -n 1 -r 1 -a 0 -b 1 -c 1 -# Templates applied in both directions -.numvars 22 -.variables f0 x20 x19 x18 x17 x16 x15 x14 x13 x12 x11 x10 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.inputs 0 x20 x19 x18 x17 x16 x15 x14 x13 x12 x11 x10 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.outputs f0 x20 x19 x18 x17 x16 x15 x14 x13 x12 x11 x10 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.constants 0--------------------- -.garbage 111111111111111111111- -.begin -t2 x20 f0 -t1 x20 -t1 x15 -t7 x15 x16 x17 x18 x19 x20 f0 -t1 x7 -t7 x7 x16 x17 x18 x19 x20 f0 -t6 x7 x16 x17 x18 x20 f0 -t1 x18 -t1 x11 -t7 x11 x16 x17 x18 x19 x20 f0 -t1 x3 -t7 x3 x16 x17 x18 x19 x20 f0 -t6 x3 x16 x17 x18 x20 f0 -t1 x18 -t1 x17 -t1 x13 -t7 x13 x16 x17 x18 x19 x20 f0 -t1 x5 -t7 x5 x16 x17 x18 x19 x20 f0 -t6 x5 x16 x17 x18 x20 f0 -t1 x18 -t1 x9 -t7 x9 x16 x17 x18 x19 x20 f0 -t1 x1 -t7 x1 x16 x17 x18 x19 x20 f0 -t6 x1 x16 x17 x18 x20 f0 -t1 x18 -t1 x17 -t1 x16 -t1 x14 -t7 x14 x16 x17 x18 x19 x20 f0 -t1 x6 -t7 x6 x16 x17 x18 x19 x20 f0 -t6 x6 x16 x17 x18 x20 f0 -t1 x18 -t1 x10 -t7 x10 x16 x17 x18 x19 x20 f0 -t1 x2 -t7 x2 x16 x17 x18 x19 x20 f0 -t6 x2 x16 x17 x18 x20 f0 -t1 x18 -t1 x17 -t1 x12 -t7 x12 x16 x17 x18 x19 x20 f0 -t1 x4 -t7 x4 x16 x17 x18 x19 x20 f0 -t6 x4 x16 x17 x18 x20 f0 -t1 x18 -t1 x8 -t7 x8 x16 x17 x18 x19 x20 f0 -t1 x19 -t1 x0 -t7 x0 x16 x17 x18 x19 x20 f0 -.end diff --git a/test/circuits/original/cm151a_211.qasm b/test/circuits/original/cm151a_211.qasm new file mode 100644 index 00000000..21edcf7d --- /dev/null +++ b/test/circuits/original/cm151a_211.qasm @@ -0,0 +1,38 @@ +// i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 +// o 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 +OPENQASM 3.0; +include "stdgates.inc"; +qubit[28] q; +ccx q[19], q[20], q[0]; +ccx q[19], q[21], q[1]; +ccx q[19], q[22], q[2]; +ccx q[19], q[23], q[3]; +ccx q[19], q[24], q[4]; +ccx q[19], q[25], q[5]; +ccx q[19], q[26], q[6]; +ccx q[19], q[27], q[7]; +x q[19]; +x q[17]; +ctrl(11) @ x q[9], q[10], q[11], q[12], q[13], q[14], q[15], q[16], q[17], q[18], q[19], q[8]; +ctrl(9) @ x q[11], q[12], q[13], q[14], q[15], q[16], q[17], q[18], q[19], q[1]; +ctrl(10) @ x q[10], q[11], q[12], q[13], q[14], q[15], q[16], q[17], q[18], q[19], q[0]; +ctrl(7) @ x q[13], q[14], q[15], q[16], q[17], q[18], q[19], q[3]; +ctrl(8) @ x q[12], q[13], q[14], q[15], q[16], q[17], q[18], q[19], q[2]; +ctrl(4) @ x q[9], q[17], q[18], q[19], q[0]; +ctrl(4) @ x q[10], q[17], q[18], q[19], q[1]; +ctrl(4) @ x q[11], q[17], q[18], q[19], q[2]; +ctrl(4) @ x q[12], q[17], q[18], q[19], q[3]; +x q[14]; +ctrl(6) @ x q[14], q[15], q[16], q[17], q[18], q[19], q[4]; +ctrl(4) @ x q[14], q[17], q[18], q[19], q[5]; +x q[13]; +ctrl(4) @ x q[13], q[17], q[18], q[19], q[4]; +x q[15]; +ctrl(4) @ x q[15], q[17], q[18], q[19], q[6]; +ctrl(5) @ x q[15], q[16], q[17], q[18], q[19], q[5]; +ctrl(5) @ x q[15], q[16], q[17], q[18], q[19], q[4]; +x q[16]; +ctrl(4) @ x q[16], q[17], q[18], q[19], q[7]; +ctrl(4) @ x q[16], q[17], q[18], q[19], q[6]; +ctrl(4) @ x q[16], q[17], q[18], q[19], q[5]; +ctrl(4) @ x q[16], q[17], q[18], q[19], q[4]; diff --git a/test/circuits/original/cm151a_211.real b/test/circuits/original/cm151a_211.real deleted file mode 100755 index 41de29f7..00000000 --- a/test/circuits/original/cm151a_211.real +++ /dev/null @@ -1,48 +0,0 @@ -# Function: cm151a -# Used Library: MCT (Gates: 33, Quantum costs: 888) -# This file have been taken from RevLib (www.revlib.org). -.version 1.0 -# Created by tfc2real J. Rice Jan 2009 -# Parameters for Exorcism: -n 1 -r 1 -a 0 -b 1 -c 1 -# Templates applied in both directions -.numvars 28 -.variables f8 f7 f6 f5 f4 f3 f2 f1 f0 x18 x17 x16 x15 x14 x13 x12 x11 x10 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.inputs 0 0 0 0 0 0 0 0 0 x18 x17 x16 x15 x14 x13 x12 x11 x10 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.outputs f8 f7 f6 f5 f4 f3 f2 f1 f0 x18 x17 x16 x15 x14 x13 x12 x11 x10 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.constants 000000000------------------- -.garbage 1111111111111111111--------- -.begin -t3 x7 x8 f8 -t3 x6 x8 f7 -t3 x5 x8 f6 -t3 x4 x8 f5 -t3 x3 x8 f4 -t3 x2 x8 f3 -t3 x1 x8 f2 -t3 x0 x8 f1 -t1 x8 -t1 x10 -t12 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 f0 -t10 x8 x9 x10 x11 x12 x13 x14 x15 x16 f7 -t11 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 f8 -t8 x8 x9 x10 x11 x12 x13 x14 f5 -t9 x8 x9 x10 x11 x12 x13 x14 x15 f6 -t5 x8 x9 x10 x18 f8 -t5 x8 x9 x10 x17 f7 -t5 x8 x9 x10 x16 f6 -t5 x8 x9 x10 x15 f5 -t1 x13 -t7 x8 x9 x10 x11 x12 x13 f4 -t5 x8 x9 x10 x13 f3 -t1 x14 -t5 x8 x9 x10 x14 f4 -t1 x12 -t5 x8 x9 x10 x12 f2 -t6 x8 x9 x10 x11 x12 f3 -t6 x8 x9 x10 x11 x12 f4 -t1 x11 -t5 x8 x9 x10 x11 f1 -t5 x8 x9 x10 x11 f2 -t5 x8 x9 x10 x11 f3 -t5 x8 x9 x10 x11 f4 -.end diff --git a/test/circuits/original/cm163a_213.qasm b/test/circuits/original/cm163a_213.qasm new file mode 100644 index 00000000..5b31e780 --- /dev/null +++ b/test/circuits/original/cm163a_213.qasm @@ -0,0 +1,44 @@ +// i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 +// o 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 +OPENQASM 3.0; +include "stdgates.inc"; +qubit[29] q; +cx q[13], q[5]; +cx q[14], q[8]; +x q[12]; +x q[11]; +x q[10]; +x q[9]; +x q[8]; +x q[7]; +x q[5]; +x q[4]; +ccx q[19], q[27], q[6]; +cx q[15], q[7]; +ctrl(3) @ x q[16], q[17], q[19], q[9]; +ctrl(5) @ x q[19], q[24], q[25], q[26], q[27], q[6]; +ctrl(7) @ x q[16], q[17], q[19], q[20], q[21], q[22], q[23], q[10]; +ctrl(7) @ x q[16], q[17], q[19], q[20], q[21], q[22], q[23], q[9]; +x q[18]; +ctrl(3) @ x q[17], q[18], q[28], q[4]; +ctrl(3) @ x q[17], q[18], q[28], q[3]; +ctrl(8) @ x q[16], q[17], q[18], q[19], q[24], q[25], q[26], q[28], q[4]; +ctrl(8) @ x q[16], q[17], q[18], q[19], q[24], q[25], q[26], q[28], q[2]; +ctrl(4) @ x q[17], q[18], q[27], q[28], q[1]; +ctrl(9) @ x q[16], q[17], q[18], q[19], q[24], q[25], q[26], q[27], q[28], q[1]; +ctrl(4) @ x q[16], q[17], q[18], q[28], q[2]; +x q[16]; +ctrl(4) @ x q[16], q[17], q[18], q[28], q[1]; +ctrl(3) @ x q[16], q[18], q[28], q[3]; +x q[16]; +x q[19]; +ctrl(5) @ x q[16], q[17], q[18], q[19], q[28], q[2]; +ctrl(5) @ x q[16], q[17], q[18], q[19], q[28], q[0]; +ctrl(6) @ x q[16], q[17], q[18], q[19], q[27], q[28], q[1]; +x q[19]; +x q[17]; +ccx q[16], q[17], q[11]; +ctrl(7) @ x q[16], q[17], q[19], q[24], q[25], q[26], q[27], q[6]; +x q[16]; +x q[27]; +ctrl(3) @ x q[16], q[17], q[27], q[12]; diff --git a/test/circuits/original/cm163a_213.real b/test/circuits/original/cm163a_213.real deleted file mode 100755 index 5daef03b..00000000 --- a/test/circuits/original/cm163a_213.real +++ /dev/null @@ -1,54 +0,0 @@ -# Function: cm163a -# Used Library: MCT (Gates: 39, Quantum costs: 756) -# This file have been taken from RevLib (www.revlib.org). -.version 1.0 -# Created by tfc2real J. Rice Jan 2009 -# Parameters for Exorcism: -n 1 -r 1 -a 0 -b 1 -c 1 -# Templates applied in both directions -.numvars 29 -.variables f12 f11 f10 f9 f8 f7 f6 f5 f4 f3 f2 f1 f0 x15 x14 x13 x12 x11 x10 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.inputs 0 0 0 0 0 0 0 0 0 0 0 0 0 x15 x14 x13 x12 x11 x10 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.outputs f12 f11 f10 f9 f8 f7 f6 f5 f4 f3 f2 f1 f0 x15 x14 x13 x12 x11 x10 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.constants 0000000000000---------------- -.garbage 1111111111111111------------- -.begin -t2 x15 f7 -t2 x14 f4 -t1 f0 -t1 f1 -t1 f2 -t1 f3 -t1 f4 -t1 f5 -t1 f7 -t1 f8 -t3 x1 x9 f6 -t2 x13 f5 -t4 x9 x11 x12 f3 -t6 x1 x2 x3 x4 x9 f6 -t8 x5 x6 x7 x8 x9 x11 x12 f2 -t8 x5 x6 x7 x8 x9 x11 x12 f3 -t1 x10 -t4 x0 x10 x11 f8 -t4 x0 x10 x11 f9 -t9 x0 x2 x3 x4 x9 x10 x11 x12 f8 -t9 x0 x2 x3 x4 x9 x10 x11 x12 f10 -t5 x0 x1 x10 x11 f11 -t10 x0 x1 x2 x3 x4 x9 x10 x11 x12 f11 -t5 x0 x10 x11 x12 f10 -t1 x12 -t5 x0 x10 x11 x12 f11 -t4 x0 x10 x12 f9 -t1 x12 -t1 x9 -t6 x0 x9 x10 x11 x12 f10 -t6 x0 x9 x10 x11 x12 f12 -t7 x0 x1 x9 x10 x11 x12 f11 -t1 x9 -t1 x11 -t3 x11 x12 f1 -t8 x1 x2 x3 x4 x9 x11 x12 f6 -t1 x12 -t1 x1 -t4 x1 x11 x12 f0 -.end diff --git a/test/circuits/original/cu_219.qasm b/test/circuits/original/cu_219.qasm new file mode 100644 index 00000000..6c8b20f7 --- /dev/null +++ b/test/circuits/original/cu_219.qasm @@ -0,0 +1,45 @@ +// i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 +// o 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 +OPENQASM 3.0; +include "stdgates.inc"; +qubit[25] q; +x q[10]; +ccx q[11], q[18], q[1]; +x q[21]; +ctrl(4) @ x q[18], q[19], q[21], q[22], q[0]; +ccx q[18], q[21], q[0]; +x q[22]; +x q[12]; +ctrl(6) @ x q[11], q[12], q[19], q[20], q[21], q[22], q[2]; +x q[17]; +x q[13]; +ctrl(10) @ x q[11], q[12], q[13], q[17], q[19], q[20], q[21], q[22], q[23], q[24], q[4]; +x q[15]; +ctrl(10) @ x q[11], q[12], q[15], q[17], q[19], q[20], q[21], q[22], q[23], q[24], q[4]; +ctrl(9) @ x q[11], q[12], q[15], q[17], q[19], q[20], q[21], q[22], q[24], q[4]; +x q[24]; +x q[14]; +ctrl(10) @ x q[11], q[12], q[14], q[17], q[19], q[20], q[21], q[22], q[23], q[24], q[4]; +x q[23]; +x q[16]; +ctrl(10) @ x q[11], q[12], q[16], q[17], q[19], q[20], q[21], q[22], q[23], q[24], q[4]; +x q[20]; +ctrl(4) @ x q[19], q[20], q[21], q[22], q[10]; +ctrl(4) @ x q[19], q[20], q[21], q[22], q[9]; +x q[11]; +ctrl(5) @ x q[11], q[19], q[20], q[21], q[22], q[3]; +ctrl(6) @ x q[11], q[19], q[20], q[21], q[22], q[23], q[7]; +ctrl(7) @ x q[11], q[19], q[20], q[21], q[22], q[23], q[24], q[8]; +ctrl(7) @ x q[11], q[19], q[20], q[21], q[22], q[23], q[24], q[7]; +x q[23]; +ctrl(6) @ x q[11], q[19], q[20], q[21], q[22], q[23], q[5]; +ctrl(7) @ x q[11], q[19], q[20], q[21], q[22], q[23], q[24], q[6]; +ctrl(7) @ x q[11], q[19], q[20], q[21], q[22], q[23], q[24], q[5]; +x q[20]; +x q[22]; +x q[19]; +ctrl(4) @ x q[19], q[20], q[21], q[22], q[10]; +ctrl(4) @ x q[19], q[20], q[21], q[22], q[9]; +ctrl(5) @ x q[11], q[19], q[20], q[21], q[22], q[4]; +ctrl(5) @ x q[11], q[19], q[20], q[21], q[22], q[2]; +x q[11]; diff --git a/test/circuits/original/cu_219.real b/test/circuits/original/cu_219.real deleted file mode 100755 index bb32b958..00000000 --- a/test/circuits/original/cu_219.real +++ /dev/null @@ -1,55 +0,0 @@ -# Function: cu -# Used Library: MCT (Gates: 40, Quantum costs: 1148) -# This file have been taken from RevLib (www.revlib.org). -.version 1.0 -# Created by tfc2real J. Rice Jan 2009 -# Parameters for Exorcism: -n 1 -r 1 -a 0 -b 1 -c 1 -# Templates applied in both directions -.numvars 25 -.variables f10 f9 f8 f7 f6 f5 f4 f3 f2 f1 f0 x13 x12 x11 x10 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.inputs 0 0 0 0 0 0 0 0 0 0 0 x13 x12 x11 x10 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.outputs f10 f9 f8 f7 f6 f5 f4 f3 f2 f1 f0 x13 x12 x11 x10 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.constants 00000000000-------------- -.garbage 11111111111111----------- -.begin -t1 f0 -t3 x6 x13 f9 -t1 x3 -t5 x2 x3 x5 x6 f10 -t3 x3 x6 f10 -t1 x2 -t1 x12 -t7 x2 x3 x4 x5 x12 x13 f8 -t1 x7 -t1 x11 -t11 x0 x1 x2 x3 x4 x5 x7 x11 x12 x13 f6 -t1 x9 -t11 x0 x1 x2 x3 x4 x5 x7 x9 x12 x13 f6 -t10 x0 x2 x3 x4 x5 x7 x9 x12 x13 f6 -t1 x0 -t1 x10 -t11 x0 x1 x2 x3 x4 x5 x7 x10 x12 x13 f6 -t1 x1 -t1 x8 -t11 x0 x1 x2 x3 x4 x5 x7 x8 x12 x13 f6 -t1 x4 -t5 x2 x3 x4 x5 f0 -t5 x2 x3 x4 x5 f1 -t1 x13 -t6 x2 x3 x4 x5 x13 f7 -t7 x1 x2 x3 x4 x5 x13 f3 -t8 x0 x1 x2 x3 x4 x5 x13 f2 -t8 x0 x1 x2 x3 x4 x5 x13 f3 -t1 x1 -t7 x1 x2 x3 x4 x5 x13 f5 -t8 x0 x1 x2 x3 x4 x5 x13 f4 -t8 x0 x1 x2 x3 x4 x5 x13 f5 -t1 x4 -t1 x2 -t1 x5 -t5 x2 x3 x4 x5 f0 -t5 x2 x3 x4 x5 f1 -t6 x2 x3 x4 x5 x13 f6 -t6 x2 x3 x4 x5 x13 f8 -t1 x13 -.end diff --git a/test/circuits/original/dk17_224.qasm b/test/circuits/original/dk17_224.qasm new file mode 100644 index 00000000..b762ef48 --- /dev/null +++ b/test/circuits/original/dk17_224.qasm @@ -0,0 +1,54 @@ +// i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 +// o 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 +OPENQASM 3.0; +include "stdgates.inc"; +qubit[21] q; +ctrl(3) @ x q[11], q[12], q[19], q[5]; +ccx q[11], q[20], q[1]; +x q[19]; +x q[18]; +x q[16]; +x q[15]; +x q[14]; +x q[13]; +ctrl(8) @ x q[11], q[12], q[13], q[14], q[15], q[16], q[18], q[19], q[6]; +x q[20]; +ctrl(9) @ x q[11], q[12], q[13], q[14], q[15], q[16], q[18], q[19], q[20], q[1]; +x q[17]; +ctrl(8) @ x q[11], q[12], q[13], q[15], q[16], q[17], q[19], q[20], q[10]; +ctrl(8) @ x q[11], q[12], q[13], q[15], q[16], q[17], q[19], q[20], q[9]; +ctrl(7) @ x q[11], q[13], q[15], q[16], q[17], q[19], q[20], q[10]; +ctrl(7) @ x q[11], q[13], q[15], q[16], q[17], q[19], q[20], q[2]; +ctrl(7) @ x q[11], q[13], q[15], q[16], q[17], q[19], q[20], q[0]; +ctrl(7) @ x q[11], q[12], q[14], q[17], q[18], q[19], q[20], q[8]; +ctrl(7) @ x q[11], q[12], q[14], q[17], q[18], q[19], q[20], q[2]; +ctrl(9) @ x q[11], q[13], q[14], q[15], q[16], q[17], q[18], q[19], q[20], q[2]; +x q[14]; +x q[17]; +x q[11]; +ctrl(3) @ x q[11], q[12], q[14], q[7]; +ctrl(3) @ x q[11], q[12], q[14], q[6]; +ctrl(3) @ x q[11], q[12], q[17], q[7]; +ccx q[11], q[14], q[7]; +ccx q[11], q[14], q[1]; +x q[14]; +ctrl(4) @ x q[11], q[12], q[14], q[17], q[1]; +x q[17]; +ctrl(8) @ x q[11], q[12], q[13], q[14], q[15], q[16], q[17], q[19], q[10]; +ctrl(8) @ x q[11], q[12], q[13], q[14], q[15], q[16], q[17], q[19], q[9]; +ctrl(7) @ x q[11], q[13], q[14], q[15], q[16], q[17], q[19], q[10]; +ctrl(7) @ x q[11], q[13], q[14], q[15], q[16], q[17], q[19], q[0]; +x q[15]; +ctrl(6) @ x q[11], q[12], q[14], q[17], q[18], q[20], q[8]; +ctrl(6) @ x q[11], q[12], q[14], q[17], q[18], q[20], q[1]; +x q[12]; +ctrl(3) @ x q[11], q[12], q[15], q[4]; +x q[11]; +ctrl(3) @ x q[11], q[12], q[15], q[3]; +x q[15]; +ctrl(7) @ x q[12], q[14], q[15], q[16], q[18], q[19], q[20], q[2]; +ctrl(8) @ x q[11], q[12], q[14], q[15], q[16], q[18], q[19], q[20], q[6]; +ctrl(7) @ x q[11], q[12], q[13], q[14], q[15], q[17], q[18], q[7]; +x q[11]; +ctrl(8) @ x q[11], q[12], q[14], q[15], q[16], q[18], q[19], q[20], q[7]; +ctrl(8) @ x q[11], q[12], q[13], q[14], q[15], q[17], q[18], q[20], q[8]; diff --git a/test/circuits/original/dk17_224.real b/test/circuits/original/dk17_224.real deleted file mode 100755 index 58a7938f..00000000 --- a/test/circuits/original/dk17_224.real +++ /dev/null @@ -1,64 +0,0 @@ -# Function: dk17 -# Used Library: MCT (Gates: 49, Quantum costs: 1559) -# This file have been taken from RevLib (www.revlib.org). -.version 1.0 -# Created by tfc2real J. Rice Jan 2009 -# Parameters for Exorcism: -n 1 -r 1 -a 0 -b 1 -c 1 -# Templates applied in both directions -.numvars 21 -.variables f10 f9 f8 f7 f6 f5 f4 f3 f2 f1 f0 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.inputs 0 0 0 0 0 0 0 0 0 0 0 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.outputs f10 f9 f8 f7 f6 f5 f4 f3 f2 f1 f0 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.constants 00000000000---------- -.garbage 1111111111----------- -.begin -t4 x1 x8 x9 f5 -t3 x0 x9 f9 -t1 x1 -t1 x2 -t1 x4 -t1 x5 -t1 x6 -t1 x7 -t9 x1 x2 x4 x5 x6 x7 x8 x9 f4 -t1 x0 -t10 x0 x1 x2 x4 x5 x6 x7 x8 x9 f9 -t1 x3 -t9 x0 x1 x3 x4 x5 x7 x8 x9 f0 -t9 x0 x1 x3 x4 x5 x7 x8 x9 f1 -t8 x0 x1 x3 x4 x5 x7 x9 f0 -t8 x0 x1 x3 x4 x5 x7 x9 f8 -t8 x0 x1 x3 x4 x5 x7 x9 f10 -t8 x0 x1 x2 x3 x6 x8 x9 f2 -t8 x0 x1 x2 x3 x6 x8 x9 f8 -t10 x0 x1 x2 x3 x4 x5 x6 x7 x9 f8 -t1 x6 -t1 x3 -t1 x9 -t4 x6 x8 x9 f3 -t4 x6 x8 x9 f4 -t4 x3 x8 x9 f3 -t3 x6 x9 f3 -t3 x6 x9 f9 -t1 x6 -t5 x3 x6 x8 x9 f9 -t1 x3 -t9 x1 x3 x4 x5 x6 x7 x8 x9 f0 -t9 x1 x3 x4 x5 x6 x7 x8 x9 f1 -t8 x1 x3 x4 x5 x6 x7 x9 f0 -t8 x1 x3 x4 x5 x6 x7 x9 f10 -t1 x5 -t7 x0 x2 x3 x6 x8 x9 f2 -t7 x0 x2 x3 x6 x8 x9 f9 -t1 x8 -t4 x5 x8 x9 f6 -t1 x9 -t4 x5 x8 x9 f7 -t1 x5 -t8 x0 x1 x2 x4 x5 x6 x8 f8 -t9 x0 x1 x2 x4 x5 x6 x8 x9 f4 -t8 x2 x3 x5 x6 x7 x8 x9 f3 -t1 x9 -t9 x0 x1 x2 x4 x5 x6 x8 x9 f3 -t9 x0 x2 x3 x5 x6 x7 x8 x9 f2 -.end diff --git a/test/circuits/original/dk27_225.qasm b/test/circuits/original/dk27_225.qasm new file mode 100644 index 00000000..a5641352 --- /dev/null +++ b/test/circuits/original/dk27_225.qasm @@ -0,0 +1,29 @@ +// i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 +// o 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 +OPENQASM 3.0; +include "stdgates.inc"; +qubit[18] q; +cx q[15], q[0]; +cx q[13], q[8]; +cx q[13], q[1]; +x q[10]; +ccx q[10], q[17], q[5]; +ccx q[10], q[16], q[3]; +cx q[10], q[8]; +cx q[10], q[7]; +ccx q[10], q[12], q[2]; +x q[13]; +ccx q[13], q[15], q[8]; +x q[15]; +ctrl(3) @ x q[10], q[13], q[15], q[8]; +ctrl(3) @ x q[10], q[13], q[15], q[7]; +x q[17]; +x q[16]; +x q[12]; +ctrl(6) @ x q[10], q[12], q[13], q[15], q[16], q[17], q[6]; +ctrl(6) @ x q[10], q[12], q[13], q[15], q[16], q[17], q[1]; +x q[10]; +x q[11]; +ctrl(6) @ x q[10], q[11], q[12], q[13], q[15], q[16], q[6]; +x q[14]; +ctrl(5) @ x q[10], q[13], q[14], q[15], q[17], q[4]; diff --git a/test/circuits/original/dk27_225.real b/test/circuits/original/dk27_225.real deleted file mode 100755 index 8c6b89d7..00000000 --- a/test/circuits/original/dk27_225.real +++ /dev/null @@ -1,39 +0,0 @@ -# Function: dk27 -# Used Library: MCT (Gates: 24, Quantum costs: 248) -# This file have been taken from RevLib (www.revlib.org). -.version 1.0 -# Created by tfc2real J. Rice Jan 2009 -# Parameters for Exorcism: -n 1 -r 1 -a 1 -b 0 -c 1 -# Templates applied in both directions -.numvars 18 -.variables f8 f7 f6 f5 f4 f3 f2 f1 f0 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.inputs 0 0 0 0 0 0 0 0 0 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.outputs f8 f7 f6 f5 f4 f3 f2 f1 f0 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.constants 000000000--------- -.garbage 111111111--------- -.begin -t2 x2 f8 -t2 x4 f0 -t2 x4 f7 -t1 x7 -t3 x0 x7 f3 -t3 x1 x7 f5 -t2 x7 f0 -t2 x7 f1 -t3 x5 x7 f6 -t1 x4 -t3 x2 x4 f0 -t1 x2 -t4 x2 x4 x7 f0 -t4 x2 x4 x7 f1 -t1 x0 -t1 x1 -t1 x5 -t7 x0 x1 x2 x4 x5 x7 f2 -t7 x0 x1 x2 x4 x5 x7 f7 -t1 x7 -t1 x6 -t7 x1 x2 x4 x5 x6 x7 f2 -t1 x3 -t6 x0 x2 x3 x4 x7 f4 -.end diff --git a/test/circuits/original/example2_231.qasm b/test/circuits/original/example2_231.qasm new file mode 100644 index 00000000..34c87a45 --- /dev/null +++ b/test/circuits/original/example2_231.qasm @@ -0,0 +1,162 @@ +// i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +// o 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +OPENQASM 3.0; +include "stdgates.inc"; +qubit[16] q; +ccx q[12], q[14], q[4]; +ccx q[12], q[14], q[3]; +ccx q[12], q[14], q[2]; +ccx q[12], q[14], q[0]; +ctrl(5) @ x q[6], q[8], q[10], q[13], q[15], q[1]; +ctrl(3) @ x q[8], q[13], q[15], q[5]; +ctrl(5) @ x q[6], q[7], q[8], q[13], q[15], q[4]; +ctrl(3) @ x q[6], q[10], q[11], q[1]; +ccx q[6], q[7], q[5]; +ccx q[6], q[7], q[4]; +x q[11]; +ctrl(7) @ x q[6], q[8], q[9], q[10], q[11], q[13], q[15], q[5]; +ctrl(7) @ x q[6], q[8], q[9], q[10], q[11], q[12], q[14], q[4]; +ctrl(7) @ x q[6], q[8], q[9], q[10], q[11], q[12], q[14], q[1]; +x q[12]; +ctrl(3) @ x q[9], q[12], q[14], q[4]; +ctrl(6) @ x q[6], q[9], q[10], q[11], q[12], q[15], q[1]; +ctrl(9) @ x q[6], q[8], q[9], q[10], q[11], q[12], q[13], q[14], q[15], q[1]; +ctrl(8) @ x q[6], q[7], q[8], q[9], q[10], q[11], q[13], q[15], q[4]; +x q[7]; +ctrl(7) @ x q[6], q[7], q[8], q[9], q[11], q[14], q[15], q[1]; +ctrl(8) @ x q[6], q[7], q[8], q[9], q[10], q[11], q[12], q[15], q[1]; +x q[13]; +ctrl(3) @ x q[9], q[13], q[15], q[5]; +ctrl(6) @ x q[6], q[9], q[10], q[11], q[13], q[15], q[1]; +ctrl(5) @ x q[6], q[9], q[10], q[13], q[15], q[1]; +ctrl(5) @ x q[6], q[7], q[9], q[13], q[15], q[4]; +ctrl(4) @ x q[6], q[9], q[13], q[15], q[4]; +ctrl(7) @ x q[6], q[7], q[9], q[10], q[11], q[13], q[14], q[1]; +ctrl(6) @ x q[6], q[7], q[10], q[11], q[12], q[13], q[1]; +x q[12]; +ccx q[12], q[13], q[0]; +x q[13]; +x q[8]; +ctrl(3) @ x q[8], q[12], q[14], q[4]; +ctrl(8) @ x q[6], q[7], q[8], q[9], q[11], q[12], q[13], q[14], q[1]; +ctrl(7) @ x q[6], q[8], q[9], q[11], q[12], q[13], q[14], q[1]; +ctrl(7) @ x q[6], q[7], q[8], q[10], q[11], q[12], q[14], q[1]; +x q[11]; +x q[7]; +x q[12]; +ctrl(6) @ x q[6], q[8], q[9], q[10], q[12], q[14], q[1]; +ctrl(9) @ x q[6], q[8], q[9], q[10], q[11], q[12], q[13], q[14], q[15], q[1]; +ctrl(8) @ x q[6], q[8], q[9], q[10], q[11], q[12], q[14], q[15], q[1]; +x q[12]; +x q[14]; +x q[11]; +ctrl(8) @ x q[6], q[8], q[10], q[11], q[12], q[13], q[14], q[15], q[1]; +ctrl(7) @ x q[6], q[10], q[11], q[12], q[13], q[14], q[15], q[1]; +ctrl(3) @ x q[11], q[12], q[14], q[4]; +x q[13]; +ccx q[13], q[14], q[0]; +x q[12]; +ccx q[12], q[14], q[3]; +ccx q[12], q[14], q[0]; +ctrl(9) @ x q[6], q[7], q[8], q[9], q[10], q[11], q[12], q[13], q[14], q[1]; +x q[11]; +x q[12]; +x q[10]; +ctrl(8) @ x q[6], q[7], q[8], q[9], q[10], q[11], q[12], q[15], q[1]; +ctrl(8) @ x q[6], q[7], q[8], q[9], q[10], q[11], q[12], q[13], q[1]; +ctrl(5) @ x q[6], q[8], q[9], q[10], q[14], q[4]; +ctrl(7) @ x q[6], q[7], q[8], q[9], q[10], q[13], q[14], q[1]; +x q[8]; +ctrl(7) @ x q[6], q[8], q[10], q[11], q[12], q[14], q[15], q[1]; +x q[13]; +x q[11]; +x q[7]; +ctrl(7) @ x q[6], q[7], q[8], q[9], q[10], q[11], q[15], q[4]; +ctrl(7) @ x q[6], q[7], q[8], q[9], q[10], q[11], q[15], q[1]; +ctrl(6) @ x q[6], q[8], q[9], q[10], q[11], q[15], q[5]; +ctrl(6) @ x q[6], q[8], q[9], q[10], q[11], q[14], q[4]; +ctrl(5) @ x q[6], q[8], q[9], q[10], q[11], q[4]; +x q[11]; +ctrl(3) @ x q[10], q[12], q[14], q[4]; +ccx q[10], q[14], q[4]; +ctrl(7) @ x q[6], q[7], q[8], q[9], q[10], q[14], q[15], q[1]; +ctrl(6) @ x q[6], q[7], q[9], q[10], q[14], q[15], q[1]; +x q[14]; +ctrl(4) @ x q[6], q[10], q[14], q[15], q[1]; +x q[15]; +ccx q[12], q[15], q[0]; +ctrl(6) @ x q[6], q[8], q[9], q[11], q[14], q[15], q[1]; +x q[8]; +ctrl(5) @ x q[6], q[8], q[9], q[10], q[15], q[5]; +ctrl(5) @ x q[6], q[8], q[9], q[10], q[15], q[1]; +ctrl(7) @ x q[6], q[8], q[9], q[10], q[11], q[13], q[15], q[4]; +ctrl(6) @ x q[6], q[7], q[8], q[9], q[10], q[15], q[4]; +x q[8]; +x q[11]; +ctrl(6) @ x q[6], q[9], q[10], q[11], q[14], q[15], q[1]; +ctrl(5) @ x q[6], q[9], q[11], q[14], q[15], q[1]; +ctrl(3) @ x q[11], q[13], q[15], q[5]; +ctrl(5) @ x q[6], q[7], q[11], q[13], q[15], q[4]; +x q[14]; +ccx q[14], q[15], q[0]; +ctrl(9) @ x q[6], q[7], q[8], q[10], q[11], q[12], q[13], q[14], q[15], q[1]; +ctrl(8) @ x q[6], q[7], q[8], q[10], q[12], q[13], q[14], q[15], q[1]; +x q[7]; +x q[8]; +ctrl(9) @ x q[6], q[7], q[8], q[9], q[10], q[11], q[13], q[14], q[15], q[1]; +x q[14]; +x q[13]; +ctrl(3) @ x q[10], q[13], q[15], q[5]; +ctrl(10) @ x q[6], q[7], q[8], q[9], q[10], q[11], q[12], q[13], q[14], q[15], q[1]; +x q[11]; +x q[7]; +ctrl(5) @ x q[6], q[7], q[10], q[13], q[15], q[4]; +x q[10]; +x q[13]; +x q[9]; +ctrl(6) @ x q[6], q[7], q[8], q[9], q[10], q[11], q[5]; +ctrl(6) @ x q[6], q[7], q[8], q[9], q[10], q[11], q[4]; +x q[7]; +x q[10]; +ctrl(7) @ x q[6], q[7], q[8], q[9], q[10], q[14], q[15], q[1]; +ctrl(6) @ x q[6], q[7], q[8], q[9], q[10], q[14], q[1]; +ctrl(6) @ x q[6], q[8], q[9], q[12], q[14], q[15], q[1]; +ctrl(5) @ x q[6], q[9], q[12], q[14], q[15], q[1]; +x q[7]; +ctrl(9) @ x q[6], q[7], q[8], q[9], q[10], q[11], q[12], q[13], q[15], q[1]; +x q[10]; +x q[11]; +ctrl(10) @ x q[6], q[7], q[8], q[9], q[10], q[11], q[12], q[13], q[14], q[15], q[1]; +x q[12]; +ctrl(9) @ x q[6], q[7], q[8], q[9], q[10], q[11], q[12], q[13], q[15], q[1]; +ctrl(8) @ x q[6], q[7], q[8], q[9], q[10], q[11], q[12], q[13], q[1]; +x q[8]; +x q[11]; +ctrl(9) @ x q[6], q[7], q[9], q[10], q[11], q[12], q[13], q[14], q[15], q[1]; +ctrl(8) @ x q[6], q[7], q[9], q[11], q[12], q[13], q[14], q[15], q[1]; +x q[7]; +x q[15]; +x q[13]; +ctrl(8) @ x q[6], q[8], q[9], q[10], q[12], q[13], q[14], q[15], q[1]; +ctrl(7) @ x q[6], q[8], q[9], q[10], q[13], q[14], q[15], q[1]; +x q[10]; +ctrl(9) @ x q[6], q[7], q[8], q[9], q[10], q[12], q[13], q[14], q[15], q[1]; +x q[12]; +x q[14]; +ctrl(10) @ x q[6], q[7], q[8], q[9], q[10], q[11], q[12], q[13], q[14], q[15], q[1]; +x q[7]; +ctrl(9) @ x q[6], q[7], q[8], q[9], q[10], q[11], q[12], q[14], q[15], q[1]; +ctrl(8) @ x q[6], q[7], q[9], q[10], q[11], q[12], q[14], q[15], q[1]; +x q[14]; +x q[6]; +ctrl(5) @ x q[6], q[8], q[9], q[10], q[11], q[5]; +ctrl(5) @ x q[6], q[8], q[9], q[10], q[11], q[4]; +x q[11]; +x q[12]; +ctrl(7) @ x q[6], q[8], q[9], q[10], q[11], q[12], q[14], q[4]; +ctrl(7) @ x q[6], q[8], q[9], q[10], q[11], q[13], q[15], q[5]; +x q[9]; +x q[10]; +x q[8]; +ctrl(5) @ x q[6], q[8], q[9], q[10], q[11], q[5]; +ctrl(5) @ x q[6], q[8], q[9], q[10], q[11], q[4]; diff --git a/test/circuits/original/example2_231.real b/test/circuits/original/example2_231.real deleted file mode 100755 index 3a492e7d..00000000 --- a/test/circuits/original/example2_231.real +++ /dev/null @@ -1,172 +0,0 @@ -# Function: example2 -# Used Library: MCT (Gates: 157, Quantum costs: 5654) -# This file have been taken from RevLib (www.revlib.org). -.version 1.0 -# Created by tfc2real J. Rice Jan 2009 -# Parameters for Exorcism: -n 1 -r 1 -a 0 -b 1 -c 1 -# Templates applied in both directions -.numvars 16 -.variables f5 f4 f3 f2 f1 f0 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.inputs 0 0 0 0 0 0 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.outputs f5 f4 f3 f2 f1 f0 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.constants 000000---------- -.garbage 1111111111------ -.begin -t3 x1 x3 f1 -t3 x1 x3 f2 -t3 x1 x3 f3 -t3 x1 x3 f5 -t6 x0 x2 x5 x7 x9 f4 -t4 x0 x2 x7 f0 -t6 x0 x2 x7 x8 x9 f1 -t4 x4 x5 x9 f4 -t3 x8 x9 f0 -t3 x8 x9 f1 -t1 x4 -t8 x0 x2 x4 x5 x6 x7 x9 f0 -t8 x1 x3 x4 x5 x6 x7 x9 f1 -t8 x1 x3 x4 x5 x6 x7 x9 f4 -t1 x3 -t4 x1 x3 x6 f1 -t7 x0 x3 x4 x5 x6 x9 f4 -t10 x0 x1 x2 x3 x4 x5 x6 x7 x9 f4 -t9 x0 x2 x4 x5 x6 x7 x8 x9 f1 -t1 x8 -t8 x0 x1 x4 x6 x7 x8 x9 f4 -t9 x0 x3 x4 x5 x6 x7 x8 x9 f4 -t1 x2 -t4 x0 x2 x6 f0 -t7 x0 x2 x4 x5 x6 x9 f4 -t6 x0 x2 x5 x6 x9 f4 -t6 x0 x2 x6 x8 x9 f1 -t5 x0 x2 x6 x9 f1 -t8 x1 x2 x4 x5 x6 x8 x9 f4 -t7 x2 x3 x4 x5 x8 x9 f4 -t1 x3 -t3 x2 x3 f5 -t1 x2 -t1 x7 -t4 x1 x3 x7 f1 -t9 x1 x2 x3 x4 x6 x7 x8 x9 f4 -t8 x1 x2 x3 x4 x6 x7 x9 f4 -t8 x1 x3 x4 x5 x7 x8 x9 f4 -t1 x4 -t1 x8 -t1 x3 -t7 x1 x3 x5 x6 x7 x9 f4 -t10 x0 x1 x2 x3 x4 x5 x6 x7 x9 f4 -t9 x0 x1 x3 x4 x5 x6 x7 x9 f4 -t1 x3 -t1 x1 -t1 x4 -t9 x0 x1 x2 x3 x4 x5 x7 x9 f4 -t8 x0 x1 x2 x3 x4 x5 x9 f4 -t4 x1 x3 x4 f1 -t1 x2 -t3 x1 x2 f5 -t1 x3 -t3 x1 x3 f2 -t3 x1 x3 f5 -t10 x1 x2 x3 x4 x5 x6 x7 x8 x9 f4 -t1 x4 -t1 x3 -t1 x5 -t9 x0 x3 x4 x5 x6 x7 x8 x9 f4 -t9 x2 x3 x4 x5 x6 x7 x8 x9 f4 -t6 x1 x5 x6 x7 x9 f1 -t8 x1 x2 x5 x6 x7 x8 x9 f4 -t1 x7 -t8 x0 x1 x3 x4 x5 x7 x9 f4 -t1 x2 -t1 x4 -t1 x8 -t8 x0 x4 x5 x6 x7 x8 x9 f1 -t8 x0 x4 x5 x6 x7 x8 x9 f4 -t7 x0 x4 x5 x6 x7 x9 f0 -t7 x1 x4 x5 x6 x7 x9 f1 -t6 x4 x5 x6 x7 x9 f1 -t1 x4 -t4 x1 x3 x5 f1 -t3 x1 x5 f1 -t8 x0 x1 x5 x6 x7 x8 x9 f4 -t7 x0 x1 x5 x6 x8 x9 f4 -t1 x1 -t5 x0 x1 x5 x9 f4 -t1 x0 -t3 x0 x3 f5 -t7 x0 x1 x4 x6 x7 x9 f4 -t1 x7 -t6 x0 x5 x6 x7 x9 f0 -t6 x0 x5 x6 x7 x9 f4 -t8 x0 x2 x4 x5 x6 x7 x9 f1 -t7 x0 x5 x6 x7 x8 x9 f1 -t1 x7 -t1 x4 -t7 x0 x1 x4 x5 x6 x9 f4 -t6 x0 x1 x4 x6 x9 f4 -t4 x0 x2 x4 f0 -t6 x0 x2 x4 x8 x9 f1 -t1 x1 -t3 x0 x1 f5 -t10 x0 x1 x2 x3 x4 x5 x7 x8 x9 f4 -t9 x0 x1 x2 x3 x5 x7 x8 x9 f4 -t1 x8 -t1 x7 -t10 x0 x1 x2 x4 x5 x6 x7 x8 x9 f4 -t1 x1 -t1 x2 -t4 x0 x2 x5 f0 -t11 x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 f4 -t1 x4 -t1 x8 -t6 x0 x2 x5 x8 x9 f1 -t1 x5 -t1 x2 -t1 x6 -t7 x4 x5 x6 x7 x8 x9 f0 -t7 x4 x5 x6 x7 x8 x9 f1 -t1 x8 -t1 x5 -t8 x0 x1 x5 x6 x7 x8 x9 f4 -t7 x1 x5 x6 x7 x8 x9 f4 -t7 x0 x1 x3 x6 x7 x9 f4 -t6 x0 x1 x3 x6 x9 f4 -t1 x8 -t10 x0 x2 x3 x4 x5 x6 x7 x8 x9 f4 -t1 x5 -t1 x4 -t11 x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 f4 -t1 x3 -t10 x0 x2 x3 x4 x5 x6 x7 x8 x9 f4 -t9 x2 x3 x4 x5 x6 x7 x8 x9 f4 -t1 x7 -t1 x4 -t10 x0 x1 x2 x3 x4 x5 x6 x8 x9 f4 -t9 x0 x1 x2 x3 x4 x6 x8 x9 f4 -t1 x8 -t1 x0 -t1 x2 -t9 x0 x1 x2 x3 x5 x6 x7 x9 f4 -t8 x0 x1 x2 x5 x6 x7 x9 f4 -t1 x5 -t10 x0 x1 x2 x3 x5 x6 x7 x8 x9 f4 -t1 x3 -t1 x1 -t11 x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 f4 -t1 x8 -t10 x0 x1 x3 x4 x5 x6 x7 x8 x9 f4 -t9 x0 x1 x3 x4 x5 x6 x8 x9 f4 -t1 x1 -t1 x9 -t6 x4 x5 x6 x7 x9 f0 -t6 x4 x5 x6 x7 x9 f1 -t1 x4 -t1 x3 -t8 x1 x3 x4 x5 x6 x7 x9 f1 -t8 x0 x2 x4 x5 x6 x7 x9 f0 -t1 x6 -t1 x5 -t1 x7 -t6 x4 x5 x6 x7 x9 f0 -t6 x4 x5 x6 x7 x9 f1 -.end diff --git a/test/circuits/original/mlp4_245.qasm b/test/circuits/original/mlp4_245.qasm new file mode 100644 index 00000000..fa6e50ea --- /dev/null +++ b/test/circuits/original/mlp4_245.qasm @@ -0,0 +1,136 @@ +// i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +// o 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 +OPENQASM 3.0; +include "stdgates.inc"; +qubit[16] q; +ccx q[10], q[14], q[4]; +ctrl(3) @ x q[10], q[11], q[14], q[6]; +ccx q[11], q[14], q[5]; +ccx q[11], q[15], q[6]; +ctrl(4) @ x q[9], q[11], q[14], q[15], q[7]; +ctrl(4) @ x q[9], q[11], q[14], q[15], q[6]; +ctrl(4) @ x q[9], q[11], q[13], q[15], q[5]; +ccx q[9], q[15], q[4]; +ccx q[9], q[14], q[3]; +ccx q[10], q[13], q[3]; +ccx q[11], q[13], q[4]; +ccx q[9], q[13], q[2]; +ccx q[8], q[13], q[1]; +ccx q[11], q[12], q[3]; +ctrl(4) @ x q[10], q[11], q[12], q[13], q[5]; +ctrl(4) @ x q[10], q[11], q[12], q[13], q[4]; +ccx q[10], q[12], q[2]; +ctrl(5) @ x q[9], q[11], q[12], q[14], q[15], q[6]; +ctrl(5) @ x q[9], q[11], q[12], q[14], q[15], q[5]; +ccx q[8], q[15], q[3]; +ctrl(4) @ x q[8], q[11], q[12], q[15], q[5]; +ctrl(4) @ x q[8], q[11], q[12], q[15], q[4]; +ccx q[10], q[15], q[5]; +ctrl(4) @ x q[8], q[9], q[12], q[13], q[5]; +ctrl(4) @ x q[8], q[9], q[12], q[13], q[4]; +ctrl(4) @ x q[8], q[9], q[12], q[13], q[3]; +ctrl(4) @ x q[8], q[9], q[12], q[13], q[2]; +ctrl(6) @ x q[8], q[10], q[11], q[12], q[14], q[15], q[6]; +ctrl(6) @ x q[8], q[10], q[11], q[12], q[14], q[15], q[4]; +ccx q[8], q[14], q[2]; +ctrl(5) @ x q[8], q[10], q[11], q[13], q[15], q[6]; +ctrl(5) @ x q[8], q[10], q[11], q[13], q[15], q[5]; +ctrl(4) @ x q[8], q[10], q[13], q[15], q[6]; +ctrl(4) @ x q[8], q[10], q[13], q[15], q[5]; +ctrl(4) @ x q[8], q[10], q[13], q[15], q[4]; +ccx q[9], q[12], q[1]; +ctrl(4) @ x q[8], q[10], q[12], q[14], q[3]; +ccx q[8], q[12], q[0]; +x q[8]; +ctrl(7) @ x q[8], q[9], q[10], q[12], q[13], q[14], q[15], q[6]; +ctrl(5) @ x q[8], q[9], q[10], q[12], q[13], q[3]; +ctrl(5) @ x q[8], q[9], q[10], q[13], q[14], q[5]; +ctrl(5) @ x q[8], q[9], q[10], q[13], q[14], q[4]; +x q[8]; +x q[14]; +ctrl(7) @ x q[8], q[9], q[10], q[11], q[12], q[14], q[15], q[7]; +ctrl(7) @ x q[8], q[9], q[10], q[11], q[12], q[14], q[15], q[6]; +x q[8]; +ctrl(7) @ x q[8], q[10], q[11], q[12], q[13], q[14], q[15], q[7]; +ctrl(7) @ x q[8], q[10], q[11], q[12], q[13], q[14], q[15], q[6]; +ctrl(6) @ x q[8], q[9], q[11], q[12], q[13], q[14], q[5]; +x q[11]; +ctrl(7) @ x q[8], q[9], q[10], q[11], q[13], q[14], q[15], q[6]; +ctrl(6) @ x q[8], q[9], q[10], q[11], q[13], q[15], q[6]; +ctrl(7) @ x q[8], q[9], q[10], q[11], q[12], q[13], q[15], q[6]; +x q[8]; +ctrl(6) @ x q[9], q[10], q[11], q[12], q[13], q[14], q[5]; +ctrl(6) @ x q[9], q[10], q[11], q[12], q[13], q[14], q[4]; +x q[14]; +x q[15]; +ctrl(6) @ x q[8], q[9], q[11], q[12], q[13], q[15], q[5]; +ctrl(6) @ x q[8], q[10], q[11], q[12], q[14], q[15], q[5]; +ctrl(6) @ x q[8], q[10], q[11], q[12], q[14], q[15], q[4]; +x q[11]; +x q[14]; +ctrl(6) @ x q[8], q[9], q[12], q[13], q[14], q[15], q[4]; +ctrl(6) @ x q[9], q[10], q[12], q[13], q[14], q[15], q[5]; +x q[14]; +x q[10]; +ctrl(5) @ x q[9], q[10], q[11], q[12], q[14], q[6]; +ctrl(5) @ x q[9], q[10], q[11], q[12], q[14], q[4]; +ctrl(6) @ x q[8], q[9], q[10], q[11], q[12], q[13], q[4]; +ctrl(6) @ x q[8], q[9], q[10], q[11], q[12], q[13], q[5]; +ctrl(5) @ x q[9], q[10], q[11], q[12], q[13], q[5]; +x q[12]; +ctrl(5) @ x q[8], q[9], q[12], q[13], q[14], q[5]; +ctrl(5) @ x q[8], q[9], q[12], q[13], q[14], q[4]; +ctrl(5) @ x q[8], q[9], q[12], q[13], q[14], q[3]; +ctrl(7) @ x q[8], q[9], q[10], q[11], q[12], q[13], q[14], q[5]; +ctrl(8) @ x q[8], q[9], q[10], q[11], q[12], q[13], q[14], q[15], q[6]; +ctrl(7) @ x q[8], q[9], q[10], q[12], q[13], q[14], q[15], q[5]; +x q[10]; +x q[15]; +x q[14]; +ctrl(7) @ x q[9], q[10], q[11], q[12], q[13], q[14], q[15], q[7]; +ctrl(7) @ x q[9], q[10], q[11], q[12], q[13], q[14], q[15], q[6]; +x q[14]; +x q[12]; +x q[13]; +ctrl(5) @ x q[8], q[9], q[13], q[14], q[15], q[4]; +ctrl(5) @ x q[9], q[10], q[13], q[14], q[15], q[6]; +ctrl(5) @ x q[9], q[10], q[13], q[14], q[15], q[5]; +ctrl(6) @ x q[9], q[10], q[11], q[12], q[13], q[14], q[6]; +ctrl(6) @ x q[9], q[10], q[11], q[12], q[13], q[14], q[5]; +ctrl(6) @ x q[9], q[10], q[11], q[12], q[13], q[14], q[4]; +x q[10]; +ctrl(6) @ x q[8], q[9], q[10], q[13], q[14], q[15], q[5]; +x q[8]; +x q[12]; +ctrl(8) @ x q[8], q[9], q[10], q[11], q[12], q[13], q[14], q[15], q[7]; +ctrl(8) @ x q[8], q[9], q[10], q[11], q[12], q[13], q[14], q[15], q[6]; +x q[12]; +x q[8]; +x q[15]; +ctrl(7) @ x q[9], q[10], q[11], q[12], q[13], q[14], q[15], q[6]; +x q[10]; +ctrl(5) @ x q[10], q[11], q[13], q[14], q[15], q[6]; +x q[15]; +x q[9]; +ctrl(5) @ x q[9], q[10], q[11], q[14], q[15], q[7]; +ctrl(6) @ x q[8], q[9], q[10], q[12], q[13], q[14], q[6]; +ctrl(6) @ x q[8], q[9], q[10], q[12], q[13], q[14], q[5]; +ctrl(6) @ x q[8], q[9], q[10], q[12], q[13], q[14], q[4]; +ctrl(6) @ x q[8], q[9], q[11], q[12], q[13], q[15], q[5]; +x q[13]; +ctrl(6) @ x q[9], q[10], q[11], q[12], q[13], q[14], q[5]; +ctrl(5) @ x q[9], q[10], q[11], q[13], q[14], q[5]; +x q[14]; +ctrl(6) @ x q[8], q[9], q[10], q[13], q[14], q[15], q[6]; +ctrl(6) @ x q[8], q[9], q[10], q[13], q[14], q[15], q[5]; +ctrl(7) @ x q[8], q[9], q[10], q[11], q[13], q[14], q[15], q[7]; +x q[14]; +x q[15]; +x q[13]; +ctrl(8) @ x q[8], q[9], q[10], q[11], q[12], q[13], q[14], q[15], q[6]; +ctrl(7) @ x q[8], q[9], q[10], q[12], q[13], q[14], q[15], q[6]; +x q[13]; +x q[15]; +x q[10]; +ctrl(8) @ x q[8], q[9], q[10], q[11], q[12], q[13], q[14], q[15], q[7]; +ctrl(8) @ x q[8], q[9], q[10], q[11], q[12], q[13], q[14], q[15], q[6]; diff --git a/test/circuits/original/mlp4_245.real b/test/circuits/original/mlp4_245.real deleted file mode 100755 index cfa31ed0..00000000 --- a/test/circuits/original/mlp4_245.real +++ /dev/null @@ -1,146 +0,0 @@ -# Function: mlp4 -# Used Library: MCT (Gates: 131, Quantum costs: 3753) -# This file have been taken from RevLib (www.revlib.org). -.version 1.0 -# Created by tfc2real J. Rice Jan 2009 -# Parameters for Exorcism: -n 1 -r 1 -a 0 -b 1 -c 1 -# Templates applied in both directions -.numvars 16 -.variables f7 f6 f5 f4 f3 f2 f1 f0 x7 x6 x5 x4 x3 x2 x1 x0 -.inputs 0 0 0 0 0 0 0 0 x7 x6 x5 x4 x3 x2 x1 x0 -.outputs f7 f6 f5 f4 f3 f2 f1 f0 x7 x6 x5 x4 x3 x2 x1 x0 -.constants 00000000-------- -.garbage 11111111-------- -.begin -t3 x1 x5 f3 -t4 x1 x4 x5 f1 -t3 x1 x4 f2 -t3 x0 x4 f1 -t5 x0 x1 x4 x6 f0 -t5 x0 x1 x4 x6 f1 -t5 x0 x2 x4 x6 f2 -t3 x0 x6 f3 -t3 x1 x6 f4 -t3 x2 x5 f4 -t3 x2 x4 f3 -t3 x2 x6 f5 -t3 x2 x7 f6 -t3 x3 x4 f4 -t5 x2 x3 x4 x5 f2 -t5 x2 x3 x4 x5 f3 -t3 x3 x5 f5 -t6 x0 x1 x3 x4 x6 f1 -t6 x0 x1 x3 x4 x6 f2 -t3 x0 x7 f4 -t5 x0 x3 x4 x7 f2 -t5 x0 x3 x4 x7 f3 -t3 x0 x5 f2 -t5 x2 x3 x6 x7 f2 -t5 x2 x3 x6 x7 f3 -t5 x2 x3 x6 x7 f4 -t5 x2 x3 x6 x7 f5 -t7 x0 x1 x3 x4 x5 x7 f1 -t7 x0 x1 x3 x4 x5 x7 f3 -t3 x1 x7 f5 -t6 x0 x2 x4 x5 x7 f1 -t6 x0 x2 x4 x5 x7 f2 -t5 x0 x2 x5 x7 f1 -t5 x0 x2 x5 x7 f2 -t5 x0 x2 x5 x7 f3 -t3 x3 x6 f6 -t5 x1 x3 x5 x7 f4 -t3 x3 x7 f7 -t1 x7 -t8 x0 x1 x2 x3 x5 x6 x7 f1 -t6 x2 x3 x5 x6 x7 f4 -t6 x1 x2 x5 x6 x7 f2 -t6 x1 x2 x5 x6 x7 f3 -t1 x7 -t1 x1 -t8 x0 x1 x3 x4 x5 x6 x7 f0 -t8 x0 x1 x3 x4 x5 x6 x7 f1 -t1 x7 -t8 x0 x1 x2 x3 x4 x5 x7 f0 -t8 x0 x1 x2 x3 x4 x5 x7 f1 -t7 x1 x2 x3 x4 x6 x7 f2 -t1 x4 -t8 x0 x1 x2 x4 x5 x6 x7 f1 -t7 x0 x2 x4 x5 x6 x7 f1 -t8 x0 x2 x3 x4 x5 x6 x7 f1 -t1 x7 -t7 x1 x2 x3 x4 x5 x6 f2 -t7 x1 x2 x3 x4 x5 x6 f3 -t1 x1 -t1 x0 -t7 x0 x2 x3 x4 x6 x7 f2 -t7 x0 x1 x3 x4 x5 x7 f2 -t7 x0 x1 x3 x4 x5 x7 f3 -t1 x4 -t1 x1 -t7 x0 x1 x2 x3 x6 x7 f3 -t7 x0 x1 x2 x3 x5 x6 f2 -t1 x1 -t1 x5 -t6 x1 x3 x4 x5 x6 f1 -t6 x1 x3 x4 x5 x6 f3 -t7 x2 x3 x4 x5 x6 x7 f3 -t7 x2 x3 x4 x5 x6 x7 f2 -t6 x2 x3 x4 x5 x6 f2 -t1 x3 -t6 x1 x2 x3 x6 x7 f2 -t6 x1 x2 x3 x6 x7 f3 -t6 x1 x2 x3 x6 x7 f4 -t8 x1 x2 x3 x4 x5 x6 x7 f2 -t9 x0 x1 x2 x3 x4 x5 x6 x7 f1 -t8 x0 x1 x2 x3 x5 x6 x7 f2 -t1 x5 -t1 x0 -t1 x1 -t8 x0 x1 x2 x3 x4 x5 x6 f0 -t8 x0 x1 x2 x3 x4 x5 x6 f1 -t1 x1 -t1 x3 -t1 x2 -t6 x0 x1 x2 x6 x7 f3 -t6 x0 x1 x2 x5 x6 f1 -t6 x0 x1 x2 x5 x6 f2 -t7 x1 x2 x3 x4 x5 x6 f1 -t7 x1 x2 x3 x4 x5 x6 f2 -t7 x1 x2 x3 x4 x5 x6 f3 -t1 x5 -t7 x0 x1 x2 x5 x6 x7 f2 -t1 x7 -t1 x3 -t9 x0 x1 x2 x3 x4 x5 x6 x7 f0 -t9 x0 x1 x2 x3 x4 x5 x6 x7 f1 -t1 x3 -t1 x7 -t1 x0 -t8 x0 x1 x2 x3 x4 x5 x6 f1 -t1 x5 -t6 x0 x1 x2 x4 x5 f1 -t1 x0 -t1 x6 -t6 x0 x1 x4 x5 x6 f0 -t7 x1 x2 x3 x5 x6 x7 f1 -t7 x1 x2 x3 x5 x6 x7 f2 -t7 x1 x2 x3 x5 x6 x7 f3 -t7 x0 x2 x3 x4 x6 x7 f2 -t1 x2 -t7 x1 x2 x3 x4 x5 x6 f2 -t6 x1 x2 x4 x5 x6 f2 -t1 x1 -t7 x0 x1 x2 x5 x6 x7 f1 -t7 x0 x1 x2 x5 x6 x7 f2 -t8 x0 x1 x2 x4 x5 x6 x7 f0 -t1 x1 -t1 x0 -t1 x2 -t9 x0 x1 x2 x3 x4 x5 x6 x7 f1 -t8 x0 x1 x2 x3 x5 x6 x7 f1 -t1 x2 -t1 x0 -t1 x5 -t9 x0 x1 x2 x3 x4 x5 x6 x7 f0 -t9 x0 x1 x2 x3 x4 x5 x6 x7 f1 -.end diff --git a/test/circuits/original/mod5adder_306.qasm b/test/circuits/original/mod5adder_306.qasm new file mode 100644 index 00000000..adc2ebce --- /dev/null +++ b/test/circuits/original/mod5adder_306.qasm @@ -0,0 +1,115 @@ +// i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 +// o 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 +OPENQASM 3.0; +include "stdgates.inc"; +qubit[32] q; +x q[6]; +x q[7]; +x q[10]; +x q[15]; +x q[18]; +x q[19]; +x q[20]; +x q[24]; +x q[25]; +x q[26]; +x q[28]; +x q[29]; +x q[30]; +x q[31]; +cx q[1], q[6]; +cx q[4], q[6]; +ccx q[3], q[6], q[7]; +cx q[6], q[7]; +cx q[3], q[8]; +ccx q[2], q[7], q[8]; +ccx q[2], q[3], q[8]; +ccx q[3], q[4], q[9]; +ccx q[1], q[4], q[10]; +cx q[1], q[10]; +cx q[10], q[11]; +ccx q[0], q[4], q[11]; +ccx q[0], q[10], q[11]; +ccx q[1], q[4], q[12]; +cx q[12], q[13]; +ccx q[0], q[6], q[13]; +ccx q[0], q[12], q[13]; +cx q[13], q[14]; +ccx q[3], q[11], q[14]; +ccx q[3], q[13], q[14]; +cx q[14], q[9]; +ccx q[2], q[9], q[14]; +cx q[14], q[8]; +ccx q[5], q[8], q[14]; +cx q[0], q[15]; +cx q[4], q[15]; +cx q[1], q[16]; +ccx q[1], q[4], q[16]; +cx q[4], q[16]; +cx q[0], q[17]; +ccx q[0], q[16], q[17]; +cx q[16], q[17]; +cx q[3], q[18]; +cx q[17], q[18]; +ccx q[3], q[15], q[18]; +ccx q[3], q[17], q[18]; +cx q[0], q[19]; +cx q[6], q[19]; +ccx q[0], q[16], q[19]; +ccx q[0], q[6], q[19]; +x q[19]; +ccx q[3], q[19], q[15]; +ccx q[3], q[15], q[19]; +x q[19]; +ccx q[2], q[19], q[18]; +ccx q[2], q[18], q[19]; +cx q[0], q[20]; +cx q[6], q[20]; +ccx q[0], q[10], q[20]; +ccx q[0], q[6], q[20]; +cx q[20], q[21]; +ccx q[3], q[16], q[21]; +ccx q[3], q[20], q[21]; +cx q[4], q[22]; +ccx q[0], q[10], q[22]; +ccx q[0], q[4], q[22]; +cx q[0], q[23]; +ccx q[0], q[6], q[23]; +cx q[6], q[23]; +x q[23]; +ccx q[3], q[23], q[22]; +ccx q[3], q[22], q[23]; +cx q[23], q[21]; +ccx q[2], q[21], q[23]; +cx q[23], q[19]; +ccx q[5], q[19], q[23]; +cx q[0], q[24]; +cx q[12], q[24]; +ccx q[0], q[16], q[24]; +ccx q[0], q[12], q[24]; +ccx q[3], q[24], q[25]; +cx q[24], q[25]; +cx q[0], q[26]; +cx q[12], q[26]; +cx q[3], q[27]; +ccx q[3], q[26], q[27]; +cx q[26], q[27]; +cx q[27], q[25]; +ccx q[2], q[25], q[27]; +ccx q[1], q[4], q[28]; +cx q[4], q[28]; +cx q[0], q[29]; +cx q[12], q[29]; +ccx q[0], q[28], q[29]; +ccx q[0], q[12], q[29]; +ccx q[3], q[29], q[30]; +cx q[29], q[30]; +ccx q[0], q[28], q[31]; +cx q[0], q[31]; +cx q[31], q[11]; +ccx q[3], q[11], q[31]; +cx q[31], q[30]; +ccx q[2], q[30], q[31]; +x q[31]; +ccx q[5], q[31], q[27]; +ccx q[5], q[27], q[31]; diff --git a/test/circuits/original/mod5adder_306.real b/test/circuits/original/mod5adder_306.real deleted file mode 100755 index 51576ed3..00000000 --- a/test/circuits/original/mod5adder_306.real +++ /dev/null @@ -1,109 +0,0 @@ -# This file has been generated using RevKit 1.1 (www.revkit.org) -# Command Line: -# ./tools/bdd_synthesis.py --filename mod5adder_66.pla --realname mod5adder_66.real -# Based on the approach proposed in R. Wille and R. Drechsler. BDD-based synthesis of reversible logic for large functions. In Design Automation Conf., pages 270-275, 2009. -.version 2.0 -.numvars 32 -.variables x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 -.inputs a b c d e f 1 1 0 0 1 0 0 0 0 1 0 0 1 1 1 0 0 0 1 1 1 0 1 1 1 1 -.outputs a b c g g g g g g g g g g g d g g g g g g g g e g g g g g g g f -.constants ------11001000010011100011101111 -.garbage ---11111111111-11111111-1111111- -.begin -t2 x1 x6 -t2 x4 x6 -t3 x3 x6 x7 -t2 x6 x7 -t2 x3 x8 -t3 x2 x7 x8 -t3 x2 x3 x8 -t3 x3 x4 x9 -t3 x1 x4 x10 -t2 x1 x10 -t2 x10 x11 -t3 x0 x4 x11 -t3 x0 x10 x11 -t3 x1 x4 x12 -t2 x12 x13 -t3 x0 x6 x13 -t3 x0 x12 x13 -t2 x13 x14 -t3 x3 x11 x14 -t3 x3 x13 x14 -t2 x14 x9 -t3 x2 x9 x14 -t2 x14 x8 -t3 x5 x8 x14 -t2 x0 x15 -t2 x4 x15 -t2 x1 x16 -t3 x1 x4 x16 -t2 x4 x16 -t2 x0 x17 -t3 x0 x16 x17 -t2 x16 x17 -t2 x3 x18 -t2 x17 x18 -t3 x3 x15 x18 -t3 x3 x17 x18 -t2 x0 x19 -t2 x6 x19 -t3 x0 x16 x19 -t3 x0 x6 x19 -t1 x19 -t3 x3 x19 x15 -t3 x3 x15 x19 -t1 x19 -t3 x2 x19 x18 -t3 x2 x18 x19 -t2 x0 x20 -t2 x6 x20 -t3 x0 x10 x20 -t3 x0 x6 x20 -t2 x20 x21 -t3 x3 x16 x21 -t3 x3 x20 x21 -t2 x4 x22 -t3 x0 x10 x22 -t3 x0 x4 x22 -t2 x0 x23 -t3 x0 x6 x23 -t2 x6 x23 -t1 x23 -t3 x3 x23 x22 -t3 x3 x22 x23 -t2 x23 x21 -t3 x2 x21 x23 -t2 x23 x19 -t3 x5 x19 x23 -t2 x0 x24 -t2 x12 x24 -t3 x0 x16 x24 -t3 x0 x12 x24 -t3 x3 x24 x25 -t2 x24 x25 -t2 x0 x26 -t2 x12 x26 -t2 x3 x27 -t3 x3 x26 x27 -t2 x26 x27 -t2 x27 x25 -t3 x2 x25 x27 -t3 x1 x4 x28 -t2 x4 x28 -t2 x0 x29 -t2 x12 x29 -t3 x0 x28 x29 -t3 x0 x12 x29 -t3 x3 x29 x30 -t2 x29 x30 -t3 x0 x28 x31 -t2 x0 x31 -t2 x31 x11 -t3 x3 x11 x31 -t2 x31 x30 -t3 x2 x30 x31 -t1 x31 -t3 x5 x31 x27 -t3 x5 x27 x31 -.end diff --git a/test/circuits/original/pcler8_248.qasm b/test/circuits/original/pcler8_248.qasm new file mode 100644 index 00000000..79ea4b5b --- /dev/null +++ b/test/circuits/original/pcler8_248.qasm @@ -0,0 +1,27 @@ +// i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 +// o 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 +OPENQASM 3.0; +include "stdgates.inc"; +qubit[21] q; +ctrl(4) @ x q[15], q[16], q[17], q[18], q[4]; +ctrl(5) @ x q[5], q[6], q[10], q[12], q[17], q[0]; +x q[4]; +x q[3]; +x q[2]; +x q[1]; +x q[11]; +ctrl(5) @ x q[11], q[15], q[16], q[17], q[18], q[3]; +ctrl(3) @ x q[11], q[15], q[16], q[4]; +x q[9]; +ctrl(3) @ x q[9], q[15], q[16], q[3]; +ctrl(6) @ x q[9], q[11], q[15], q[16], q[17], q[18], q[2]; +x q[8]; +ctrl(3) @ x q[8], q[15], q[16], q[2]; +ctrl(7) @ x q[8], q[9], q[11], q[15], q[16], q[17], q[18], q[1]; +x q[7]; +ctrl(3) @ x q[7], q[15], q[16], q[1]; +x q[16]; +ctrl(3) @ x q[15], q[16], q[20], q[4]; +ctrl(3) @ x q[13], q[15], q[16], q[1]; +ctrl(3) @ x q[14], q[15], q[16], q[2]; +ctrl(3) @ x q[15], q[16], q[19], q[3]; diff --git a/test/circuits/original/pcler8_248.real b/test/circuits/original/pcler8_248.real deleted file mode 100755 index 83ddbb19..00000000 --- a/test/circuits/original/pcler8_248.real +++ /dev/null @@ -1,37 +0,0 @@ -# Function: pcler8 -# Used Library: MCT (Gates: 22, Quantum costs: 327) -# This file have been taken from RevLib (www.revlib.org). -.version 1.0 -# Created by tfc2real J. Rice Jan 2009 -# Parameters for Exorcism: -n 1 -r 1 -a 0 -b 1 -c 1 -# Templates applied in both directions -.numvars 21 -.variables f4 f3 f2 f1 f0 x15 x14 x13 x12 x11 x10 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.inputs 0 0 0 0 0 x15 x14 x13 x12 x11 x10 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.outputs f4 f3 f2 f1 f0 x15 x14 x13 x12 x11 x10 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0 -.constants 00000---------------- -.garbage 1111111111111111----- -.begin -t5 x2 x3 x4 x5 f0 -t6 x3 x8 x10 x14 x15 f4 -t1 f0 -t1 f1 -t1 f2 -t1 f3 -t1 x9 -t6 x2 x3 x4 x5 x9 f1 -t4 x4 x5 x9 f0 -t1 x11 -t4 x4 x5 x11 f1 -t7 x2 x3 x4 x5 x9 x11 f2 -t1 x12 -t4 x4 x5 x12 f2 -t8 x2 x3 x4 x5 x9 x11 x12 f3 -t1 x13 -t4 x4 x5 x13 f3 -t1 x4 -t4 x0 x4 x5 f0 -t4 x4 x5 x7 f3 -t4 x4 x5 x6 f2 -t4 x1 x4 x5 f1 -.end diff --git a/test/circuits/original/rd73_312.qasm b/test/circuits/original/rd73_312.qasm new file mode 100644 index 00000000..e87cb78a --- /dev/null +++ b/test/circuits/original/rd73_312.qasm @@ -0,0 +1,81 @@ +// i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 +// o 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 +OPENQASM 3.0; +include "stdgates.inc"; +qubit[25] q; +x q[10]; +x q[12]; +x q[15]; +cx q[5], q[7]; +ccx q[5], q[6], q[7]; +cx q[6], q[7]; +ccx q[5], q[6], q[8]; +cx q[8], q[9]; +ccx q[0], q[7], q[9]; +ccx q[0], q[8], q[9]; +cx q[0], q[10]; +cx q[7], q[10]; +ccx q[0], q[8], q[10]; +ccx q[0], q[7], q[10]; +cx q[10], q[11]; +ccx q[4], q[9], q[11]; +ccx q[4], q[10], q[11]; +cx q[4], q[12]; +cx q[9], q[12]; +ccx q[4], q[10], q[12]; +ccx q[4], q[9], q[12]; +cx q[12], q[13]; +ccx q[1], q[11], q[13]; +ccx q[1], q[12], q[13]; +x q[11]; +ccx q[1], q[11], q[12]; +ccx q[1], q[12], q[11]; +cx q[11], q[14]; +ccx q[2], q[13], q[14]; +ccx q[2], q[11], q[14]; +x q[13]; +ccx q[2], q[13], q[11]; +ccx q[2], q[11], q[13]; +cx q[13], q[14]; +ccx q[3], q[14], q[13]; +cx q[5], q[15]; +cx q[6], q[15]; +cx q[0], q[15]; +x q[15]; +cx q[4], q[15]; +x q[15]; +cx q[1], q[15]; +x q[15]; +cx q[2], q[15]; +x q[15]; +cx q[3], q[15]; +x q[15]; +cx q[0], q[16]; +ccx q[0], q[7], q[16]; +cx q[7], q[16]; +cx q[4], q[17]; +ccx q[4], q[16], q[17]; +cx q[16], q[17]; +cx q[9], q[18]; +ccx q[4], q[16], q[18]; +ccx q[4], q[9], q[18]; +cx q[18], q[19]; +ccx q[1], q[17], q[19]; +ccx q[1], q[18], q[19]; +ccx q[0], q[8], q[20]; +cx q[20], q[21]; +ccx q[4], q[9], q[21]; +ccx q[4], q[20], q[21]; +cx q[21], q[22]; +ccx q[1], q[18], q[22]; +ccx q[1], q[21], q[22]; +cx q[22], q[23]; +ccx q[2], q[19], q[23]; +ccx q[2], q[22], q[23]; +ccx q[4], q[20], q[24]; +cx q[24], q[21]; +ccx q[1], q[21], q[24]; +cx q[24], q[22]; +ccx q[2], q[22], q[24]; +cx q[24], q[23]; +ccx q[3], q[23], q[24]; diff --git a/test/circuits/original/rd73_312.real b/test/circuits/original/rd73_312.real deleted file mode 100755 index b961056f..00000000 --- a/test/circuits/original/rd73_312.real +++ /dev/null @@ -1,86 +0,0 @@ -# This file has been generated using RevKit 1.1 (www.revkit.org) -# Command Line: -# ./tools/bdd_synthesis.py --filename rd73_69.pla --realname rd73_69.real -# Based on the approach proposed in R. Wille and R. Drechsler. BDD-based synthesis of reversible logic for large functions. In Design Automation Conf., pages 270-275, 2009. -.version 2.0 -.numvars 25 -.variables x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 -.inputs x1 x2 x3 x4 x5 x6 x7 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 -.outputs g g g g g g g g g g g g g s2 g s0 g g g g g g g g s1 -.constants -------000101001000000000 -.garbage 1111111111111-1-11111111- -.begin -t2 x5 x7 -t3 x5 x6 x7 -t2 x6 x7 -t3 x5 x6 x8 -t2 x8 x9 -t3 x0 x7 x9 -t3 x0 x8 x9 -t2 x0 x10 -t2 x7 x10 -t3 x0 x8 x10 -t3 x0 x7 x10 -t2 x10 x11 -t3 x4 x9 x11 -t3 x4 x10 x11 -t2 x4 x12 -t2 x9 x12 -t3 x4 x10 x12 -t3 x4 x9 x12 -t2 x12 x13 -t3 x1 x11 x13 -t3 x1 x12 x13 -t1 x11 -t3 x1 x11 x12 -t3 x1 x12 x11 -t2 x11 x14 -t3 x2 x13 x14 -t3 x2 x11 x14 -t1 x13 -t3 x2 x13 x11 -t3 x2 x11 x13 -t2 x13 x14 -t3 x3 x14 x13 -t2 x5 x15 -t2 x6 x15 -t2 x0 x15 -t1 x15 -t2 x4 x15 -t1 x15 -t2 x1 x15 -t1 x15 -t2 x2 x15 -t1 x15 -t2 x3 x15 -t1 x15 -t2 x0 x16 -t3 x0 x7 x16 -t2 x7 x16 -t2 x4 x17 -t3 x4 x16 x17 -t2 x16 x17 -t2 x9 x18 -t3 x4 x16 x18 -t3 x4 x9 x18 -t2 x18 x19 -t3 x1 x17 x19 -t3 x1 x18 x19 -t3 x0 x8 x20 -t2 x20 x21 -t3 x4 x9 x21 -t3 x4 x20 x21 -t2 x21 x22 -t3 x1 x18 x22 -t3 x1 x21 x22 -t2 x22 x23 -t3 x2 x19 x23 -t3 x2 x22 x23 -t3 x4 x20 x24 -t2 x24 x21 -t3 x1 x21 x24 -t2 x24 x22 -t3 x2 x22 x24 -t2 x24 x23 -t3 x3 x23 x24 -.end diff --git a/test/circuits/original/rd84_313.qasm b/test/circuits/original/rd84_313.qasm new file mode 100644 index 00000000..cf05ee23 --- /dev/null +++ b/test/circuits/original/rd84_313.qasm @@ -0,0 +1,118 @@ +// i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 +// o 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 +OPENQASM 3.0; +include "stdgates.inc"; +qubit[34] q; +x q[8]; +x q[11]; +x q[13]; +x q[15]; +x q[16]; +x q[17]; +x q[22]; +x q[25]; +x q[28]; +cx q[6], q[8]; +cx q[7], q[8]; +cx q[0], q[8]; +x q[8]; +cx q[5], q[8]; +x q[8]; +cx q[1], q[8]; +x q[8]; +cx q[4], q[8]; +x q[8]; +cx q[2], q[8]; +x q[8]; +cx q[3], q[8]; +x q[8]; +ccx q[6], q[7], q[9]; +cx q[6], q[10]; +ccx q[6], q[7], q[10]; +cx q[7], q[10]; +cx q[0], q[11]; +cx q[10], q[11]; +ccx q[0], q[9], q[11]; +ccx q[0], q[10], q[11]; +cx q[9], q[12]; +ccx q[0], q[10], q[12]; +ccx q[0], q[9], q[12]; +cx q[5], q[13]; +cx q[12], q[13]; +ccx q[5], q[11], q[13]; +ccx q[5], q[12], q[13]; +cx q[11], q[14]; +ccx q[5], q[12], q[14]; +ccx q[5], q[11], q[14]; +cx q[1], q[15]; +cx q[14], q[15]; +ccx q[1], q[13], q[15]; +ccx q[1], q[14], q[15]; +cx q[13], q[14]; +ccx q[1], q[14], q[13]; +cx q[4], q[16]; +cx q[13], q[16]; +ccx q[4], q[15], q[16]; +ccx q[4], q[13], q[16]; +cx q[15], q[13]; +ccx q[4], q[13], q[15]; +cx q[2], q[17]; +cx q[15], q[17]; +ccx q[2], q[16], q[17]; +ccx q[2], q[15], q[17]; +cx q[16], q[15]; +ccx q[2], q[15], q[16]; +x q[16]; +ccx q[3], q[16], q[17]; +ccx q[3], q[17], q[16]; +ccx q[0], q[9], q[18]; +ccx q[5], q[18], q[19]; +cx q[0], q[20]; +ccx q[0], q[10], q[20]; +cx q[10], q[20]; +cx q[5], q[21]; +ccx q[5], q[20], q[21]; +cx q[20], q[21]; +cx q[1], q[22]; +cx q[21], q[22]; +ccx q[1], q[19], q[22]; +ccx q[1], q[21], q[22]; +cx q[12], q[23]; +ccx q[5], q[20], q[23]; +ccx q[5], q[12], q[23]; +cx q[23], q[24]; +ccx q[1], q[21], q[24]; +ccx q[1], q[23], q[24]; +cx q[4], q[25]; +cx q[24], q[25]; +ccx q[4], q[22], q[25]; +ccx q[4], q[24], q[25]; +cx q[18], q[12]; +ccx q[5], q[12], q[18]; +cx q[18], q[26]; +ccx q[1], q[23], q[26]; +ccx q[1], q[18], q[26]; +cx q[26], q[27]; +ccx q[4], q[24], q[27]; +ccx q[4], q[26], q[27]; +cx q[2], q[28]; +cx q[27], q[28]; +ccx q[2], q[25], q[28]; +ccx q[2], q[27], q[28]; +cx q[19], q[29]; +ccx q[1], q[18], q[29]; +ccx q[1], q[19], q[29]; +cx q[29], q[26]; +ccx q[4], q[26], q[29]; +cx q[29], q[27]; +ccx q[2], q[27], q[29]; +x q[29]; +ccx q[3], q[29], q[28]; +ccx q[3], q[28], q[29]; +ccx q[1], q[19], q[30]; +ccx q[4], q[30], q[31]; +ccx q[2], q[31], q[32]; +ccx q[3], q[32], q[33]; +x q[8]; +x q[16]; +x q[29]; diff --git a/test/circuits/original/rd84_313.real b/test/circuits/original/rd84_313.real deleted file mode 100755 index d023003b..00000000 --- a/test/circuits/original/rd84_313.real +++ /dev/null @@ -1,117 +0,0 @@ -# This file has been generated using RevKit 1.1 (www.revkit.org) -# Command Line: -# ./tools/bdd_synthesis.py --filename rd84_70.pla --realname rd84_70.real -# Based on the approach proposed in R. Wille and R. Drechsler. BDD-based synthesis of reversible logic for large functions. In Design Automation Conf., pages 270-275, 2009. -.version 2.0 -.numvars 34 -.variables x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 x32 x33 -.inputs x1 x2 x3 x4 x5 x6 x7 x8 1 0 0 1 0 1 0 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 -.outputs g g g g g g g g s0 g g g g g g g s1 g g g g g g g g g g g g s2 g g g s3 -.constants --------10010101110000100100100000 -.garbage 11111111-1111111-111111111111-111- -.begin -t2 x6 x8 -t2 x7 x8 -t2 x0 x8 -t1 x8 -t2 x5 x8 -t1 x8 -t2 x1 x8 -t1 x8 -t2 x4 x8 -t1 x8 -t2 x2 x8 -t1 x8 -t2 x3 x8 -t1 x8 -t3 x6 x7 x9 -t2 x6 x10 -t3 x6 x7 x10 -t2 x7 x10 -t2 x0 x11 -t2 x10 x11 -t3 x0 x9 x11 -t3 x0 x10 x11 -t2 x9 x12 -t3 x0 x10 x12 -t3 x0 x9 x12 -t2 x5 x13 -t2 x12 x13 -t3 x5 x11 x13 -t3 x5 x12 x13 -t2 x11 x14 -t3 x5 x12 x14 -t3 x5 x11 x14 -t2 x1 x15 -t2 x14 x15 -t3 x1 x13 x15 -t3 x1 x14 x15 -t2 x13 x14 -t3 x1 x14 x13 -t2 x4 x16 -t2 x13 x16 -t3 x4 x15 x16 -t3 x4 x13 x16 -t2 x15 x13 -t3 x4 x13 x15 -t2 x2 x17 -t2 x15 x17 -t3 x2 x16 x17 -t3 x2 x15 x17 -t2 x16 x15 -t3 x2 x15 x16 -t1 x16 -t3 x3 x16 x17 -t3 x3 x17 x16 -t3 x0 x9 x18 -t3 x5 x18 x19 -t2 x0 x20 -t3 x0 x10 x20 -t2 x10 x20 -t2 x5 x21 -t3 x5 x20 x21 -t2 x20 x21 -t2 x1 x22 -t2 x21 x22 -t3 x1 x19 x22 -t3 x1 x21 x22 -t2 x12 x23 -t3 x5 x20 x23 -t3 x5 x12 x23 -t2 x23 x24 -t3 x1 x21 x24 -t3 x1 x23 x24 -t2 x4 x25 -t2 x24 x25 -t3 x4 x22 x25 -t3 x4 x24 x25 -t2 x18 x12 -t3 x5 x12 x18 -t2 x18 x26 -t3 x1 x23 x26 -t3 x1 x18 x26 -t2 x26 x27 -t3 x4 x24 x27 -t3 x4 x26 x27 -t2 x2 x28 -t2 x27 x28 -t3 x2 x25 x28 -t3 x2 x27 x28 -t2 x19 x29 -t3 x1 x18 x29 -t3 x1 x19 x29 -t2 x29 x26 -t3 x4 x26 x29 -t2 x29 x27 -t3 x2 x27 x29 -t1 x29 -t3 x3 x29 x28 -t3 x3 x28 x29 -t3 x1 x19 x30 -t3 x4 x30 x31 -t3 x2 x31 x32 -t3 x3 x32 x33 -t1 x8 -t1 x16 -t1 x29 -.end diff --git a/test/circuits/original/sym9_317.qasm b/test/circuits/original/sym9_317.qasm new file mode 100644 index 00000000..eca1184e --- /dev/null +++ b/test/circuits/original/sym9_317.qasm @@ -0,0 +1,69 @@ +// i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 +// o 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 +OPENQASM 3.0; +include "stdgates.inc"; +qubit[27] q; +x q[21]; +x q[24]; +cx q[0], q[9]; +ccx q[0], q[8], q[9]; +cx q[8], q[9]; +cx q[7], q[10]; +ccx q[7], q[9], q[10]; +cx q[9], q[10]; +ccx q[0], q[8], q[11]; +cx q[11], q[12]; +ccx q[7], q[9], q[12]; +ccx q[7], q[11], q[12]; +cx q[12], q[13]; +ccx q[1], q[10], q[13]; +ccx q[1], q[12], q[13]; +ccx q[7], q[11], q[14]; +cx q[14], q[15]; +ccx q[1], q[12], q[15]; +ccx q[1], q[14], q[15]; +cx q[15], q[16]; +ccx q[6], q[13], q[16]; +ccx q[6], q[15], q[16]; +ccx q[1], q[14], q[17]; +cx q[17], q[18]; +ccx q[6], q[15], q[18]; +ccx q[6], q[17], q[18]; +cx q[18], q[19]; +ccx q[2], q[16], q[19]; +ccx q[2], q[18], q[19]; +cx q[1], q[20]; +ccx q[1], q[10], q[20]; +cx q[10], q[20]; +cx q[6], q[21]; +cx q[20], q[21]; +ccx q[6], q[17], q[21]; +ccx q[6], q[20], q[21]; +cx q[21], q[22]; +ccx q[2], q[18], q[22]; +ccx q[2], q[21], q[22]; +cx q[22], q[23]; +ccx q[5], q[19], q[23]; +ccx q[5], q[22], q[23]; +cx q[13], q[20]; +ccx q[6], q[20], q[13]; +cx q[2], q[24]; +cx q[13], q[24]; +ccx q[2], q[21], q[24]; +ccx q[2], q[13], q[24]; +cx q[24], q[25]; +ccx q[5], q[22], q[25]; +ccx q[5], q[24], q[25]; +cx q[25], q[26]; +ccx q[4], q[23], q[26]; +ccx q[4], q[25], q[26]; +cx q[16], q[13]; +ccx q[2], q[13], q[16]; +x q[16]; +ccx q[5], q[16], q[24]; +ccx q[5], q[24], q[16]; +cx q[16], q[25]; +ccx q[4], q[25], q[16]; +cx q[16], q[26]; +ccx q[3], q[26], q[16]; +x q[16]; diff --git a/test/circuits/original/sym9_317.real b/test/circuits/original/sym9_317.real deleted file mode 100755 index 0ab8d722..00000000 --- a/test/circuits/original/sym9_317.real +++ /dev/null @@ -1,75 +0,0 @@ -# This file has been generated using RevKit 1.1 (www.revkit.org) -# Command Line: -# ./tools/bdd_synthesis.py --filename sym9_71.pla --realname sym9_71.real -# Based on the approach proposed in R. Wille and R. Drechsler. BDD-based synthesis of reversible logic for large functions. In Design Automation Conf., pages 270-275, 2009. -.version 2.0 -.numvars 27 -.variables x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 -.inputs x1 x2 x3 x4 x5 x6 x7 x8 x9 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 -.outputs g g g g g g g g g g g g g g g g s g g g g g g g g g g -.constants ---------000000000000100100 -.garbage 1111111111111111-1111111111 -.begin -t2 x0 x9 -t3 x0 x8 x9 -t2 x8 x9 -t2 x7 x10 -t3 x7 x9 x10 -t2 x9 x10 -t3 x0 x8 x11 -t2 x11 x12 -t3 x7 x9 x12 -t3 x7 x11 x12 -t2 x12 x13 -t3 x1 x10 x13 -t3 x1 x12 x13 -t3 x7 x11 x14 -t2 x14 x15 -t3 x1 x12 x15 -t3 x1 x14 x15 -t2 x15 x16 -t3 x6 x13 x16 -t3 x6 x15 x16 -t3 x1 x14 x17 -t2 x17 x18 -t3 x6 x15 x18 -t3 x6 x17 x18 -t2 x18 x19 -t3 x2 x16 x19 -t3 x2 x18 x19 -t2 x1 x20 -t3 x1 x10 x20 -t2 x10 x20 -t2 x6 x21 -t2 x20 x21 -t3 x6 x17 x21 -t3 x6 x20 x21 -t2 x21 x22 -t3 x2 x18 x22 -t3 x2 x21 x22 -t2 x22 x23 -t3 x5 x19 x23 -t3 x5 x22 x23 -t2 x13 x20 -t3 x6 x20 x13 -t2 x2 x24 -t2 x13 x24 -t3 x2 x21 x24 -t3 x2 x13 x24 -t2 x24 x25 -t3 x5 x22 x25 -t3 x5 x24 x25 -t2 x25 x26 -t3 x4 x23 x26 -t3 x4 x25 x26 -t2 x16 x13 -t3 x2 x13 x16 -t1 x16 -t3 x5 x16 x24 -t3 x5 x24 x16 -t2 x16 x25 -t3 x4 x25 x16 -t2 x16 x26 -t3 x3 x26 x16 -t1 x16 -.end diff --git a/test/circuits/test/test.qasm b/test/circuits/test/test.qasm new file mode 100644 index 00000000..388db1ca --- /dev/null +++ b/test/circuits/test/test.qasm @@ -0,0 +1,6 @@ +// i 0 1 +// o 0 1 +OPENQASM 3.0; +include "stdgates.inc"; +qubit[2] q; +cx q[1], q[0]; diff --git a/test/circuits/test/test.real b/test/circuits/test/test.real deleted file mode 100755 index dacd05e8..00000000 --- a/test/circuits/test/test.real +++ /dev/null @@ -1,6 +0,0 @@ -.version 1.0 -.numvars 2 -.variables q0 q1 -.begin -t2 q1 q0 -.end diff --git a/test/circuits/test/test2.qasm b/test/circuits/test/test2.qasm new file mode 100644 index 00000000..87be4242 --- /dev/null +++ b/test/circuits/test/test2.qasm @@ -0,0 +1,8 @@ +// i 0 1 2 +// o 0 1 2 +OPENQASM 3.0; +include "stdgates.inc"; +qubit[3] q; +cx q[2], q[1]; +cx q[1], q[0]; +cx q[2], q[1]; diff --git a/test/circuits/test/test2.real b/test/circuits/test/test2.real deleted file mode 100755 index e2e66420..00000000 --- a/test/circuits/test/test2.real +++ /dev/null @@ -1,8 +0,0 @@ -.version 1.0 -.numvars 3 -.variables q0 q1 q2 -.begin -t2 q2 q1 -t2 q1 q0 -t2 q2 q1 -.end diff --git a/test/circuits/test/test_alternative.qasm b/test/circuits/test/test_alternative.qasm new file mode 100644 index 00000000..2d63fdfe --- /dev/null +++ b/test/circuits/test/test_alternative.qasm @@ -0,0 +1,21 @@ +// i 0 1 2 +// o 0 1 2 +OPENQASM 3.0; +include "stdgates.inc"; +qubit[3] q; +h q[1]; +cx q[1], q[2]; +h q[0]; +cx q[1], q[0]; +tdg q[0]; +cx q[2], q[0]; +t q[0]; +cx q[1], q[0]; +tdg q[0]; +t q[1]; +cx q[2], q[0]; +cx q[2], q[1]; +t q[0]; +h q[0]; +tdg q[1]; +t q[2]; diff --git a/test/circuits/test/test_alternative.real b/test/circuits/test/test_alternative.real deleted file mode 100644 index 52a725fc..00000000 --- a/test/circuits/test/test_alternative.real +++ /dev/null @@ -1,22 +0,0 @@ -.numvars 3 -.variables q0 q1 q2 -.begin -h1 q1 -t2 q1 q2 - -h1 q0 -t2 q1 q0 -q1:-4 q0 -t2 q2 q0 -q1:4 q0 -t2 q1 q0 -q1:-4 q0 -q1:4 q1 -t2 q2 q0 -t2 q2 q1 -q1:4 q0 -h1 q0 -q1:-4 q1 -q1:4 q2 - -.end diff --git a/test/circuits/test/test_erroneous.qasm b/test/circuits/test/test_erroneous.qasm new file mode 100644 index 00000000..5a163b1d --- /dev/null +++ b/test/circuits/test/test_erroneous.qasm @@ -0,0 +1,20 @@ +// i 0 1 2 +// o 0 1 2 +OPENQASM 3.0; +include "stdgates.inc"; +qubit[3] q; +h q[1]; +cx q[1], q[2]; +h q[0]; +cx q[1], q[0]; +tdg q[0]; +cx q[2], q[0]; +t q[0]; +cx q[1], q[0]; +tdg q[0]; +t q[1]; +cx q[2], q[0]; +cx q[2], q[1]; +t q[0]; +h q[0]; +tdg q[1]; diff --git a/test/circuits/test/test_erroneous.real b/test/circuits/test/test_erroneous.real deleted file mode 100644 index db1a60b8..00000000 --- a/test/circuits/test/test_erroneous.real +++ /dev/null @@ -1,22 +0,0 @@ -.numvars 3 -.variables q0 q1 q2 -.begin -h1 q1 -t2 q1 q2 - -h1 q0 -t2 q1 q0 -q1:-4 q0 -t2 q2 q0 -q1:4 q0 -t2 q1 q0 -q1:-4 q0 -q1:4 q1 -t2 q2 q0 -t2 q2 q1 -q1:4 q0 -h1 q0 -q1:-4 q1 -#q1:4 q2 - -.end diff --git a/test/circuits/test/test_original.qasm b/test/circuits/test/test_original.qasm new file mode 100644 index 00000000..5d41f5d0 --- /dev/null +++ b/test/circuits/test/test_original.qasm @@ -0,0 +1,9 @@ +// i 0 1 2 +// o 0 1 2 +OPENQASM 3.0; +include "stdgates.inc"; +qubit[3] q; +h q[1]; +cx q[1], q[2]; +ccx q[1], q[2], q[0]; +cx q[2], q[1]; diff --git a/test/circuits/test/test_original.real b/test/circuits/test/test_original.real deleted file mode 100644 index e18b7181..00000000 --- a/test/circuits/test/test_original.real +++ /dev/null @@ -1,8 +0,0 @@ -.numvars 3 -.variables q0 q1 q2 -.begin -h1 q1 -t2 q1 q2 -t3 q2 q1 q0 -t2 q2 q1 -.end diff --git a/test/legacy/test_compilationflow.cpp b/test/legacy/test_compilationflow.cpp index ec2d4c88..a6db064e 100644 --- a/test/legacy/test_compilationflow.cpp +++ b/test/legacy/test_compilationflow.cpp @@ -8,6 +8,7 @@ #include "checker/dd/applicationscheme/ApplicationScheme.hpp" #include "checker/dd/applicationscheme/GateCostApplicationScheme.hpp" #include "ir/QuantumComputation.hpp" +#include "qasm3/Importer.hpp" #include #include @@ -25,8 +26,10 @@ class CompilationFlowTest : public testing::TestWithParam { ec::Configuration configuration{}; void SetUp() override { - qcOriginal.import(testOriginalDir + GetParam() + ".real"); - qcTranspiled.import(testTranspiledDir + GetParam() + "_transpiled.qasm"); + qcOriginal = + qasm3::Importer::importf(testOriginalDir + GetParam() + ".qasm"); + qcTranspiled = qasm3::Importer::importf(testTranspiledDir + GetParam() + + "_transpiled.qasm"); configuration.execution.runAlternatingChecker = true; configuration.execution.runConstructionChecker = false; diff --git a/test/legacy/test_functionality.cpp b/test/legacy/test_functionality.cpp index 2b61c0ce..6aecf036 100644 --- a/test/legacy/test_functionality.cpp +++ b/test/legacy/test_functionality.cpp @@ -9,6 +9,7 @@ #include "checker/dd/applicationscheme/GateCostApplicationScheme.hpp" #include "checker/dd/simulation/StateType.hpp" #include "ir/QuantumComputation.hpp" +#include "qasm3/Importer.hpp" #include #include @@ -22,11 +23,17 @@ class FunctionalityTest : public testing::TestWithParam { qc::QuantumComputation qcAlternative; ec::Configuration config{}; - std::string testOriginal = "./circuits/test/test.real"; + std::string testOriginal = "./circuits/test/test.qasm"; std::string testAlternativeDir = "./circuits/test/"; void SetUp() override { - qcOriginal.import(testOriginal); + qcOriginal = qasm3::Importer::importf(testOriginal); + if (::testing::UnitTest::GetInstance() + ->current_test_info() + ->value_param() != nullptr) { + qcAlternative = qasm3::Importer::importf(testAlternativeDir + "test_" + + GetParam() + ".qasm"); + } config.execution.parallel = false; config.execution.runConstructionChecker = false; @@ -56,8 +63,6 @@ INSTANTIATE_TEST_SUITE_P( }); TEST_P(FunctionalityTest, Reference) { - qcAlternative.import(testAlternativeDir + "test_" + GetParam() + ".qasm"); - config.execution.runConstructionChecker = true; ec::EquivalenceCheckingManager ecm(qcOriginal, qcAlternative, config); @@ -67,8 +72,6 @@ TEST_P(FunctionalityTest, Reference) { } TEST_P(FunctionalityTest, Proportional) { - qcAlternative.import(testAlternativeDir + "test_" + GetParam() + ".qasm"); - config.execution.runAlternatingChecker = true; config.application.alternatingScheme = ec::ApplicationSchemeType::Proportional; @@ -80,8 +83,6 @@ TEST_P(FunctionalityTest, Proportional) { } TEST_P(FunctionalityTest, Lookahead) { - qcAlternative.import(testAlternativeDir + "test_" + GetParam() + ".qasm"); - config.execution.runAlternatingChecker = true; config.application.alternatingScheme = ec::ApplicationSchemeType::Lookahead; @@ -92,8 +93,6 @@ TEST_P(FunctionalityTest, Lookahead) { } TEST_P(FunctionalityTest, Naive) { - qcAlternative.import(testAlternativeDir + "test_" + GetParam() + ".qasm"); - config.execution.runAlternatingChecker = true; config.application.alternatingScheme = ec::ApplicationSchemeType::OneToOne; @@ -104,8 +103,6 @@ TEST_P(FunctionalityTest, Naive) { } TEST_P(FunctionalityTest, CompilationFlow) { - qcAlternative.import(testAlternativeDir + "test_" + GetParam() + ".qasm"); - config.execution.runAlternatingChecker = true; config.application.alternatingScheme = ec::ApplicationSchemeType::GateCost; config.application.costFunction = ec::legacyCostFunction; @@ -117,8 +114,6 @@ TEST_P(FunctionalityTest, CompilationFlow) { } TEST_P(FunctionalityTest, Simulation) { - qcAlternative.import(testAlternativeDir + "test_" + GetParam() + ".qasm"); - config.execution.runSimulationChecker = true; ec::EquivalenceCheckingManager ecm(qcOriginal, qcAlternative, config); @@ -128,8 +123,6 @@ TEST_P(FunctionalityTest, Simulation) { } TEST_P(FunctionalityTest, SimulationRandom1QBasis) { - qcAlternative.import(testAlternativeDir + "test_" + GetParam() + ".qasm"); - config.execution.runSimulationChecker = true; config.simulation.stateType = ec::StateType::Random1QBasis; @@ -140,8 +133,6 @@ TEST_P(FunctionalityTest, SimulationRandom1QBasis) { } TEST_P(FunctionalityTest, SimulationStabilizer) { - qcAlternative.import(testAlternativeDir + "test_" + GetParam() + ".qasm"); - config.execution.runSimulationChecker = true; config.simulation.stateType = ec::StateType::Stabilizer; @@ -152,8 +143,6 @@ TEST_P(FunctionalityTest, SimulationStabilizer) { } TEST_P(FunctionalityTest, SimulationParallel) { - qcAlternative.import(testAlternativeDir + "test_" + GetParam() + ".qasm"); - config.execution.runSimulationChecker = true; config.execution.parallel = true; config.execution.nthreads = std::thread::hardware_concurrency() + 1U; @@ -166,9 +155,10 @@ TEST_P(FunctionalityTest, SimulationParallel) { } TEST_F(FunctionalityTest, test2) { - testOriginal = "./circuits/test/test2.real"; - qcOriginal.import(testOriginal); - qcAlternative.import(testAlternativeDir + "test2_optimized.qasm"); + testOriginal = "./circuits/test/test2.qasm"; + qcOriginal = qasm3::Importer::importf(testOriginal); + qcAlternative = + qasm3::Importer::importf(testAlternativeDir + "test2_optimized.qasm"); config.execution.runConstructionChecker = true; diff --git a/test/legacy/test_journal.cpp b/test/legacy/test_journal.cpp index 9d772079..7bbaf654 100644 --- a/test/legacy/test_journal.cpp +++ b/test/legacy/test_journal.cpp @@ -8,6 +8,7 @@ #include "EquivalenceCriterion.hpp" #include "checker/dd/applicationscheme/ApplicationScheme.hpp" #include "ir/QuantumComputation.hpp" +#include "qasm3/Importer.hpp" #include #include @@ -161,12 +162,13 @@ TEST_P(JournalTestNonEQ, PowerOfSimulation) { config.functionality.checkPartialEquivalence = true; for (std::uint16_t i = 0U; i < tries; ++i) { - qcOriginal.import(testOriginalDir + std::get<0>(GetParam()) + ".real"); + qcOriginal = qasm3::Importer::importf(testOriginalDir + + std::get<0>(GetParam()) + ".qasm"); // generate non-eq circuit std::set removed{}; do { // NOLINT(cppcoreguidelines-avoid-do-while) - qcTranspiled.import(transpiledFile); + qcTranspiled = qasm3::Importer::importf(transpiledFile); removed.clear(); for (std::uint16_t j = 0U; j < gatesToRemove; ++j) { auto gateToRemove = rng() % qcTranspiled.getNops(); @@ -215,12 +217,13 @@ TEST_P(JournalTestNonEQ, PowerOfSimulationParallel) { config.functionality.checkPartialEquivalence = true; for (std::uint16_t i = 0; i < tries; ++i) { - qcOriginal.import(testOriginalDir + std::get<0>(GetParam()) + ".real"); + qcOriginal = qasm3::Importer::importf(testOriginalDir + + std::get<0>(GetParam()) + ".qasm"); // generate non-eq circuit std::set removed{}; do { // NOLINT(cppcoreguidelines-avoid-do-while) - qcTranspiled.import(transpiledFile); + qcTranspiled = qasm3::Importer::importf(transpiledFile); removed.clear(); for (std::uint16_t j = 0U; j < gatesToRemove; ++j) { auto gateToRemove = rng() % qcTranspiled.getNops(); @@ -282,8 +285,9 @@ class JournalTestEQ : public testing::TestWithParam { ss << testTranspiledDir << GetParam() << "_transpiled.qasm"; transpiledFile = ss.str(); - qcOriginal.import(testOriginalDir + GetParam() + ".real"); - qcTranspiled.import(transpiledFile); + qcOriginal = + qasm3::Importer::importf(testOriginalDir + GetParam() + ".qasm"); + qcTranspiled = qasm3::Importer::importf(transpiledFile); } }; diff --git a/test/legacy/test_simulation.cpp b/test/legacy/test_simulation.cpp index b0644786..3dc1ccc2 100644 --- a/test/legacy/test_simulation.cpp +++ b/test/legacy/test_simulation.cpp @@ -7,6 +7,7 @@ #include "EquivalenceCheckingManager.hpp" #include "checker/dd/simulation/StateType.hpp" #include "ir/QuantumComputation.hpp" +#include "qasm3/Importer.hpp" #include #include @@ -31,8 +32,9 @@ class SimulationTest : public ::testing::Test { }; TEST_F(SimulationTest, Consistency) { - qcOriginal.import("./circuits/test/test_original.real"); - qcAlternative.import("./circuits/test/test_erroneous.real"); + qcOriginal = qasm3::Importer::importf("./circuits/test/test_original.qasm"); + qcAlternative = + qasm3::Importer::importf("./circuits/test/test_erroneous.qasm"); ec::EquivalenceCheckingManager ecm(qcOriginal, qcAlternative, config); ecm.run(); @@ -45,8 +47,9 @@ TEST_F(SimulationTest, Consistency) { } TEST_F(SimulationTest, ClassicalStimuli) { - qcOriginal.import("./circuits/test/test_original.real"); - qcAlternative.import("./circuits/test/test_alternative.real"); + qcOriginal = qasm3::Importer::importf("./circuits/test/test_original.qasm"); + qcAlternative = + qasm3::Importer::importf("./circuits/test/test_alternative.qasm"); config.simulation.stateType = ec::StateType::ComputationalBasis; ec::EquivalenceCheckingManager ecm(qcOriginal, qcAlternative, config); @@ -54,7 +57,8 @@ TEST_F(SimulationTest, ClassicalStimuli) { std::cout << ecm.getResults() << "\n"; EXPECT_TRUE(ecm.getResults().consideredEquivalent()); - qcAlternative.import("./circuits/test/test_erroneous.real"); + qcAlternative = + qasm3::Importer::importf("./circuits/test/test_erroneous.qasm"); ec::EquivalenceCheckingManager ecm2(qcOriginal, qcAlternative, config); ecm2.run(); std::cout << ecm2.getResults() << "\n"; @@ -62,8 +66,9 @@ TEST_F(SimulationTest, ClassicalStimuli) { } TEST_F(SimulationTest, LocalStimuli) { - qcOriginal.import("./circuits/test/test_original.real"); - qcAlternative.import("./circuits/test/test_alternative.real"); + qcOriginal = qasm3::Importer::importf("./circuits/test/test_original.qasm"); + qcAlternative = + qasm3::Importer::importf("./circuits/test/test_alternative.qasm"); config.simulation.stateType = ec::StateType::Random1QBasis; ec::EquivalenceCheckingManager ecm(qcOriginal, qcAlternative, config); @@ -71,7 +76,8 @@ TEST_F(SimulationTest, LocalStimuli) { std::cout << ecm.getResults() << "\n"; EXPECT_TRUE(ecm.getResults().consideredEquivalent()); - qcAlternative.import("./circuits/test/test_erroneous.real"); + qcAlternative = + qasm3::Importer::importf("./circuits/test/test_erroneous.qasm"); ec::EquivalenceCheckingManager ecm2(qcOriginal, qcAlternative, config); ecm2.run(); std::cout << ecm2.getResults() << "\n"; @@ -79,8 +85,9 @@ TEST_F(SimulationTest, LocalStimuli) { } TEST_F(SimulationTest, GlobalStimuli) { - qcOriginal.import("./circuits/test/test_original.real"); - qcAlternative.import("./circuits/test/test_alternative.real"); + qcOriginal = qasm3::Importer::importf("./circuits/test/test_original.qasm"); + qcAlternative = + qasm3::Importer::importf("./circuits/test/test_alternative.qasm"); config.simulation.stateType = ec::StateType::Stabilizer; ec::EquivalenceCheckingManager ecm(qcOriginal, qcAlternative, config); @@ -88,7 +95,8 @@ TEST_F(SimulationTest, GlobalStimuli) { std::cout << ecm.getResults() << "\n"; EXPECT_TRUE(ecm.getResults().consideredEquivalent()); - qcAlternative.import("./circuits/test/test_erroneous.real"); + qcAlternative = + qasm3::Importer::importf("./circuits/test/test_erroneous.qasm"); ec::EquivalenceCheckingManager ecm2(qcOriginal, qcAlternative, config); ecm2.run(); std::cout << ecm2.getResults() << "\n"; @@ -97,8 +105,9 @@ TEST_F(SimulationTest, GlobalStimuli) { TEST_F(SimulationTest, ClassicalStimuliParallel) { config.execution.parallel = true; - qcOriginal.import("./circuits/test/test_original.real"); - qcAlternative.import("./circuits/test/test_alternative.real"); + qcOriginal = qasm3::Importer::importf("./circuits/test/test_original.qasm"); + qcAlternative = + qasm3::Importer::importf("./circuits/test/test_alternative.qasm"); config.simulation.stateType = ec::StateType::ComputationalBasis; ec::EquivalenceCheckingManager ecm(qcOriginal, qcAlternative, config); @@ -106,7 +115,8 @@ TEST_F(SimulationTest, ClassicalStimuliParallel) { std::cout << ecm.getResults() << "\n"; EXPECT_TRUE(ecm.getResults().consideredEquivalent()); - qcAlternative.import("./circuits/test/test_erroneous.real"); + qcAlternative = + qasm3::Importer::importf("./circuits/test/test_erroneous.qasm"); ec::EquivalenceCheckingManager ecm2(qcOriginal, qcAlternative, config); ecm2.run(); std::cout << ecm2.getResults() << "\n"; @@ -115,8 +125,9 @@ TEST_F(SimulationTest, ClassicalStimuliParallel) { TEST_F(SimulationTest, LocalStimuliParallel) { config.execution.parallel = true; - qcOriginal.import("./circuits/test/test_original.real"); - qcAlternative.import("./circuits/test/test_alternative.real"); + qcOriginal = qasm3::Importer::importf("./circuits/test/test_original.qasm"); + qcAlternative = + qasm3::Importer::importf("./circuits/test/test_alternative.qasm"); config.simulation.stateType = ec::StateType::Random1QBasis; ec::EquivalenceCheckingManager ecm(qcOriginal, qcAlternative, config); @@ -124,7 +135,8 @@ TEST_F(SimulationTest, LocalStimuliParallel) { std::cout << ecm.getResults() << "\n"; EXPECT_TRUE(ecm.getResults().consideredEquivalent()); - qcAlternative.import("./circuits/test/test_erroneous.real"); + qcAlternative = + qasm3::Importer::importf("./circuits/test/test_erroneous.qasm"); ec::EquivalenceCheckingManager ecm2(qcOriginal, qcAlternative, config); ecm2.run(); std::cout << ecm2.getResults() << "\n"; @@ -133,8 +145,9 @@ TEST_F(SimulationTest, LocalStimuliParallel) { TEST_F(SimulationTest, GlobalStimuliParallel) { config.execution.parallel = true; - qcOriginal.import("./circuits/test/test_original.real"); - qcAlternative.import("./circuits/test/test_alternative.real"); + qcOriginal = qasm3::Importer::importf("./circuits/test/test_original.qasm"); + qcAlternative = + qasm3::Importer::importf("./circuits/test/test_alternative.qasm"); config.simulation.stateType = ec::StateType::Stabilizer; ec::EquivalenceCheckingManager ecm(qcOriginal, qcAlternative, config); @@ -142,7 +155,8 @@ TEST_F(SimulationTest, GlobalStimuliParallel) { std::cout << ecm.getResults() << "\n"; EXPECT_TRUE(ecm.getResults().consideredEquivalent()); - qcAlternative.import("./circuits/test/test_erroneous.real"); + qcAlternative = + qasm3::Importer::importf("./circuits/test/test_erroneous.qasm"); ec::EquivalenceCheckingManager ecm2(qcOriginal, qcAlternative, config); ecm2.run(); std::cout << ecm2.getResults() << "\n"; diff --git a/test/python/test_compilation_flow_profiles.py b/test/python/test_compilation_flow_profiles.py index cb49547f..c5f694cc 100644 --- a/test/python/test_compilation_flow_profiles.py +++ b/test/python/test_compilation_flow_profiles.py @@ -12,9 +12,9 @@ import pytest -from mqt import qcec from mqt.qcec._compat.importlib import resources -from mqt.qcec.compilation_flow_profiles import generate_profile_name +from mqt.qcec._compat.optional import HAS_QISKIT +from mqt.qcec.compilation_flow_profiles import AncillaMode, generate_profile, generate_profile_name @pytest.fixture(params=[0, 1, 2, 3]) @@ -23,16 +23,16 @@ def optimization_level(request: Any) -> int: # noqa: ANN401 return cast("int", request.param) -@pytest.fixture(params=[qcec.AncillaMode.NO_ANCILLA, qcec.AncillaMode.RECURSION, qcec.AncillaMode.V_CHAIN]) -def ancilla_mode(request: Any) -> qcec.AncillaMode: # noqa: ANN401 +@pytest.fixture(params=[AncillaMode.NO_ANCILLA, AncillaMode.RECURSION, AncillaMode.V_CHAIN]) +def ancilla_mode(request: Any) -> AncillaMode: # noqa: ANN401 """Fixture for ancilla modes.""" - return cast("qcec.AncillaMode", request.param) + return cast("AncillaMode", request.param) -def test_ancilla_mode_conversion(ancilla_mode: qcec.AncillaMode) -> None: +def test_ancilla_mode_conversion(ancilla_mode: AncillaMode) -> None: """Test conversion and equality of ancilla modes.""" ancilla_str = str(ancilla_mode) - assert qcec.AncillaMode(ancilla_str) == ancilla_mode + assert AncillaMode(ancilla_str) == ancilla_mode assert ancilla_str == ancilla_mode assert ancilla_mode == ancilla_str @@ -41,13 +41,13 @@ def test_ancilla_mode_conversion(ancilla_mode: qcec.AncillaMode) -> None: os.environ.get("CHECK_PROFILES") is None, reason="This test is only executed if the CHECK_PROFILES environment variable is set.", ) -def test_generated_profiles_are_still_valid(optimization_level: int, ancilla_mode: qcec.AncillaMode) -> None: +def test_generated_profiles_are_still_valid(optimization_level: int, ancilla_mode: AncillaMode) -> None: """Test validity of generated profiles. The main intention of this check is to catch cases where an update in Qiskit changes the respective costs. """ # generate the profile - qcec.generate_profile(optimization_level=optimization_level, mode=ancilla_mode, filepath=Path()) + generate_profile(optimization_level=optimization_level, mode=ancilla_mode, filepath=Path()) # get path to the profile from the package resources profile_name = generate_profile_name(optimization_level=optimization_level, mode=ancilla_mode) @@ -82,3 +82,9 @@ def test_generated_profiles_are_still_valid(optimization_level: int, ancilla_mod f"The generated profile {profile_name} differs from the reference profile {ref} by {num_diffs} lines. " f"This might be due to a change in Qiskit. If this is the case, the reference profile should be updated." ) + + +def test_compilation_flow_profile_generation_fails_without_qiskit() -> None: + """Test that profile generation fails if Qiskit is not available.""" + with HAS_QISKIT.disable_locally(), pytest.raises(ImportError, match=r"The 'qiskit' library is required to .*"): + generate_profile() diff --git a/test/python/test_construction.py b/test/python/test_construction.py index 8d47806b..915cb680 100644 --- a/test/python/test_construction.py +++ b/test/python/test_construction.py @@ -2,36 +2,26 @@ from __future__ import annotations -from pathlib import Path - import pytest -from qiskit import QuantumCircuit, qasm2 from mqt import qcec +from mqt.core.ir import QuantumComputation @pytest.fixture -def example_circuit() -> QuantumCircuit: +def example_circuit() -> QuantumComputation: """Fixture for a simple circuit.""" - qc = QuantumCircuit(1) + qc = QuantumComputation(1) qc.h(0) return qc -def test_default_constructor_with_qiskit(example_circuit: QuantumCircuit) -> None: +def test_default_constructor_with_quantum_computation(example_circuit: QuantumComputation) -> None: """Test constructing an instance from two qiskit circuits with all default arguments.""" qcec.EquivalenceCheckingManager(circ1=example_circuit, circ2=example_circuit) -def test_constructor_with_configuration(example_circuit: QuantumCircuit) -> None: +def test_constructor_with_configuration(example_circuit: QuantumComputation) -> None: """Test constructing an instance from circuits and a configuration object.""" config = qcec.Configuration() qcec.EquivalenceCheckingManager(circ1=example_circuit, circ2=example_circuit, config=config) - - -def test_default_constructor_with_file(example_circuit: QuantumCircuit) -> None: - """Test constructing an instance from two circuit files with all default arguments.""" - filename = "test.qasm" - qasm2.dump(example_circuit, Path(filename)) - qcec.EquivalenceCheckingManager(circ1=filename, circ2=filename) - Path(filename).unlink() diff --git a/test/test_dynamic_circuits.cpp b/test/test_dynamic_circuits.cpp index 423ab577..389d50f1 100644 --- a/test/test_dynamic_circuits.cpp +++ b/test/test_dynamic_circuits.cpp @@ -235,8 +235,8 @@ class DynamicCircuitTestBV : public testing::TestWithParam { bv = qc::createBernsteinVazirani(bitwidth); const auto expected = bv.getName().substr(3); - dbv = - qc::createIterativeBernsteinVazirani(qc::BitString(expected), bitwidth); + dbv = qc::createIterativeBernsteinVazirani(qc::BVBitString(expected), + bitwidth); std::cout << "Hidden bitstring: " << expected << " (" << bitwidth << " qubits)\n"; @@ -312,7 +312,7 @@ TEST_P(DynamicCircuitTestQFT, UnitaryEquivalence) { } TEST(GeneralDynamicCircuitTest, DynamicCircuit) { - constexpr auto s = qc::BitString(15U); + constexpr auto s = qc::BVBitString(15U); const auto bv = qc::createBernsteinVazirani(s); const auto dbv = qc::createIterativeBernsteinVazirani(s); diff --git a/test/test_partial_equivalence.cpp b/test/test_partial_equivalence.cpp index c330e5aa..d36ba985 100644 --- a/test/test_partial_equivalence.cpp +++ b/test/test_partial_equivalence.cpp @@ -11,6 +11,7 @@ #include "ir/operations/Control.hpp" #include "ir/operations/OpType.hpp" #include "ir/operations/StandardOperation.hpp" +#include "qasm3/Importer.hpp" #include #include @@ -713,11 +714,11 @@ TEST_F(PartialEquivalenceTest, ConstructionCheckerDifferentNumberOfQubits) { } TEST_F(PartialEquivalenceTest, MQTBenchGrover3Qubits) { - const qc::QuantumComputation c1{ + const qc::QuantumComputation c1 = qasm3::Importer::importf( "./circuits/partialEquivalenceTest/" - "grover-noancilla_nativegates_ibm_qiskit_opt0_3.qasm"}; - const qc::QuantumComputation c2{ - "./circuits/partialEquivalenceTest/grover-noancilla_indep_qiskit_3.qasm"}; + "grover-noancilla_nativegates_ibm_qiskit_opt0_3.qasm"); + const qc::QuantumComputation c2 = qasm3::Importer::importf( + "./circuits/partialEquivalenceTest/grover-noancilla_indep_qiskit_3.qasm"); c1.print(std::cout); c2.print(std::cout); @@ -740,12 +741,12 @@ TEST_F(PartialEquivalenceTest, MQTBenchGrover3Qubits) { } TEST_F(PartialEquivalenceTest, MQTBenchGrover7Qubits) { - const qc::QuantumComputation c1{ + const qc::QuantumComputation c1 = qasm3::Importer::importf( "./circuits/partialEquivalenceTest/" - "grover-noancilla_nativegates_ibm_qiskit_opt0_7.qasm"}; - const qc::QuantumComputation c2{ + "grover-noancilla_nativegates_ibm_qiskit_opt0_7.qasm"); + const qc::QuantumComputation c2 = qasm3::Importer::importf( "./circuits/partialEquivalenceTest/" - "grover-noancilla_nativegates_ibm_qiskit_opt1_7.qasm"}; + "grover-noancilla_nativegates_ibm_qiskit_opt1_7.qasm"); // 7 measured qubits and 7 data qubits, full equivalence // construction checker @@ -763,11 +764,11 @@ TEST_F(PartialEquivalenceTest, MQTBenchGrover7Qubits) { } TEST_F(PartialEquivalenceTest, SliQECGrover22Qubits) { - const qc::QuantumComputation c1{ - "./circuits/partialEquivalenceTest/Grover_1.qasm"}; // 11 qubits, 11 data + const qc::QuantumComputation c1 = qasm3::Importer::importf( + "./circuits/partialEquivalenceTest/Grover_1.qasm"); // 11 qubits, 11 data // qubits - qc::QuantumComputation c2{ - "./circuits/partialEquivalenceTest/Grover_2.qasm"}; // 12 qubits, 11 data + qc::QuantumComputation c2 = qasm3::Importer::importf( + "./circuits/partialEquivalenceTest/Grover_2.qasm"); // 12 qubits, 11 data // qubits // 11 measured qubits and 11 data qubits @@ -785,10 +786,10 @@ TEST_F(PartialEquivalenceTest, SliQECAdd19Qubits) { // full equivalence, 19 qubits // but this test uses algorithm for partial equivalence, not the "zero // ancillae" version - qc::QuantumComputation c1{ - "./circuits/partialEquivalenceTest/add6_196_1.qasm"}; - qc::QuantumComputation c2{ - "./circuits/partialEquivalenceTest/add6_196_2.qasm"}; + qc::QuantumComputation c1 = qasm3::Importer::importf( + "./circuits/partialEquivalenceTest/add6_196_1.qasm"); + qc::QuantumComputation c2 = qasm3::Importer::importf( + "./circuits/partialEquivalenceTest/add6_196_2.qasm"); // just for benchmarking reasons, we only measure 8 qubits c1.setLogicalQubitsAncillary(8, 18); @@ -829,30 +830,30 @@ TEST_F(PartialEquivalenceTest, AlternatingCheckerSliQEC19Qubits) { config.execution.runAlternatingChecker = true; // full equivalence, 10 qubits - const qc::QuantumComputation c1{ - "./circuits/partialEquivalenceTest/entanglement_1.qasm"}; - const qc::QuantumComputation c2{ - "./circuits/partialEquivalenceTest/entanglement_2.qasm"}; + const qc::QuantumComputation c1 = qasm3::Importer::importf( + "./circuits/partialEquivalenceTest/entanglement_1.qasm"); + const qc::QuantumComputation c2 = qasm3::Importer::importf( + "./circuits/partialEquivalenceTest/entanglement_2.qasm"); ec::EquivalenceCheckingManager ecm(c1, c2, config); ecm.run(); EXPECT_EQ(ecm.equivalence(), ec::EquivalenceCriterion::Equivalent); // full equivalence, 19 qubits - const qc::QuantumComputation c3{ - "./circuits/partialEquivalenceTest/add6_196_1.qasm"}; - const qc::QuantumComputation c4{ - "./circuits/partialEquivalenceTest/add6_196_2.qasm"}; + const qc::QuantumComputation c3 = qasm3::Importer::importf( + "./circuits/partialEquivalenceTest/add6_196_1.qasm"); + const qc::QuantumComputation c4 = qasm3::Importer::importf( + "./circuits/partialEquivalenceTest/add6_196_2.qasm"); ec::EquivalenceCheckingManager ecm2(c1, c2, config); ecm2.run(); EXPECT_EQ(ecm2.equivalence(), ec::EquivalenceCriterion::Equivalent); // full equivalence, 10 qubits - const qc::QuantumComputation c5{ - "./circuits/partialEquivalenceTest/bv_1.qasm"}; - const qc::QuantumComputation c6{ - "./circuits/partialEquivalenceTest/bv_2.qasm"}; + const qc::QuantumComputation c5 = + qasm3::Importer::importf("./circuits/partialEquivalenceTest/bv_1.qasm"); + const qc::QuantumComputation c6 = + qasm3::Importer::importf("./circuits/partialEquivalenceTest/bv_2.qasm"); // calls zeroAncillaePartialEquivalenceCheck ec::EquivalenceCheckingManager ecm3(c1, c2, config); @@ -863,10 +864,10 @@ TEST_F(PartialEquivalenceTest, AlternatingCheckerSliQEC19Qubits) { TEST_F(PartialEquivalenceTest, AlternatingCheckerSliQECRandomCircuit) { config.execution.runAlternatingChecker = true; // full equivalence, 10 qubits - const qc::QuantumComputation c1{ - "./circuits/partialEquivalenceTest/random_1.qasm"}; - const qc::QuantumComputation c2{ - "./circuits/partialEquivalenceTest/random_2.qasm"}; + const qc::QuantumComputation c1 = qasm3::Importer::importf( + "./circuits/partialEquivalenceTest/random_1.qasm"); + const qc::QuantumComputation c2 = qasm3::Importer::importf( + "./circuits/partialEquivalenceTest/random_2.qasm"); ec::EquivalenceCheckingManager ecm(c1, c2, config); ecm.run(); @@ -876,11 +877,11 @@ TEST_F(PartialEquivalenceTest, AlternatingCheckerSliQECRandomCircuit) { TEST_F(PartialEquivalenceTest, ConstructionCheckerSliQECPeriodFinding8Qubits) { config.execution.runConstructionChecker = true; // 8 qubits, 3 data qubits - qc::QuantumComputation c1{ - "./circuits/partialEquivalenceTest/period_finding_1.qasm"}; + qc::QuantumComputation c1 = qasm3::Importer::importf( + "./circuits/partialEquivalenceTest/period_finding_1.qasm"); // 8 qubits, 3 data qubits - qc::QuantumComputation c2{ - "./circuits/partialEquivalenceTest/period_finding_2.qasm"}; + qc::QuantumComputation c2 = qasm3::Importer::importf( + "./circuits/partialEquivalenceTest/period_finding_2.qasm"); // 3 measured qubits and 3 data qubits diff --git a/test/test_simple_circuit_identities.cpp b/test/test_simple_circuit_identities.cpp index 553e13cc..260b8997 100644 --- a/test/test_simple_circuit_identities.cpp +++ b/test/test_simple_circuit_identities.cpp @@ -4,11 +4,11 @@ // #include "Configuration.hpp" -#include "Definitions.hpp" #include "EquivalenceCheckingManager.hpp" #include "checker/dd/applicationscheme/ApplicationScheme.hpp" #include "checker/dd/applicationscheme/GateCostApplicationScheme.hpp" #include "ir/QuantumComputation.hpp" +#include "qasm3/Importer.hpp" #include #include @@ -29,10 +29,8 @@ class SimpleCircuitIdentitiesTest void SetUp() override { const auto [circ1, circ2] = GetParam().second; - std::stringstream ss1{circ1}; - qcOriginal.import(ss1, qc::Format::OpenQASM2); - std::stringstream ss2{circ2}; - qcAlternative.import(ss2, qc::Format::OpenQASM2); + qcOriginal = qasm3::Importer::imports(circ1); + qcAlternative = qasm3::Importer::imports(circ2); config.optimizations.reconstructSWAPs = false; config.optimizations.fuseSingleQubitGates = false; diff --git a/test/test_zx.cpp b/test/test_zx.cpp index 60937782..a7344682 100644 --- a/test/test_zx.cpp +++ b/test/test_zx.cpp @@ -10,6 +10,7 @@ #include "ir/Permutation.hpp" #include "ir/QuantumComputation.hpp" #include "ir/operations/Control.hpp" +#include "qasm3/Importer.hpp" #include "zx/ZXDefinitions.hpp" #include @@ -27,7 +28,7 @@ class ZXTest : public testing::TestWithParam { std::unique_ptr ecm; - std::string testOriginal = "./circuits/test/test.real"; + std::string testOriginal = "./circuits/test/test.qasm"; std::string testAlternativeDir = "./circuits/test/"; void SetUp() override { @@ -55,8 +56,9 @@ INSTANTIATE_TEST_SUITE_P( }); TEST_P(ZXTest, TestCircuits) { - qcOriginal.import(testOriginal); - qcAlternative.import(testAlternativeDir + "test_" + GetParam() + ".qasm"); + qcOriginal = qasm3::Importer::importf(testOriginal); + qcAlternative = qasm3::Importer::importf(testAlternativeDir + "test_" + + GetParam() + ".qasm"); ecm = std::make_unique(qcOriginal, qcAlternative, config); @@ -67,13 +69,12 @@ TEST_P(ZXTest, TestCircuits) { } TEST_F(ZXTest, NonEquivalent) { - auto ss = std::stringstream("OPENQASM 2.0;\ninclude \"qelib1.inc\";\nqreg " - "q[2];\ncx q[0], q[1];\n"); - qcOriginal.import(ss, qc::Format::OpenQASM2); - auto ss2 = - std::stringstream("OPENQASM 2.0;\ninclude \"qelib1.inc\";\nqreg q[2];\nh " - "q[0]; cx q[1], q[0]; h q[0]; h q[1];\n"); - qcAlternative.import(ss2, qc::Format::OpenQASM2); + qcOriginal = + qasm3::Importer::imports("OPENQASM 2.0;\ninclude \"qelib1.inc\";\nqreg " + "q[2];\ncx q[0], q[1];\n"); + qcAlternative = qasm3::Importer::imports( + "OPENQASM 2.0;\ninclude \"qelib1.inc\";\nqreg q[2];\nh " + "q[0]; cx q[1], q[0]; h q[0]; h q[1];\n"); ecm = std::make_unique(qcOriginal, qcAlternative, config); @@ -270,8 +271,10 @@ class ZXTestCompFlow : public testing::TestWithParam { config.execution.runSimulationChecker = false; config.execution.runZXChecker = true; - qcOriginal.import(testOriginalDir + GetParam() + ".real"); - qcTranspiled.import(testTranspiledDir + GetParam() + "_transpiled.qasm"); + qcOriginal = + qasm3::Importer::importf(testOriginalDir + GetParam() + ".qasm"); + qcTranspiled = qasm3::Importer::importf(testTranspiledDir + GetParam() + + "_transpiled.qasm"); } }; diff --git a/uv.lock b/uv.lock index e9030240..4b1ae001 100644 --- a/uv.lock +++ b/uv.lock @@ -1,7 +1,9 @@ version = 1 +revision = 1 requires-python = ">=3.9" resolution-markers = [ - "python_full_version >= '3.12'", + "python_full_version >= '3.13'", + "python_full_version == '3.12.*'", "python_full_version == '3.11.*'", "python_full_version == '3.10.*'", "python_full_version < '3.10'", @@ -24,7 +26,8 @@ name = "alabaster" version = "1.0.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.12'", + "python_full_version >= '3.13'", + "python_full_version == '3.12.*'", "python_full_version == '3.11.*'", "python_full_version == '3.10.*'", ] @@ -83,23 +86,24 @@ wheels = [ [[package]] name = "babel" -version = "2.16.0" +version = "2.17.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2a/74/f1bc80f23eeba13393b7222b11d95ca3af2c1e28edca18af487137eefed9/babel-2.16.0.tar.gz", hash = "sha256:d1f3554ca26605fe173f3de0c65f750f5a42f924499bf134de6423582298e316", size = 9348104 } +sdist = { url = "https://files.pythonhosted.org/packages/7d/6b/d52e42361e1aa00709585ecc30b3f9684b3ab62530771402248b1b1d6240/babel-2.17.0.tar.gz", hash = "sha256:0c54cffb19f690cdcc52a3b50bcbf71e07a808d1c80d549f2459b9d2cf0afb9d", size = 9951852 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ed/20/bc79bc575ba2e2a7f70e8a1155618bb1301eaa5132a8271373a6903f73f8/babel-2.16.0-py3-none-any.whl", hash = "sha256:368b5b98b37c06b7daf6696391c3240c938b37767d4584413e8438c5c435fa8b", size = 9587599 }, + { url = "https://files.pythonhosted.org/packages/b7/b8/3fe70c75fe32afc4bb507f75563d39bc5642255d1d94f1f23604725780bf/babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2", size = 10182537 }, ] [[package]] name = "beautifulsoup4" -version = "4.12.3" +version = "4.13.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "soupsieve" }, + { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b3/ca/824b1195773ce6166d388573fc106ce56d4a805bd7427b624e063596ec58/beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051", size = 581181 } +sdist = { url = "https://files.pythonhosted.org/packages/f0/3c/adaf39ce1fb4afdd21b611e3d530b183bb7759c9b673d60db0e347fd4439/beautifulsoup4-4.13.3.tar.gz", hash = "sha256:1bd32405dacc920b42b83ba01644747ed77456a65760e285fbc47633ceddaf8b", size = 619516 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b1/fe/e8c672695b37eecc5cbf43e1d0638d88d66ba3a44c4d321c796f4e59167f/beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed", size = 147925 }, + { url = "https://files.pythonhosted.org/packages/f9/49/6abb616eb3cbab6a7cca303dc02fdf3836de2e0b834bf966a7f5271a34d8/beautifulsoup4-4.13.3-py3-none-any.whl", hash = "sha256:99045d7d3f08f91f0d656bc9b7efbae189426cd913d830294a15eefa0ea4df16", size = 186015 }, ] [[package]] @@ -121,11 +125,11 @@ css = [ [[package]] name = "certifi" -version = "2024.12.14" +version = "2025.1.31" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/0f/bd/1d41ee578ce09523c81a15426705dd20969f5abf006d1afe8aeff0dd776a/certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db", size = 166010 } +sdist = { url = "https://files.pythonhosted.org/packages/1c/ab/c9f1e32b7b1bf505bf26f0ef697775960db7932abeb7b516de930ba2705f/certifi-2025.1.31.tar.gz", hash = "sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651", size = 167577 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a5/32/8f6669fc4798494966bf446c8c4a162e0b5d893dff088afddf76414f70e1/certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56", size = 164927 }, + { url = "https://files.pythonhosted.org/packages/38/fc/bce832fd4fd99766c04d1ee0eead6b0ec6486fb100ae5e74c1d91292b982/certifi-2025.1.31-py3-none-any.whl", hash = "sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe", size = 166393 }, ] [[package]] @@ -375,12 +379,13 @@ name = "contourpy" version = "1.3.1" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.12'", + "python_full_version >= '3.13'", + "python_full_version == '3.12.*'", "python_full_version == '3.11.*'", "python_full_version == '3.10.*'", ] dependencies = [ - { name = "numpy", version = "2.2.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "numpy", version = "2.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/25/c2/fc7193cc5383637ff390a712e88e4ded0452c9fbcf84abe3de5ea3df1866/contourpy-1.3.1.tar.gz", hash = "sha256:dfd97abd83335045a913e3bcc4a09c0ceadbe66580cf573fe961f4a825efa699", size = 13465753 } wheels = [ @@ -441,71 +446,72 @@ wheels = [ [[package]] name = "coverage" -version = "7.6.10" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/84/ba/ac14d281f80aab516275012e8875991bb06203957aa1e19950139238d658/coverage-7.6.10.tar.gz", hash = "sha256:7fb105327c8f8f0682e29843e2ff96af9dcbe5bab8eeb4b398c6a33a16d80a23", size = 803868 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c5/12/2a2a923edf4ddabdffed7ad6da50d96a5c126dae7b80a33df7310e329a1e/coverage-7.6.10-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5c912978f7fbf47ef99cec50c4401340436d200d41d714c7a4766f377c5b7b78", size = 207982 }, - { url = "https://files.pythonhosted.org/packages/ca/49/6985dbca9c7be3f3cb62a2e6e492a0c88b65bf40579e16c71ae9c33c6b23/coverage-7.6.10-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a01ec4af7dfeb96ff0078ad9a48810bb0cc8abcb0115180c6013a6b26237626c", size = 208414 }, - { url = "https://files.pythonhosted.org/packages/35/93/287e8f1d1ed2646f4e0b2605d14616c9a8a2697d0d1b453815eb5c6cebdb/coverage-7.6.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3b204c11e2b2d883946fe1d97f89403aa1811df28ce0447439178cc7463448a", size = 236860 }, - { url = "https://files.pythonhosted.org/packages/de/e1/cfdb5627a03567a10031acc629b75d45a4ca1616e54f7133ca1fa366050a/coverage-7.6.10-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:32ee6d8491fcfc82652a37109f69dee9a830e9379166cb73c16d8dc5c2915165", size = 234758 }, - { url = "https://files.pythonhosted.org/packages/6d/85/fc0de2bcda3f97c2ee9fe8568f7d48f7279e91068958e5b2cc19e0e5f600/coverage-7.6.10-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675cefc4c06e3b4c876b85bfb7c59c5e2218167bbd4da5075cbe3b5790a28988", size = 235920 }, - { url = "https://files.pythonhosted.org/packages/79/73/ef4ea0105531506a6f4cf4ba571a214b14a884630b567ed65b3d9c1975e1/coverage-7.6.10-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f4f620668dbc6f5e909a0946a877310fb3d57aea8198bde792aae369ee1c23b5", size = 234986 }, - { url = "https://files.pythonhosted.org/packages/c6/4d/75afcfe4432e2ad0405c6f27adeb109ff8976c5e636af8604f94f29fa3fc/coverage-7.6.10-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:4eea95ef275de7abaef630c9b2c002ffbc01918b726a39f5a4353916ec72d2f3", size = 233446 }, - { url = "https://files.pythonhosted.org/packages/86/5b/efee56a89c16171288cafff022e8af44f8f94075c2d8da563c3935212871/coverage-7.6.10-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e2f0280519e42b0a17550072861e0bc8a80a0870de260f9796157d3fca2733c5", size = 234566 }, - { url = "https://files.pythonhosted.org/packages/f2/db/67770cceb4a64d3198bf2aa49946f411b85ec6b0a9b489e61c8467a4253b/coverage-7.6.10-cp310-cp310-win32.whl", hash = "sha256:bc67deb76bc3717f22e765ab3e07ee9c7a5e26b9019ca19a3b063d9f4b874244", size = 210675 }, - { url = "https://files.pythonhosted.org/packages/8d/27/e8bfc43f5345ec2c27bc8a1fa77cdc5ce9dcf954445e11f14bb70b889d14/coverage-7.6.10-cp310-cp310-win_amd64.whl", hash = "sha256:0f460286cb94036455e703c66988851d970fdfd8acc2a1122ab7f4f904e4029e", size = 211518 }, - { url = "https://files.pythonhosted.org/packages/85/d2/5e175fcf6766cf7501a8541d81778fd2f52f4870100e791f5327fd23270b/coverage-7.6.10-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ea3c8f04b3e4af80e17bab607c386a830ffc2fb88a5484e1df756478cf70d1d3", size = 208088 }, - { url = "https://files.pythonhosted.org/packages/4b/6f/06db4dc8fca33c13b673986e20e466fd936235a6ec1f0045c3853ac1b593/coverage-7.6.10-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:507a20fc863cae1d5720797761b42d2d87a04b3e5aeb682ef3b7332e90598f43", size = 208536 }, - { url = "https://files.pythonhosted.org/packages/0d/62/c6a0cf80318c1c1af376d52df444da3608eafc913b82c84a4600d8349472/coverage-7.6.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d37a84878285b903c0fe21ac8794c6dab58150e9359f1aaebbeddd6412d53132", size = 240474 }, - { url = "https://files.pythonhosted.org/packages/a3/59/750adafc2e57786d2e8739a46b680d4fb0fbc2d57fbcb161290a9f1ecf23/coverage-7.6.10-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a534738b47b0de1995f85f582d983d94031dffb48ab86c95bdf88dc62212142f", size = 237880 }, - { url = "https://files.pythonhosted.org/packages/2c/f8/ef009b3b98e9f7033c19deb40d629354aab1d8b2d7f9cfec284dbedf5096/coverage-7.6.10-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d7a2bf79378d8fb8afaa994f91bfd8215134f8631d27eba3e0e2c13546ce994", size = 239750 }, - { url = "https://files.pythonhosted.org/packages/a6/e2/6622f3b70f5f5b59f705e680dae6db64421af05a5d1e389afd24dae62e5b/coverage-7.6.10-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6713ba4b4ebc330f3def51df1d5d38fad60b66720948112f114968feb52d3f99", size = 238642 }, - { url = "https://files.pythonhosted.org/packages/2d/10/57ac3f191a3c95c67844099514ff44e6e19b2915cd1c22269fb27f9b17b6/coverage-7.6.10-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ab32947f481f7e8c763fa2c92fd9f44eeb143e7610c4ca9ecd6a36adab4081bd", size = 237266 }, - { url = "https://files.pythonhosted.org/packages/ee/2d/7016f4ad9d553cabcb7333ed78ff9d27248ec4eba8dd21fa488254dff894/coverage-7.6.10-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7bbd8c8f1b115b892e34ba66a097b915d3871db7ce0e6b9901f462ff3a975377", size = 238045 }, - { url = "https://files.pythonhosted.org/packages/a7/fe/45af5c82389a71e0cae4546413266d2195c3744849669b0bab4b5f2c75da/coverage-7.6.10-cp311-cp311-win32.whl", hash = "sha256:299e91b274c5c9cdb64cbdf1b3e4a8fe538a7a86acdd08fae52301b28ba297f8", size = 210647 }, - { url = "https://files.pythonhosted.org/packages/db/11/3f8e803a43b79bc534c6a506674da9d614e990e37118b4506faf70d46ed6/coverage-7.6.10-cp311-cp311-win_amd64.whl", hash = "sha256:489a01f94aa581dbd961f306e37d75d4ba16104bbfa2b0edb21d29b73be83609", size = 211508 }, - { url = "https://files.pythonhosted.org/packages/86/77/19d09ea06f92fdf0487499283b1b7af06bc422ea94534c8fe3a4cd023641/coverage-7.6.10-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:27c6e64726b307782fa5cbe531e7647aee385a29b2107cd87ba7c0105a5d3853", size = 208281 }, - { url = "https://files.pythonhosted.org/packages/b6/67/5479b9f2f99fcfb49c0d5cf61912a5255ef80b6e80a3cddba39c38146cf4/coverage-7.6.10-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c56e097019e72c373bae32d946ecf9858fda841e48d82df7e81c63ac25554078", size = 208514 }, - { url = "https://files.pythonhosted.org/packages/15/d1/febf59030ce1c83b7331c3546d7317e5120c5966471727aa7ac157729c4b/coverage-7.6.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7827a5bc7bdb197b9e066cdf650b2887597ad124dd99777332776f7b7c7d0d0", size = 241537 }, - { url = "https://files.pythonhosted.org/packages/4b/7e/5ac4c90192130e7cf8b63153fe620c8bfd9068f89a6d9b5f26f1550f7a26/coverage-7.6.10-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:204a8238afe787323a8b47d8be4df89772d5c1e4651b9ffa808552bdf20e1d50", size = 238572 }, - { url = "https://files.pythonhosted.org/packages/dc/03/0334a79b26ecf59958f2fe9dd1f5ab3e2f88db876f5071933de39af09647/coverage-7.6.10-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e67926f51821b8e9deb6426ff3164870976fe414d033ad90ea75e7ed0c2e5022", size = 240639 }, - { url = "https://files.pythonhosted.org/packages/d7/45/8a707f23c202208d7b286d78ad6233f50dcf929319b664b6cc18a03c1aae/coverage-7.6.10-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e78b270eadb5702938c3dbe9367f878249b5ef9a2fcc5360ac7bff694310d17b", size = 240072 }, - { url = "https://files.pythonhosted.org/packages/66/02/603ce0ac2d02bc7b393279ef618940b4a0535b0868ee791140bda9ecfa40/coverage-7.6.10-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:714f942b9c15c3a7a5fe6876ce30af831c2ad4ce902410b7466b662358c852c0", size = 238386 }, - { url = "https://files.pythonhosted.org/packages/04/62/4e6887e9be060f5d18f1dd58c2838b2d9646faf353232dec4e2d4b1c8644/coverage-7.6.10-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:abb02e2f5a3187b2ac4cd46b8ced85a0858230b577ccb2c62c81482ca7d18852", size = 240054 }, - { url = "https://files.pythonhosted.org/packages/5c/74/83ae4151c170d8bd071924f212add22a0e62a7fe2b149edf016aeecad17c/coverage-7.6.10-cp312-cp312-win32.whl", hash = "sha256:55b201b97286cf61f5e76063f9e2a1d8d2972fc2fcfd2c1272530172fd28c359", size = 210904 }, - { url = "https://files.pythonhosted.org/packages/c3/54/de0893186a221478f5880283119fc40483bc460b27c4c71d1b8bba3474b9/coverage-7.6.10-cp312-cp312-win_amd64.whl", hash = "sha256:e4ae5ac5e0d1e4edfc9b4b57b4cbecd5bc266a6915c500f358817a8496739247", size = 211692 }, - { url = "https://files.pythonhosted.org/packages/25/6d/31883d78865529257bf847df5789e2ae80e99de8a460c3453dbfbe0db069/coverage-7.6.10-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:05fca8ba6a87aabdd2d30d0b6c838b50510b56cdcfc604d40760dae7153b73d9", size = 208308 }, - { url = "https://files.pythonhosted.org/packages/70/22/3f2b129cc08de00c83b0ad6252e034320946abfc3e4235c009e57cfeee05/coverage-7.6.10-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9e80eba8801c386f72e0712a0453431259c45c3249f0009aff537a517b52942b", size = 208565 }, - { url = "https://files.pythonhosted.org/packages/97/0a/d89bc2d1cc61d3a8dfe9e9d75217b2be85f6c73ebf1b9e3c2f4e797f4531/coverage-7.6.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a372c89c939d57abe09e08c0578c1d212e7a678135d53aa16eec4430adc5e690", size = 241083 }, - { url = "https://files.pythonhosted.org/packages/4c/81/6d64b88a00c7a7aaed3a657b8eaa0931f37a6395fcef61e53ff742b49c97/coverage-7.6.10-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ec22b5e7fe7a0fa8509181c4aac1db48f3dd4d3a566131b313d1efc102892c18", size = 238235 }, - { url = "https://files.pythonhosted.org/packages/9a/0b/7797d4193f5adb4b837207ed87fecf5fc38f7cc612b369a8e8e12d9fa114/coverage-7.6.10-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26bcf5c4df41cad1b19c84af71c22cbc9ea9a547fc973f1f2cc9a290002c8b3c", size = 240220 }, - { url = "https://files.pythonhosted.org/packages/65/4d/6f83ca1bddcf8e51bf8ff71572f39a1c73c34cf50e752a952c34f24d0a60/coverage-7.6.10-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4e4630c26b6084c9b3cb53b15bd488f30ceb50b73c35c5ad7871b869cb7365fd", size = 239847 }, - { url = "https://files.pythonhosted.org/packages/30/9d/2470df6aa146aff4c65fee0f87f58d2164a67533c771c9cc12ffcdb865d5/coverage-7.6.10-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2396e8116db77789f819d2bc8a7e200232b7a282c66e0ae2d2cd84581a89757e", size = 237922 }, - { url = "https://files.pythonhosted.org/packages/08/dd/723fef5d901e6a89f2507094db66c091449c8ba03272861eaefa773ad95c/coverage-7.6.10-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:79109c70cc0882e4d2d002fe69a24aa504dec0cc17169b3c7f41a1d341a73694", size = 239783 }, - { url = "https://files.pythonhosted.org/packages/3d/f7/64d3298b2baf261cb35466000628706ce20a82d42faf9b771af447cd2b76/coverage-7.6.10-cp313-cp313-win32.whl", hash = "sha256:9e1747bab246d6ff2c4f28b4d186b205adced9f7bd9dc362051cc37c4a0c7bd6", size = 210965 }, - { url = "https://files.pythonhosted.org/packages/d5/58/ec43499a7fc681212fe7742fe90b2bc361cdb72e3181ace1604247a5b24d/coverage-7.6.10-cp313-cp313-win_amd64.whl", hash = "sha256:254f1a3b1eef5f7ed23ef265eaa89c65c8c5b6b257327c149db1ca9d4a35f25e", size = 211719 }, - { url = "https://files.pythonhosted.org/packages/ab/c9/f2857a135bcff4330c1e90e7d03446b036b2363d4ad37eb5e3a47bbac8a6/coverage-7.6.10-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2ccf240eb719789cedbb9fd1338055de2761088202a9a0b73032857e53f612fe", size = 209050 }, - { url = "https://files.pythonhosted.org/packages/aa/b3/f840e5bd777d8433caa9e4a1eb20503495709f697341ac1a8ee6a3c906ad/coverage-7.6.10-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:0c807ca74d5a5e64427c8805de15b9ca140bba13572d6d74e262f46f50b13273", size = 209321 }, - { url = "https://files.pythonhosted.org/packages/85/7d/125a5362180fcc1c03d91850fc020f3831d5cda09319522bcfa6b2b70be7/coverage-7.6.10-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2bcfa46d7709b5a7ffe089075799b902020b62e7ee56ebaed2f4bdac04c508d8", size = 252039 }, - { url = "https://files.pythonhosted.org/packages/a9/9c/4358bf3c74baf1f9bddd2baf3756b54c07f2cfd2535f0a47f1e7757e54b3/coverage-7.6.10-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4e0de1e902669dccbf80b0415fb6b43d27edca2fbd48c74da378923b05316098", size = 247758 }, - { url = "https://files.pythonhosted.org/packages/cf/c7/de3eb6fc5263b26fab5cda3de7a0f80e317597a4bad4781859f72885f300/coverage-7.6.10-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f7b444c42bbc533aaae6b5a2166fd1a797cdb5eb58ee51a92bee1eb94a1e1cb", size = 250119 }, - { url = "https://files.pythonhosted.org/packages/3e/e6/43de91f8ba2ec9140c6a4af1102141712949903dc732cf739167cfa7a3bc/coverage-7.6.10-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b330368cb99ef72fcd2dc3ed260adf67b31499584dc8a20225e85bfe6f6cfed0", size = 249597 }, - { url = "https://files.pythonhosted.org/packages/08/40/61158b5499aa2adf9e37bc6d0117e8f6788625b283d51e7e0c53cf340530/coverage-7.6.10-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:9a7cfb50515f87f7ed30bc882f68812fd98bc2852957df69f3003d22a2aa0abf", size = 247473 }, - { url = "https://files.pythonhosted.org/packages/50/69/b3f2416725621e9f112e74e8470793d5b5995f146f596f133678a633b77e/coverage-7.6.10-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6f93531882a5f68c28090f901b1d135de61b56331bba82028489bc51bdd818d2", size = 248737 }, - { url = "https://files.pythonhosted.org/packages/3c/6e/fe899fb937657db6df31cc3e61c6968cb56d36d7326361847440a430152e/coverage-7.6.10-cp313-cp313t-win32.whl", hash = "sha256:89d76815a26197c858f53c7f6a656686ec392b25991f9e409bcef020cd532312", size = 211611 }, - { url = "https://files.pythonhosted.org/packages/1c/55/52f5e66142a9d7bc93a15192eba7a78513d2abf6b3558d77b4ca32f5f424/coverage-7.6.10-cp313-cp313t-win_amd64.whl", hash = "sha256:54a5f0f43950a36312155dae55c505a76cd7f2b12d26abeebbe7a0b36dbc868d", size = 212781 }, - { url = "https://files.pythonhosted.org/packages/40/41/473617aadf9a1c15bc2d56be65d90d7c29bfa50a957a67ef96462f7ebf8e/coverage-7.6.10-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:656c82b8a0ead8bba147de9a89bda95064874c91a3ed43a00e687f23cc19d53a", size = 207978 }, - { url = "https://files.pythonhosted.org/packages/10/f6/480586607768b39a30e6910a3c4522139094ac0f1677028e1f4823688957/coverage-7.6.10-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ccc2b70a7ed475c68ceb548bf69cec1e27305c1c2606a5eb7c3afff56a1b3b27", size = 208415 }, - { url = "https://files.pythonhosted.org/packages/f1/af/439bb760f817deff6f4d38fe7da08d9dd7874a560241f1945bc3b4446550/coverage-7.6.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5e37dc41d57ceba70956fa2fc5b63c26dba863c946ace9705f8eca99daecdc4", size = 236452 }, - { url = "https://files.pythonhosted.org/packages/d0/13/481f4ceffcabe29ee2332e60efb52e4694f54a402f3ada2bcec10bb32e43/coverage-7.6.10-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0aa9692b4fdd83a4647eeb7db46410ea1322b5ed94cd1715ef09d1d5922ba87f", size = 234374 }, - { url = "https://files.pythonhosted.org/packages/c5/59/4607ea9d6b1b73e905c7656da08d0b00cdf6e59f2293ec259e8914160025/coverage-7.6.10-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa744da1820678b475e4ba3dfd994c321c5b13381d1041fe9c608620e6676e25", size = 235505 }, - { url = "https://files.pythonhosted.org/packages/85/60/d66365723b9b7f29464b11d024248ed3523ce5aab958e4ad8c43f3f4148b/coverage-7.6.10-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c0b1818063dc9e9d838c09e3a473c1422f517889436dd980f5d721899e66f315", size = 234616 }, - { url = "https://files.pythonhosted.org/packages/74/f8/2cf7a38e7d81b266f47dfcf137fecd8fa66c7bdbd4228d611628d8ca3437/coverage-7.6.10-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:59af35558ba08b758aec4d56182b222976330ef8d2feacbb93964f576a7e7a90", size = 233099 }, - { url = "https://files.pythonhosted.org/packages/50/2b/bff6c1c6b63c4396ea7ecdbf8db1788b46046c681b8fcc6ec77db9f4ea49/coverage-7.6.10-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7ed2f37cfce1ce101e6dffdfd1c99e729dd2ffc291d02d3e2d0af8b53d13840d", size = 234089 }, - { url = "https://files.pythonhosted.org/packages/bf/b5/baace1c754d546a67779358341aa8d2f7118baf58cac235db457e1001d1b/coverage-7.6.10-cp39-cp39-win32.whl", hash = "sha256:4bcc276261505d82f0ad426870c3b12cb177752834a633e737ec5ee79bbdff18", size = 210701 }, - { url = "https://files.pythonhosted.org/packages/b1/bf/9e1e95b8b20817398ecc5a1e8d3e05ff404e1b9fb2185cd71561698fe2a2/coverage-7.6.10-cp39-cp39-win_amd64.whl", hash = "sha256:457574f4599d2b00f7f637a0700a6422243b3565509457b2dbd3f50703e11f59", size = 211482 }, - { url = "https://files.pythonhosted.org/packages/a1/70/de81bfec9ed38a64fc44a77c7665e20ca507fc3265597c28b0d989e4082e/coverage-7.6.10-pp39.pp310-none-any.whl", hash = "sha256:fd34e7b3405f0cc7ab03d54a334c17a9e802897580d964bd8c2001f4b9fd488f", size = 200223 }, +version = "7.6.12" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0c/d6/2b53ab3ee99f2262e6f0b8369a43f6d66658eab45510331c0b3d5c8c4272/coverage-7.6.12.tar.gz", hash = "sha256:48cfc4641d95d34766ad41d9573cc0f22a48aa88d22657a1fe01dca0dbae4de2", size = 805941 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ba/67/81dc41ec8f548c365d04a29f1afd492d3176b372c33e47fa2a45a01dc13a/coverage-7.6.12-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:704c8c8c6ce6569286ae9622e534b4f5b9759b6f2cd643f1c1a61f666d534fe8", size = 208345 }, + { url = "https://files.pythonhosted.org/packages/33/43/17f71676016c8829bde69e24c852fef6bd9ed39f774a245d9ec98f689fa0/coverage-7.6.12-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ad7525bf0241e5502168ae9c643a2f6c219fa0a283001cee4cf23a9b7da75879", size = 208775 }, + { url = "https://files.pythonhosted.org/packages/86/25/c6ff0775f8960e8c0840845b723eed978d22a3cd9babd2b996e4a7c502c6/coverage-7.6.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:06097c7abfa611c91edb9e6920264e5be1d6ceb374efb4986f38b09eed4cb2fe", size = 237925 }, + { url = "https://files.pythonhosted.org/packages/b0/3d/5f5bd37046243cb9d15fff2c69e498c2f4fe4f9b42a96018d4579ed3506f/coverage-7.6.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:220fa6c0ad7d9caef57f2c8771918324563ef0d8272c94974717c3909664e674", size = 235835 }, + { url = "https://files.pythonhosted.org/packages/b5/f1/9e6b75531fe33490b910d251b0bf709142e73a40e4e38a3899e6986fe088/coverage-7.6.12-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3688b99604a24492bcfe1c106278c45586eb819bf66a654d8a9a1433022fb2eb", size = 236966 }, + { url = "https://files.pythonhosted.org/packages/4f/bc/aef5a98f9133851bd1aacf130e754063719345d2fb776a117d5a8d516971/coverage-7.6.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d1a987778b9c71da2fc8948e6f2656da6ef68f59298b7e9786849634c35d2c3c", size = 236080 }, + { url = "https://files.pythonhosted.org/packages/eb/d0/56b4ab77f9b12aea4d4c11dc11cdcaa7c29130b837eb610639cf3400c9c3/coverage-7.6.12-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:cec6b9ce3bd2b7853d4a4563801292bfee40b030c05a3d29555fd2a8ee9bd68c", size = 234393 }, + { url = "https://files.pythonhosted.org/packages/0d/77/28ef95c5d23fe3dd191a0b7d89c82fea2c2d904aef9315daf7c890e96557/coverage-7.6.12-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ace9048de91293e467b44bce0f0381345078389814ff6e18dbac8fdbf896360e", size = 235536 }, + { url = "https://files.pythonhosted.org/packages/29/62/18791d3632ee3ff3f95bc8599115707d05229c72db9539f208bb878a3d88/coverage-7.6.12-cp310-cp310-win32.whl", hash = "sha256:ea31689f05043d520113e0552f039603c4dd71fa4c287b64cb3606140c66f425", size = 211063 }, + { url = "https://files.pythonhosted.org/packages/fc/57/b3878006cedfd573c963e5c751b8587154eb10a61cc0f47a84f85c88a355/coverage-7.6.12-cp310-cp310-win_amd64.whl", hash = "sha256:676f92141e3c5492d2a1596d52287d0d963df21bf5e55c8b03075a60e1ddf8aa", size = 211955 }, + { url = "https://files.pythonhosted.org/packages/64/2d/da78abbfff98468c91fd63a73cccdfa0e99051676ded8dd36123e3a2d4d5/coverage-7.6.12-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e18aafdfb3e9ec0d261c942d35bd7c28d031c5855dadb491d2723ba54f4c3015", size = 208464 }, + { url = "https://files.pythonhosted.org/packages/31/f2/c269f46c470bdabe83a69e860c80a82e5e76840e9f4bbd7f38f8cebbee2f/coverage-7.6.12-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:66fe626fd7aa5982cdebad23e49e78ef7dbb3e3c2a5960a2b53632f1f703ea45", size = 208893 }, + { url = "https://files.pythonhosted.org/packages/47/63/5682bf14d2ce20819998a49c0deadb81e608a59eed64d6bc2191bc8046b9/coverage-7.6.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ef01d70198431719af0b1f5dcbefc557d44a190e749004042927b2a3fed0702", size = 241545 }, + { url = "https://files.pythonhosted.org/packages/6a/b6/6b6631f1172d437e11067e1c2edfdb7238b65dff965a12bce3b6d1bf2be2/coverage-7.6.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07e92ae5a289a4bc4c0aae710c0948d3c7892e20fd3588224ebe242039573bf0", size = 239230 }, + { url = "https://files.pythonhosted.org/packages/c7/01/9cd06cbb1be53e837e16f1b4309f6357e2dfcbdab0dd7cd3b1a50589e4e1/coverage-7.6.12-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e695df2c58ce526eeab11a2e915448d3eb76f75dffe338ea613c1201b33bab2f", size = 241013 }, + { url = "https://files.pythonhosted.org/packages/4b/26/56afefc03c30871326e3d99709a70d327ac1f33da383cba108c79bd71563/coverage-7.6.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d74c08e9aaef995f8c4ef6d202dbd219c318450fe2a76da624f2ebb9c8ec5d9f", size = 239750 }, + { url = "https://files.pythonhosted.org/packages/dd/ea/88a1ff951ed288f56aa561558ebe380107cf9132facd0b50bced63ba7238/coverage-7.6.12-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e995b3b76ccedc27fe4f477b349b7d64597e53a43fc2961db9d3fbace085d69d", size = 238462 }, + { url = "https://files.pythonhosted.org/packages/6e/d4/1d9404566f553728889409eff82151d515fbb46dc92cbd13b5337fa0de8c/coverage-7.6.12-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b1f097878d74fe51e1ddd1be62d8e3682748875b461232cf4b52ddc6e6db0bba", size = 239307 }, + { url = "https://files.pythonhosted.org/packages/12/c1/e453d3b794cde1e232ee8ac1d194fde8e2ba329c18bbf1b93f6f5eef606b/coverage-7.6.12-cp311-cp311-win32.whl", hash = "sha256:1f7ffa05da41754e20512202c866d0ebfc440bba3b0ed15133070e20bf5aeb5f", size = 211117 }, + { url = "https://files.pythonhosted.org/packages/d5/db/829185120c1686fa297294f8fcd23e0422f71070bf85ef1cc1a72ecb2930/coverage-7.6.12-cp311-cp311-win_amd64.whl", hash = "sha256:e216c5c45f89ef8971373fd1c5d8d1164b81f7f5f06bbf23c37e7908d19e8558", size = 212019 }, + { url = "https://files.pythonhosted.org/packages/e2/7f/4af2ed1d06ce6bee7eafc03b2ef748b14132b0bdae04388e451e4b2c529b/coverage-7.6.12-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b172f8e030e8ef247b3104902cc671e20df80163b60a203653150d2fc204d1ad", size = 208645 }, + { url = "https://files.pythonhosted.org/packages/dc/60/d19df912989117caa95123524d26fc973f56dc14aecdec5ccd7d0084e131/coverage-7.6.12-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:641dfe0ab73deb7069fb972d4d9725bf11c239c309ce694dd50b1473c0f641c3", size = 208898 }, + { url = "https://files.pythonhosted.org/packages/bd/10/fecabcf438ba676f706bf90186ccf6ff9f6158cc494286965c76e58742fa/coverage-7.6.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e549f54ac5f301e8e04c569dfdb907f7be71b06b88b5063ce9d6953d2d58574", size = 242987 }, + { url = "https://files.pythonhosted.org/packages/4c/53/4e208440389e8ea936f5f2b0762dcd4cb03281a7722def8e2bf9dc9c3d68/coverage-7.6.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:959244a17184515f8c52dcb65fb662808767c0bd233c1d8a166e7cf74c9ea985", size = 239881 }, + { url = "https://files.pythonhosted.org/packages/c4/47/2ba744af8d2f0caa1f17e7746147e34dfc5f811fb65fc153153722d58835/coverage-7.6.12-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bda1c5f347550c359f841d6614fb8ca42ae5cb0b74d39f8a1e204815ebe25750", size = 242142 }, + { url = "https://files.pythonhosted.org/packages/e9/90/df726af8ee74d92ee7e3bf113bf101ea4315d71508952bd21abc3fae471e/coverage-7.6.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1ceeb90c3eda1f2d8c4c578c14167dbd8c674ecd7d38e45647543f19839dd6ea", size = 241437 }, + { url = "https://files.pythonhosted.org/packages/f6/af/995263fd04ae5f9cf12521150295bf03b6ba940d0aea97953bb4a6db3e2b/coverage-7.6.12-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f16f44025c06792e0fb09571ae454bcc7a3ec75eeb3c36b025eccf501b1a4c3", size = 239724 }, + { url = "https://files.pythonhosted.org/packages/1c/8e/5bb04f0318805e190984c6ce106b4c3968a9562a400180e549855d8211bd/coverage-7.6.12-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b076e625396e787448d27a411aefff867db2bffac8ed04e8f7056b07024eed5a", size = 241329 }, + { url = "https://files.pythonhosted.org/packages/9e/9d/fa04d9e6c3f6459f4e0b231925277cfc33d72dfab7fa19c312c03e59da99/coverage-7.6.12-cp312-cp312-win32.whl", hash = "sha256:00b2086892cf06c7c2d74983c9595dc511acca00665480b3ddff749ec4fb2a95", size = 211289 }, + { url = "https://files.pythonhosted.org/packages/53/40/53c7ffe3c0c3fff4d708bc99e65f3d78c129110d6629736faf2dbd60ad57/coverage-7.6.12-cp312-cp312-win_amd64.whl", hash = "sha256:7ae6eabf519bc7871ce117fb18bf14e0e343eeb96c377667e3e5dd12095e0288", size = 212079 }, + { url = "https://files.pythonhosted.org/packages/76/89/1adf3e634753c0de3dad2f02aac1e73dba58bc5a3a914ac94a25b2ef418f/coverage-7.6.12-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:488c27b3db0ebee97a830e6b5a3ea930c4a6e2c07f27a5e67e1b3532e76b9ef1", size = 208673 }, + { url = "https://files.pythonhosted.org/packages/ce/64/92a4e239d64d798535c5b45baac6b891c205a8a2e7c9cc8590ad386693dc/coverage-7.6.12-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5d1095bbee1851269f79fd8e0c9b5544e4c00c0c24965e66d8cba2eb5bb535fd", size = 208945 }, + { url = "https://files.pythonhosted.org/packages/b4/d0/4596a3ef3bca20a94539c9b1e10fd250225d1dec57ea78b0867a1cf9742e/coverage-7.6.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0533adc29adf6a69c1baa88c3d7dbcaadcffa21afbed3ca7a225a440e4744bf9", size = 242484 }, + { url = "https://files.pythonhosted.org/packages/1c/ef/6fd0d344695af6718a38d0861408af48a709327335486a7ad7e85936dc6e/coverage-7.6.12-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:53c56358d470fa507a2b6e67a68fd002364d23c83741dbc4c2e0680d80ca227e", size = 239525 }, + { url = "https://files.pythonhosted.org/packages/0c/4b/373be2be7dd42f2bcd6964059fd8fa307d265a29d2b9bcf1d044bcc156ed/coverage-7.6.12-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64cbb1a3027c79ca6310bf101014614f6e6e18c226474606cf725238cf5bc2d4", size = 241545 }, + { url = "https://files.pythonhosted.org/packages/a6/7d/0e83cc2673a7790650851ee92f72a343827ecaaea07960587c8f442b5cd3/coverage-7.6.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:79cac3390bfa9836bb795be377395f28410811c9066bc4eefd8015258a7578c6", size = 241179 }, + { url = "https://files.pythonhosted.org/packages/ff/8c/566ea92ce2bb7627b0900124e24a99f9244b6c8c92d09ff9f7633eb7c3c8/coverage-7.6.12-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:9b148068e881faa26d878ff63e79650e208e95cf1c22bd3f77c3ca7b1d9821a3", size = 239288 }, + { url = "https://files.pythonhosted.org/packages/7d/e4/869a138e50b622f796782d642c15fb5f25a5870c6d0059a663667a201638/coverage-7.6.12-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8bec2ac5da793c2685ce5319ca9bcf4eee683b8a1679051f8e6ec04c4f2fd7dc", size = 241032 }, + { url = "https://files.pythonhosted.org/packages/ae/28/a52ff5d62a9f9e9fe9c4f17759b98632edd3a3489fce70154c7d66054dd3/coverage-7.6.12-cp313-cp313-win32.whl", hash = "sha256:200e10beb6ddd7c3ded322a4186313d5ca9e63e33d8fab4faa67ef46d3460af3", size = 211315 }, + { url = "https://files.pythonhosted.org/packages/bc/17/ab849b7429a639f9722fa5628364c28d675c7ff37ebc3268fe9840dda13c/coverage-7.6.12-cp313-cp313-win_amd64.whl", hash = "sha256:2b996819ced9f7dbb812c701485d58f261bef08f9b85304d41219b1496b591ef", size = 212099 }, + { url = "https://files.pythonhosted.org/packages/d2/1c/b9965bf23e171d98505eb5eb4fb4d05c44efd256f2e0f19ad1ba8c3f54b0/coverage-7.6.12-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:299cf973a7abff87a30609879c10df0b3bfc33d021e1adabc29138a48888841e", size = 209511 }, + { url = "https://files.pythonhosted.org/packages/57/b3/119c201d3b692d5e17784fee876a9a78e1b3051327de2709392962877ca8/coverage-7.6.12-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4b467a8c56974bf06e543e69ad803c6865249d7a5ccf6980457ed2bc50312703", size = 209729 }, + { url = "https://files.pythonhosted.org/packages/52/4e/a7feb5a56b266304bc59f872ea07b728e14d5a64f1ad3a2cc01a3259c965/coverage-7.6.12-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2458f275944db8129f95d91aee32c828a408481ecde3b30af31d552c2ce284a0", size = 253988 }, + { url = "https://files.pythonhosted.org/packages/65/19/069fec4d6908d0dae98126aa7ad08ce5130a6decc8509da7740d36e8e8d2/coverage-7.6.12-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a9d8be07fb0832636a0f72b80d2a652fe665e80e720301fb22b191c3434d924", size = 249697 }, + { url = "https://files.pythonhosted.org/packages/1c/da/5b19f09ba39df7c55f77820736bf17bbe2416bbf5216a3100ac019e15839/coverage-7.6.12-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14d47376a4f445e9743f6c83291e60adb1b127607a3618e3185bbc8091f0467b", size = 252033 }, + { url = "https://files.pythonhosted.org/packages/1e/89/4c2750df7f80a7872267f7c5fe497c69d45f688f7b3afe1297e52e33f791/coverage-7.6.12-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b95574d06aa9d2bd6e5cc35a5bbe35696342c96760b69dc4287dbd5abd4ad51d", size = 251535 }, + { url = "https://files.pythonhosted.org/packages/78/3b/6d3ae3c1cc05f1b0460c51e6f6dcf567598cbd7c6121e5ad06643974703c/coverage-7.6.12-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:ecea0c38c9079570163d663c0433a9af4094a60aafdca491c6a3d248c7432827", size = 249192 }, + { url = "https://files.pythonhosted.org/packages/6e/8e/c14a79f535ce41af7d436bbad0d3d90c43d9e38ec409b4770c894031422e/coverage-7.6.12-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2251fabcfee0a55a8578a9d29cecfee5f2de02f11530e7d5c5a05859aa85aee9", size = 250627 }, + { url = "https://files.pythonhosted.org/packages/cb/79/b7cee656cfb17a7f2c1b9c3cee03dd5d8000ca299ad4038ba64b61a9b044/coverage-7.6.12-cp313-cp313t-win32.whl", hash = "sha256:eb5507795caabd9b2ae3f1adc95f67b1104971c22c624bb354232d65c4fc90b3", size = 212033 }, + { url = "https://files.pythonhosted.org/packages/b6/c3/f7aaa3813f1fa9a4228175a7bd368199659d392897e184435a3b66408dd3/coverage-7.6.12-cp313-cp313t-win_amd64.whl", hash = "sha256:f60a297c3987c6c02ffb29effc70eadcbb412fe76947d394a1091a3615948e2f", size = 213240 }, + { url = "https://files.pythonhosted.org/packages/6c/eb/cf062b1c3dbdcafd64a2a154beea2e4aa8e9886c34e41f53fa04925c8b35/coverage-7.6.12-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e7575ab65ca8399c8c4f9a7d61bbd2d204c8b8e447aab9d355682205c9dd948d", size = 208343 }, + { url = "https://files.pythonhosted.org/packages/95/42/4ebad0ab065228e29869a060644712ab1b0821d8c29bfefa20c2118c9e19/coverage-7.6.12-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8161d9fbc7e9fe2326de89cd0abb9f3599bccc1287db0aba285cb68d204ce929", size = 208769 }, + { url = "https://files.pythonhosted.org/packages/44/9f/421e84f7f9455eca85ff85546f26cbc144034bb2587e08bfc214dd6e9c8f/coverage-7.6.12-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a1e465f398c713f1b212400b4e79a09829cd42aebd360362cd89c5bdc44eb87", size = 237553 }, + { url = "https://files.pythonhosted.org/packages/c9/c4/a2c4f274bcb711ed5db2ccc1b851ca1c45f35ed6077aec9d6c61845d80e3/coverage-7.6.12-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f25d8b92a4e31ff1bd873654ec367ae811b3a943583e05432ea29264782dc32c", size = 235473 }, + { url = "https://files.pythonhosted.org/packages/e0/10/a3d317e38e5627b06debe861d6c511b1611dd9dc0e2a47afbe6257ffd341/coverage-7.6.12-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a936309a65cc5ca80fa9f20a442ff9e2d06927ec9a4f54bcba9c14c066323f2", size = 236575 }, + { url = "https://files.pythonhosted.org/packages/4d/49/51cd991b56257d2e07e3d5cb053411e9de5b0f4e98047167ec05e4e19b55/coverage-7.6.12-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:aa6f302a3a0b5f240ee201297fff0bbfe2fa0d415a94aeb257d8b461032389bd", size = 235690 }, + { url = "https://files.pythonhosted.org/packages/f7/87/631e5883fe0a80683a1f20dadbd0f99b79e17a9d8ea9aff3a9b4cfe50b93/coverage-7.6.12-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f973643ef532d4f9be71dd88cf7588936685fdb576d93a79fe9f65bc337d9d73", size = 234040 }, + { url = "https://files.pythonhosted.org/packages/7c/34/edd03f6933f766ec97dddd178a7295855f8207bb708dbac03777107ace5b/coverage-7.6.12-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:78f5243bb6b1060aed6213d5107744c19f9571ec76d54c99cc15938eb69e0e86", size = 235048 }, + { url = "https://files.pythonhosted.org/packages/ee/1e/d45045b7d3012fe518c617a57b9f9396cdaebe6455f1b404858b32c38cdd/coverage-7.6.12-cp39-cp39-win32.whl", hash = "sha256:69e62c5034291c845fc4df7f8155e8544178b6c774f97a99e2734b05eb5bed31", size = 211085 }, + { url = "https://files.pythonhosted.org/packages/df/ea/086cb06af14a84fe773b86aa140892006a906c5ec947e609ceb6a93f6257/coverage-7.6.12-cp39-cp39-win_amd64.whl", hash = "sha256:b01a840ecc25dce235ae4c1b6a0daefb2a203dba0e6e980637ee9c2f6ee0df57", size = 211965 }, + { url = "https://files.pythonhosted.org/packages/7a/7f/05818c62c7afe75df11e0233bd670948d68b36cdbf2a339a095bc02624a8/coverage-7.6.12-pp39.pp310-none-any.whl", hash = "sha256:7e39e845c4d764208e7b8f6a21c541ade741e2c41afabdfa1caa28687a3c98cf", size = 200558 }, + { url = "https://files.pythonhosted.org/packages/fb/b2/f655700e1024dec98b10ebaafd0cedbc25e40e4abe62a3c8e2ceef4f8f0a/coverage-7.6.12-py3-none-any.whl", hash = "sha256:eb8668cfbc279a536c633137deeb9435d2962caec279c3f8cf8b91fff6ff8953", size = 200552 }, ] [package.optional-dependencies] @@ -616,51 +622,51 @@ wheels = [ [[package]] name = "fonttools" -version = "4.55.6" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/49/2e/0b11e907b90665253dbad425479e874e38a9e81ced397a4e3312b9116935/fonttools-4.55.6.tar.gz", hash = "sha256:1beb4647a0df5ceaea48015656525eb8081af226fe96554089fd3b274d239ef0", size = 3500677 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/24/05/8c1a6ab8c443525c1cedee94d0371ec45cbcd11e4b01328ff10dcc483134/fonttools-4.55.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:57d55fc965e5dd20c8a60d880e0f43bafb506be87af0b650bdc42591e41e0d0d", size = 2774906 }, - { url = "https://files.pythonhosted.org/packages/cd/53/de15cea829b49d50a0d0942d75bc71ca680536265abed03ce873ae71787b/fonttools-4.55.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:127999618afe3a2490fad54bab0650c5fbeab1f8109bdc0205f6ad34306deb8b", size = 2303345 }, - { url = "https://files.pythonhosted.org/packages/d2/23/90159149cc907ea2da0ca7b7baf5ad783c902de219ecb28bca3f789b82c3/fonttools-4.55.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3226d40cb92787e09dcc3730f54b3779dfe56bdfea624e263685ba17a6faac4", size = 4584790 }, - { url = "https://files.pythonhosted.org/packages/26/db/8d33a4575efe7ecd0487d4a53369d086ab7d879069e4c62d3687dec53941/fonttools-4.55.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e82772f70b84e17aa36e9f236feb2a4f73cb686ec1e162557a36cf759d1acd58", size = 4627464 }, - { url = "https://files.pythonhosted.org/packages/a3/c9/e90342b5eebce21ba2b04ce879c66e0316a5faaa7337498dfb5032953055/fonttools-4.55.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a632f85bd73e002b771bcbcdc512038fa5d2e09bb18c03a22fb8d400ea492ddf", size = 4581741 }, - { url = "https://files.pythonhosted.org/packages/e1/98/f4297b65849f15f6b49349a1ffc21e93d1859fa3579d0d5cb1590317060c/fonttools-4.55.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:791e0cf862cdd3a252df395f1bb5f65e3a760f1da3c7ce184d0f7998c266614d", size = 4751195 }, - { url = "https://files.pythonhosted.org/packages/63/73/9dcf4040edbdc5e33cc23d2b7d6a6d4bb50605efd5686d6b782815f4a818/fonttools-4.55.6-cp310-cp310-win32.whl", hash = "sha256:94f7f2c5c5f3a6422e954ecb6d37cc363e27d6f94050a7ed3f79f12157af6bb2", size = 2178422 }, - { url = "https://files.pythonhosted.org/packages/45/f0/ec0ce63f910db60a566201a550c06205595c10c980f6c74885f53cdf512b/fonttools-4.55.6-cp310-cp310-win_amd64.whl", hash = "sha256:2d15e02b93a46982a8513a208e8f89148bca8297640527365625be56151687d0", size = 2222886 }, - { url = "https://files.pythonhosted.org/packages/53/42/e6cb653675fcf2bed7814b5d688c95a1b6d136ad26e4ed1523c18d6dbb28/fonttools-4.55.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0879f99eabbf2171dfadd9c8c75cec2b7b3aa9cd1f3955dd799c69d60a5189ef", size = 2776041 }, - { url = "https://files.pythonhosted.org/packages/58/b6/d54d71a59498def2b58d5ec5f8baad35add4a076edb1968d645b7a95759a/fonttools-4.55.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d77d83ca77a4c3156a2f4cbc7f09f5a8503795da658fa255b987ad433a191266", size = 2304268 }, - { url = "https://files.pythonhosted.org/packages/fe/ed/0743c21126fc3442a710b8c880355e381dd750a18bfe10097d663a1838c5/fonttools-4.55.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07478132407736ee5e54f9f534e73923ae28e9bb6dba17764a35e3caf7d7fea3", size = 4891976 }, - { url = "https://files.pythonhosted.org/packages/0d/73/8f7a0084bc0b3591e281fdcef7e704ad3817244d35ca98b444de5acf0f47/fonttools-4.55.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1c06fbc2fd76b9bab03eddfd8aa9fb7c0981d314d780e763c80aa76be1c9982", size = 4921223 }, - { url = "https://files.pythonhosted.org/packages/ad/75/b47d792d4c4f65ff488d9f25d59f8bb6382c74efd6169bd3c0341320ac76/fonttools-4.55.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:09ed667c4753e1270994e5398cce8703e6423c41702a55b08f843b2907b1be65", size = 4900418 }, - { url = "https://files.pythonhosted.org/packages/88/70/f821dce8121b6c4bccd10ca28499df2e0e9811e2a711deeb270b9065fcd9/fonttools-4.55.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0ee6ed68af8d57764d69da099db163aaf37d62ba246cfd42f27590e3e6724b55", size = 5068531 }, - { url = "https://files.pythonhosted.org/packages/76/6e/6b7c919c4f985042fe02fe9cbd3d956e2e85a6db8575737ff600aa24c42c/fonttools-4.55.6-cp311-cp311-win32.whl", hash = "sha256:9f99e7876518b2d059a9cc67c506168aebf9c71ac8d81006d75e684222f291d2", size = 2177287 }, - { url = "https://files.pythonhosted.org/packages/1e/10/26a4123227fa1ab9fa8ec062f4f2b980f43483d58ec261d502bfe49af6c2/fonttools-4.55.6-cp311-cp311-win_amd64.whl", hash = "sha256:3aa6c684007723895aade9b2fe76d07008c9dc90fd1ef6c310b3ca9c8566729f", size = 2223807 }, - { url = "https://files.pythonhosted.org/packages/f7/c0/b9c7308f925545702a2ecc696bb59ed0cab544aa53b3abd6c0f3ab1186e2/fonttools-4.55.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:51120695ee13001533e50abd40eec32c01b9c6f44c5567db38a7acd3eedcd19d", size = 2770475 }, - { url = "https://files.pythonhosted.org/packages/9c/ec/bc7baa296dbbfb58fee00458285006a00deeedbbdeae2b88ca477d662170/fonttools-4.55.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:76ac5a595f86892b49ba86ba2e46185adc76328ce6eff0583b30e5c3ab02a914", size = 2301727 }, - { url = "https://files.pythonhosted.org/packages/dd/73/75e0c47f5bc8805419499a016691e388d92ab4dc607ef5e9ace86c466829/fonttools-4.55.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b7535a5ac386e549e2b00b34c59b53f805e2423000676723b6867df3c10df04", size = 4806704 }, - { url = "https://files.pythonhosted.org/packages/ff/de/932d68e198dc386c7fb055416822834b1b3a21cd376eeb7cc2d6fdc5ad14/fonttools-4.55.6-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c42009177d3690894288082d5e3dac6bdc9f5d38e25054535e341a19cf5183a4", size = 4877824 }, - { url = "https://files.pythonhosted.org/packages/01/cd/e6249ce95a0fa7d2950524400a524fb6860c688776b53a3635f3d3c2d3f4/fonttools-4.55.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:88f74bc19dbab3dee6a00ca67ca54bb4793e44ff0c4dcf1fa61d68651ae3fa0a", size = 4785213 }, - { url = "https://files.pythonhosted.org/packages/67/85/db2ac44e066043451542d9845969e2e9a3545b8a77e9d0e35484ebe95227/fonttools-4.55.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bc6f58976ffc19fe1630119a2736153b66151d023c6f30065f31c9e8baed1303", size = 5012806 }, - { url = "https://files.pythonhosted.org/packages/66/ec/6dca43eb8d6555503b6e454edf42688464d0e744b089a757afc7c513f8a9/fonttools-4.55.6-cp312-cp312-win32.whl", hash = "sha256:4259159715142c10b0f4d121ef14da3fa6eafc719289d9efa4b20c15e57fef82", size = 2165760 }, - { url = "https://files.pythonhosted.org/packages/39/5d/99a164057dd1fc345027113909022877e5fd1b649b2357d18a2a03c50d8b/fonttools-4.55.6-cp312-cp312-win_amd64.whl", hash = "sha256:d91fce2e9a87cc0db9f8042281b6458f99854df810cfefab2baf6ab2acc0f4b4", size = 2212601 }, - { url = "https://files.pythonhosted.org/packages/da/ce/65ea137cdc6d7682c8133931944dec81d2cf9f0276665e4a8292efeb262a/fonttools-4.55.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:9394813cc73fa22c5413ec1c5745c0a16f68dd2b890f7c55eaba5cb40187ed55", size = 2757836 }, - { url = "https://files.pythonhosted.org/packages/d1/39/671f6e5af29235bf598a14eb060bfa2a1dd5010cafefe39fc9648ace3a3c/fonttools-4.55.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ac817559a7d245454231374e194b4e457dca6fefa5b52af466ab0516e9a09c6e", size = 2295238 }, - { url = "https://files.pythonhosted.org/packages/31/68/c41d6fe8c3132db492d054c39e043672d1739055f1aa531e4141541e1a4a/fonttools-4.55.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34405f1314f1e88b1877a9f9e497fe45190e8c4b29a6c7cd85ed7f666a57d702", size = 4785136 }, - { url = "https://files.pythonhosted.org/packages/1a/85/591b8f36af1f36d78a9d3f24a95912a70ca899d037e43bb41dba19088d05/fonttools-4.55.6-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af5469bbf555047efd8752d85faeb2a3510916ddc6c50dd6fb168edf1677408f", size = 4857158 }, - { url = "https://files.pythonhosted.org/packages/27/1b/a8bccde7c0f88e6ccd8b2c80b112f7b363a2d1f600fb29f8654bf14bdf5f/fonttools-4.55.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8a8004a19195eb8a8a13de69e26ec9ed60a5bc1fde336d0021b47995b368fac9", size = 4765517 }, - { url = "https://files.pythonhosted.org/packages/1c/d4/9b24f3563325e396810191240ed8efa0b093ea7a3e5971cc97515da42ceb/fonttools-4.55.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:73a4aaf672e7b2265c6354a69cbbadf71b7f3133ecb74e98fec4c67c366698a3", size = 4986460 }, - { url = "https://files.pythonhosted.org/packages/30/01/874a26eaad82ab5e469766cb4532a3a7d65262d443023507bd5cd6247cce/fonttools-4.55.6-cp313-cp313-win32.whl", hash = "sha256:73bdff9c44d36c57ea84766afc20517eda0c9bb1571b4a09876646264bd5ff3b", size = 2163789 }, - { url = "https://files.pythonhosted.org/packages/59/94/f1b35883172676e71c259dfdf5dddab9cffa650b503f4dd2535dce726a06/fonttools-4.55.6-cp313-cp313-win_amd64.whl", hash = "sha256:132fa22be8a99784de8cb171b30425a581f04a40ec1c05183777fb2b1fe3bac9", size = 2209586 }, - { url = "https://files.pythonhosted.org/packages/2a/a6/d61c836270f7be4251ab2e699dcbbdc8d4262816b6d476a11a7939b98c22/fonttools-4.55.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:61aa1997c520bee4cde14ffabe81efc4708c500c8c81dce37831551627a2be56", size = 2777603 }, - { url = "https://files.pythonhosted.org/packages/ad/7a/75085997b6ed3e27a8ca4dfcaff6b30c05bfa530e10dcd5cc03e9773eed5/fonttools-4.55.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7954ea66a8d835f279c17d8474597a001ddd65a2c1ca97e223041bfbbe11f65e", size = 2304604 }, - { url = "https://files.pythonhosted.org/packages/eb/bf/d6675455d41acef8c697460acb66b0f665edee5d605427c8e1627253a244/fonttools-4.55.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f4e88f15f5ed4d2e4bdfcc98540bb3987ae25904f9be304be9a604e7a7050a1", size = 4590378 }, - { url = "https://files.pythonhosted.org/packages/c3/c8/0b156c02bf751a78f6ecb2a008e9d626d54f77c270573800a035eab164c4/fonttools-4.55.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d419483a6295e83cabddb56f1c7b7bfdc8169de2fcb5c68d622bd11140355f9", size = 4635372 }, - { url = "https://files.pythonhosted.org/packages/90/c6/10569414395c92c0c06f5c754f185699f812fbdfc135e02d592d7a1cf40f/fonttools-4.55.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:acc74884afddc2656bffc50100945ff407574538c152931c402fccddc46f0abc", size = 4583853 }, - { url = "https://files.pythonhosted.org/packages/25/6b/def6d14e8e2c69d8ded463d260ff4e753d4722c415aa13cd8a5d7a72f890/fonttools-4.55.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a55489c7e9d5ea69690a2afad06723c3d0c48c6d276a25391ea97cb31a16b37c", size = 4754144 }, - { url = "https://files.pythonhosted.org/packages/6e/15/33987cdc9b340b60aa6768c326ecfc655c6c0b0628ab67ad078488f554a2/fonttools-4.55.6-cp39-cp39-win32.whl", hash = "sha256:8c9de8d16d02ecc8b65e3f3d2d1e3002be2c4a3f094d580faf76d7f768bd45fe", size = 2178974 }, - { url = "https://files.pythonhosted.org/packages/09/ff/28916026008f3d26ba44f55b7ab92c749da967a2298e8731ae1adaffd031/fonttools-4.55.6-cp39-cp39-win_amd64.whl", hash = "sha256:471961af7a4b8461fac0c8ee044b4986e6fe3746d4c83a1aacbdd85b4eb53f93", size = 2223414 }, - { url = "https://files.pythonhosted.org/packages/1e/6a/6afc55d75036b8d3fe5ceaea2e8da2c04e8f3b298325de73a35f098cb9a8/fonttools-4.55.6-py3-none-any.whl", hash = "sha256:d20ab5a78d0536c26628eaadba661e7ae2427b1e5c748a0a510a44d914e1b155", size = 1112524 }, +version = "4.56.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1c/8c/9ffa2a555af0e5e5d0e2ed7fdd8c9bef474ed676995bb4c57c9cd0014248/fonttools-4.56.0.tar.gz", hash = "sha256:a114d1567e1a1586b7e9e7fc2ff686ca542a82769a296cef131e4c4af51e58f4", size = 3462892 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/5e/6ac30c2cc6a29454260f13c9c6422fc509b7982c13cd4597041260d8f482/fonttools-4.56.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:331954d002dbf5e704c7f3756028e21db07097c19722569983ba4d74df014000", size = 2752190 }, + { url = "https://files.pythonhosted.org/packages/92/3a/ac382a8396d1b420ee45eeb0f65b614a9ca7abbb23a1b17524054f0f2200/fonttools-4.56.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8d1613abd5af2f93c05867b3a3759a56e8bf97eb79b1da76b2bc10892f96ff16", size = 2280624 }, + { url = "https://files.pythonhosted.org/packages/8a/ae/00b58bfe20e9ff7fbc3dda38f5d127913942b5e252288ea9583099a31bf5/fonttools-4.56.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:705837eae384fe21cee5e5746fd4f4b2f06f87544fa60f60740007e0aa600311", size = 4562074 }, + { url = "https://files.pythonhosted.org/packages/46/d0/0004ca8f6a200252e5bd6982ed99b5fe58c4c59efaf5f516621c4cd8f703/fonttools-4.56.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc871904a53a9d4d908673c6faa15689874af1c7c5ac403a8e12d967ebd0c0dc", size = 4604747 }, + { url = "https://files.pythonhosted.org/packages/45/ea/c8862bd3e09d143ef8ed8268ec8a7d477828f960954889e65288ac050b08/fonttools-4.56.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:38b947de71748bab150259ee05a775e8a0635891568e9fdb3cdd7d0e0004e62f", size = 4559025 }, + { url = "https://files.pythonhosted.org/packages/8f/75/bb88a9552ec1de31a414066257bfd9f40f4ada00074f7a3799ea39b5741f/fonttools-4.56.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:86b2a1013ef7a64d2e94606632683f07712045ed86d937c11ef4dde97319c086", size = 4728482 }, + { url = "https://files.pythonhosted.org/packages/2a/5f/80a2b640df1e1bb7d459d62c8b3f37fe83fd413897e549106d4ebe6371f5/fonttools-4.56.0-cp310-cp310-win32.whl", hash = "sha256:133bedb9a5c6376ad43e6518b7e2cd2f866a05b1998f14842631d5feb36b5786", size = 2155557 }, + { url = "https://files.pythonhosted.org/packages/8f/85/0904f9dbe51ac70d878d3242a8583b9453a09105c3ed19c6301247fd0d3a/fonttools-4.56.0-cp310-cp310-win_amd64.whl", hash = "sha256:17f39313b649037f6c800209984a11fc256a6137cbe5487091c6c7187cae4685", size = 2200017 }, + { url = "https://files.pythonhosted.org/packages/35/56/a2f3e777d48fcae7ecd29de4d96352d84e5ea9871e5f3fc88241521572cf/fonttools-4.56.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7ef04bc7827adb7532be3d14462390dd71287644516af3f1e67f1e6ff9c6d6df", size = 2753325 }, + { url = "https://files.pythonhosted.org/packages/71/85/d483e9c4e5ed586b183bf037a353e8d766366b54fd15519b30e6178a6a6e/fonttools-4.56.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ffda9b8cd9cb8b301cae2602ec62375b59e2e2108a117746f12215145e3f786c", size = 2281554 }, + { url = "https://files.pythonhosted.org/packages/09/67/060473b832b2fade03c127019794df6dc02d9bc66fa4210b8e0d8a99d1e5/fonttools-4.56.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e993e8db36306cc3f1734edc8ea67906c55f98683d6fd34c3fc5593fdbba4c", size = 4869260 }, + { url = "https://files.pythonhosted.org/packages/28/e9/47c02d5a7027e8ed841ab6a10ca00c93dadd5f16742f1af1fa3f9978adf4/fonttools-4.56.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:003548eadd674175510773f73fb2060bb46adb77c94854af3e0cc5bc70260049", size = 4898508 }, + { url = "https://files.pythonhosted.org/packages/bf/8a/221d456d1afb8ca043cfd078f59f187ee5d0a580f4b49351b9ce95121f57/fonttools-4.56.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bd9825822e7bb243f285013e653f6741954d8147427aaa0324a862cdbf4cbf62", size = 4877700 }, + { url = "https://files.pythonhosted.org/packages/a4/8c/e503863adf7a6aeff7b960e2f66fa44dd0c29a7a8b79765b2821950d7b05/fonttools-4.56.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b23d30a2c0b992fb1c4f8ac9bfde44b5586d23457759b6cf9a787f1a35179ee0", size = 5045817 }, + { url = "https://files.pythonhosted.org/packages/2b/50/79ba3b7e42f4eaa70b82b9e79155f0f6797858dc8a97862428b6852c6aee/fonttools-4.56.0-cp311-cp311-win32.whl", hash = "sha256:47b5e4680002ae1756d3ae3b6114e20aaee6cc5c69d1e5911f5ffffd3ee46c6b", size = 2154426 }, + { url = "https://files.pythonhosted.org/packages/3b/90/4926e653041c4116ecd43e50e3c79f5daae6dcafc58ceb64bc4f71dd4924/fonttools-4.56.0-cp311-cp311-win_amd64.whl", hash = "sha256:14a3e3e6b211660db54ca1ef7006401e4a694e53ffd4553ab9bc87ead01d0f05", size = 2200937 }, + { url = "https://files.pythonhosted.org/packages/39/32/71cfd6877999576a11824a7fe7bc0bb57c5c72b1f4536fa56a3e39552643/fonttools-4.56.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d6f195c14c01bd057bc9b4f70756b510e009c83c5ea67b25ced3e2c38e6ee6e9", size = 2747757 }, + { url = "https://files.pythonhosted.org/packages/15/52/d9f716b072c5061a0b915dd4c387f74bef44c68c069e2195c753905bd9b7/fonttools-4.56.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:fa760e5fe8b50cbc2d71884a1eff2ed2b95a005f02dda2fa431560db0ddd927f", size = 2279007 }, + { url = "https://files.pythonhosted.org/packages/d1/97/f1b3a8afa9a0d814a092a25cd42f59ccb98a0bb7a295e6e02fc9ba744214/fonttools-4.56.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d54a45d30251f1d729e69e5b675f9a08b7da413391a1227781e2a297fa37f6d2", size = 4783991 }, + { url = "https://files.pythonhosted.org/packages/95/70/2a781bedc1c45a0c61d29c56425609b22ed7f971da5d7e5df2679488741b/fonttools-4.56.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:661a8995d11e6e4914a44ca7d52d1286e2d9b154f685a4d1f69add8418961563", size = 4855109 }, + { url = "https://files.pythonhosted.org/packages/0c/02/a2597858e61a5e3fb6a14d5f6be9e6eb4eaf090da56ad70cedcbdd201685/fonttools-4.56.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9d94449ad0a5f2a8bf5d2f8d71d65088aee48adbe45f3c5f8e00e3ad861ed81a", size = 4762496 }, + { url = "https://files.pythonhosted.org/packages/f2/00/aaf00100d6078fdc73f7352b44589804af9dc12b182a2540b16002152ba4/fonttools-4.56.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f59746f7953f69cc3290ce2f971ab01056e55ddd0fb8b792c31a8acd7fee2d28", size = 4990094 }, + { url = "https://files.pythonhosted.org/packages/bf/dc/3ff1db522460db60cf3adaf1b64e0c72b43406717d139786d3fa1eb20709/fonttools-4.56.0-cp312-cp312-win32.whl", hash = "sha256:bce60f9a977c9d3d51de475af3f3581d9b36952e1f8fc19a1f2254f1dda7ce9c", size = 2142888 }, + { url = "https://files.pythonhosted.org/packages/6f/e3/5a181a85777f7809076e51f7422e0dc77eb04676c40ec8bf6a49d390d1ff/fonttools-4.56.0-cp312-cp312-win_amd64.whl", hash = "sha256:300c310bb725b2bdb4f5fc7e148e190bd69f01925c7ab437b9c0ca3e1c7cd9ba", size = 2189734 }, + { url = "https://files.pythonhosted.org/packages/a5/55/f06b48d48e0b4ec3a3489efafe9bd4d81b6e0802ac51026e3ee4634e89ba/fonttools-4.56.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f20e2c0dfab82983a90f3d00703ac0960412036153e5023eed2b4641d7d5e692", size = 2735127 }, + { url = "https://files.pythonhosted.org/packages/59/db/d2c7c9b6dd5cbd46f183e650a47403ffb88fca17484eb7c4b1cd88f9e513/fonttools-4.56.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f36a0868f47b7566237640c026c65a86d09a3d9ca5df1cd039e30a1da73098a0", size = 2272519 }, + { url = "https://files.pythonhosted.org/packages/4d/a2/da62d779c34a0e0c06415f02eab7fa3466de5d46df459c0275a255cefc65/fonttools-4.56.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62b4c6802fa28e14dba010e75190e0e6228513573f1eeae57b11aa1a39b7e5b1", size = 4762423 }, + { url = "https://files.pythonhosted.org/packages/be/6a/fd4018e0448c8a5e12138906411282c5eab51a598493f080a9f0960e658f/fonttools-4.56.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a05d1f07eb0a7d755fbe01fee1fd255c3a4d3730130cf1bfefb682d18fd2fcea", size = 4834442 }, + { url = "https://files.pythonhosted.org/packages/6d/63/fa1dec8efb35bc11ef9c39b2d74754b45d48a3ccb2cf78c0109c0af639e8/fonttools-4.56.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0073b62c3438cf0058488c002ea90489e8801d3a7af5ce5f7c05c105bee815c3", size = 4742800 }, + { url = "https://files.pythonhosted.org/packages/dd/f4/963247ae8c73ccc4cf2929e7162f595c81dbe17997d1d0ea77da24a217c9/fonttools-4.56.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e2cad98c94833465bcf28f51c248aaf07ca022efc6a3eba750ad9c1e0256d278", size = 4963746 }, + { url = "https://files.pythonhosted.org/packages/ea/e0/46f9600c39c644b54e4420f941f75fa200d9288c9ae171e5d80918b8cbb9/fonttools-4.56.0-cp313-cp313-win32.whl", hash = "sha256:d0cb73ccf7f6d7ca8d0bc7ea8ac0a5b84969a41c56ac3ac3422a24df2680546f", size = 2140927 }, + { url = "https://files.pythonhosted.org/packages/27/6d/3edda54f98a550a0473f032d8050315fbc8f1b76a0d9f3879b72ebb2cdd6/fonttools-4.56.0-cp313-cp313-win_amd64.whl", hash = "sha256:62cc1253827d1e500fde9dbe981219fea4eb000fd63402283472d38e7d8aa1c6", size = 2186709 }, + { url = "https://files.pythonhosted.org/packages/c2/a0/c62b7f219f74f0e9c4b7662c269b360f5c380cf7dfabaff06e114acc5576/fonttools-4.56.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ca7962e8e5fc047cc4e59389959843aafbf7445b6c08c20d883e60ced46370a5", size = 2754871 }, + { url = "https://files.pythonhosted.org/packages/22/aa/2ce61705c48c4dc7953bec95f7cfa29e528294a06e7d38f2c674343425ca/fonttools-4.56.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a1af375734018951c31c0737d04a9d5fd0a353a0253db5fbed2ccd44eac62d8c", size = 2281885 }, + { url = "https://files.pythonhosted.org/packages/81/68/508c1e84050b950918b1345ee22def98291b2e58890b0f3c2d0cfc4fee6b/fonttools-4.56.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:442ad4122468d0e47d83bc59d0e91b474593a8c813839e1872e47c7a0cb53b10", size = 4567663 }, + { url = "https://files.pythonhosted.org/packages/56/af/78b2c901949ca37c02ba4eec88020479e929b7d1126af30ee9d7e44b4c4c/fonttools-4.56.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3cf4f8d2a30b454ac682e12c61831dcb174950c406011418e739de592bbf8f76", size = 4612654 }, + { url = "https://files.pythonhosted.org/packages/cb/fb/156bd9760b6d42be3d821f0ac3edccf8daf97b0e4fe539c569b6593f4b6a/fonttools-4.56.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:96a4271f63a615bcb902b9f56de00ea225d6896052c49f20d0c91e9f43529a29", size = 4561135 }, + { url = "https://files.pythonhosted.org/packages/c4/e9/c6c433b8ea306ba402aa1d53349237d78c1d21ec11bb69cc6d8442533d5b/fonttools-4.56.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:6c1d38642ca2dddc7ae992ef5d026e5061a84f10ff2b906be5680ab089f55bb8", size = 4731430 }, + { url = "https://files.pythonhosted.org/packages/00/41/4c199ca2c6d25edced1cdd6a3d32b2471c1e85dc7fbb2145e73805cf2a38/fonttools-4.56.0-cp39-cp39-win32.whl", hash = "sha256:2d351275f73ebdd81dd5b09a8b8dac7a30f29a279d41e1c1192aedf1b6dced40", size = 2156113 }, + { url = "https://files.pythonhosted.org/packages/00/8f/430abf16726cd627e176df92c452f239fcc488fac1e23c9ab57bb7ad6976/fonttools-4.56.0-cp39-cp39-win_amd64.whl", hash = "sha256:d6ca96d1b61a707ba01a43318c9c40aaf11a5a568d1e61146fafa6ab20890793", size = 2200538 }, + { url = "https://files.pythonhosted.org/packages/bf/ff/44934a031ce5a39125415eb405b9efb76fe7f9586b75291d66ae5cbfc4e6/fonttools-4.56.0-py3-none-any.whl", hash = "sha256:1088182f68c303b50ca4dc0c82d42083d176cba37af1937e1a976a31149d4d14", size = 1089800 }, ] [[package]] @@ -739,7 +745,7 @@ dependencies = [ { name = "comm" }, { name = "debugpy" }, { name = "ipython", version = "8.18.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "ipython", version = "8.31.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "ipython", version = "8.32.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "jupyter-client" }, { name = "jupyter-core" }, { name = "matplotlib-inline" }, @@ -782,10 +788,11 @@ wheels = [ [[package]] name = "ipython" -version = "8.31.0" +version = "8.32.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.12'", + "python_full_version >= '3.13'", + "python_full_version == '3.12.*'", "python_full_version == '3.11.*'", "python_full_version == '3.10.*'", ] @@ -802,9 +809,9 @@ dependencies = [ { name = "traitlets", marker = "python_full_version >= '3.10'" }, { name = "typing-extensions", marker = "python_full_version >= '3.10' and python_full_version < '3.12'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/01/35/6f90fdddff7a08b7b715fccbd2427b5212c9525cd043d26fdc45bee0708d/ipython-8.31.0.tar.gz", hash = "sha256:b6a2274606bec6166405ff05e54932ed6e5cfecaca1fc05f2cacde7bb074d70b", size = 5501011 } +sdist = { url = "https://files.pythonhosted.org/packages/36/80/4d2a072e0db7d250f134bc11676517299264ebe16d62a8619d49a78ced73/ipython-8.32.0.tar.gz", hash = "sha256:be2c91895b0b9ea7ba49d33b23e2040c352b33eb6a519cca7ce6e0c743444251", size = 5507441 } wheels = [ - { url = "https://files.pythonhosted.org/packages/04/60/d0feb6b6d9fe4ab89fe8fe5b47cbf6cd936bfd9f1e7ffa9d0015425aeed6/ipython-8.31.0-py3-none-any.whl", hash = "sha256:46ec58f8d3d076a61d128fe517a51eb730e3aaf0c184ea8c17d16e366660c6a6", size = 821583 }, + { url = "https://files.pythonhosted.org/packages/e7/e1/f4474a7ecdb7745a820f6f6039dc43c66add40f1bcc66485607d93571af6/ipython-8.32.0-py3-none-any.whl", hash = "sha256:cae85b0c61eff1fc48b0a8002de5958b6528fa9c8defb1894da63f42613708aa", size = 825524 }, ] [[package]] @@ -1006,7 +1013,8 @@ name = "kiwisolver" version = "1.4.8" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.12'", + "python_full_version >= '3.13'", + "python_full_version == '3.12.*'", "python_full_version == '3.11.*'", "python_full_version == '3.10.*'", ] @@ -1238,7 +1246,8 @@ name = "matplotlib" version = "3.10.0" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.12'", + "python_full_version >= '3.13'", + "python_full_version == '3.12.*'", "python_full_version == '3.11.*'", "python_full_version == '3.10.*'", ] @@ -1247,7 +1256,7 @@ dependencies = [ { name = "cycler", marker = "python_full_version >= '3.10'" }, { name = "fonttools", marker = "python_full_version >= '3.10'" }, { name = "kiwisolver", version = "1.4.8", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "numpy", version = "2.2.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "numpy", version = "2.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "packaging", marker = "python_full_version >= '3.10'" }, { name = "pillow", marker = "python_full_version >= '3.10'" }, { name = "pyparsing", marker = "python_full_version >= '3.10'" }, @@ -1304,14 +1313,14 @@ wheels = [ [[package]] name = "mistune" -version = "3.1.0" +version = "3.1.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/79/6e/96fc7cb3288666c5de2c396eb0e338dc95f7a8e4920e43e38783a22d0084/mistune-3.1.0.tar.gz", hash = "sha256:dbcac2f78292b9dc066cd03b7a3a26b62d85f8159f2ea5fd28e55df79908d667", size = 94401 } +sdist = { url = "https://files.pythonhosted.org/packages/c6/1d/6b2b634e43bacc3239006e61800676aa6c41ac1836b2c57497ed27a7310b/mistune-3.1.1.tar.gz", hash = "sha256:e0740d635f515119f7d1feb6f9b192ee60f0cc649f80a8f944f905706a21654c", size = 94645 } wheels = [ - { url = "https://files.pythonhosted.org/packages/b4/b3/743ffc3f59da380da504d84ccd1faf9a857a1445991ff19bf2ec754163c2/mistune-3.1.0-py3-none-any.whl", hash = "sha256:b05198cf6d671b3deba6c87ec6cf0d4eb7b72c524636eddb6dbf13823b52cee1", size = 53694 }, + { url = "https://files.pythonhosted.org/packages/c6/02/c66bdfdadbb021adb642ca4e8a5ed32ada0b4a3e4b39c5d076d19543452f/mistune-3.1.1-py3-none-any.whl", hash = "sha256:02106ac2aa4f66e769debbfa028509a275069dcffce0dfa578edd7b991ee700a", size = 53696 }, ] [[package]] @@ -1323,17 +1332,63 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198 }, ] +[[package]] +name = "mqt-core" +version = "3.0.0b4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c4/6d/3e479559b72780423d9f16a30a8f20cb49339314e986a4d9b57ea2b5bc25/mqt_core-3.0.0b4.tar.gz", hash = "sha256:efd69411daa410cc34f02f406c1be3509e979b2ff37312e2667017c5aaf05625", size = 405573 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ba/13/80a9dd7c83ca458e4fb8f215c8cfb8d13a0c08e2aa5a9c65d404a2096eea/mqt_core-3.0.0b4-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:68074fba2fd9aca411537a443f1f02f615fc671fc523ad5ce0c7da74890efedf", size = 3012675 }, + { url = "https://files.pythonhosted.org/packages/52/64/8c9136b79c644ec2de2963dec63c57cd1f85119add4a6e88b8916abfb6b1/mqt_core-3.0.0b4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:844f6977a01b77b1c8560d026e94b8773887b1f337608071f1ff447b9e44b1a9", size = 2755385 }, + { url = "https://files.pythonhosted.org/packages/0c/ef/b2a2ac004fe8e3bee81719352e0353063896b2e81cd0e7f0024f89c0b80c/mqt_core-3.0.0b4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f9992324af14760beeb3da14d4ea84b9ff36033491fe9b5f0e4a5e09a9e2241f", size = 3290326 }, + { url = "https://files.pythonhosted.org/packages/5b/08/05ff403c1cd9b493f4a92a72aa6fd499dca969fb5b1488cd4d4590718787/mqt_core-3.0.0b4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:284aaeb9dc71d1dfbd3217530e923b5fc4c2b4a55d0ee08a3236cc7d8d3cfa15", size = 3470582 }, + { url = "https://files.pythonhosted.org/packages/51/e9/201f2d8c492ad358cc024e88896c4768e56db107e98f5136c70419931368/mqt_core-3.0.0b4-cp310-cp310-win_amd64.whl", hash = "sha256:dac9d493cff7e133a6a711131991a259decf0c3be15bcce68d1beebfb3412032", size = 4214227 }, + { url = "https://files.pythonhosted.org/packages/dc/14/5242c791d7ecc9632862d72eb0246aefcfc29fd25c9138b73e4ce06ae335/mqt_core-3.0.0b4-cp311-cp311-macosx_10_15_x86_64.whl", hash = "sha256:f535095afcc8474daa344f5d6d9c0cbecaaa48f302f6f06ddc96c9e3aba27913", size = 3013837 }, + { url = "https://files.pythonhosted.org/packages/6b/0a/898d81f259e5797ea7e8a2f2c8571be12ddf0ca0261a36725f2e5fb1981f/mqt_core-3.0.0b4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5a4aa5d0842a9ed23fed6ecee825408ece734465be2ddb66d9c86e3310569583", size = 2756312 }, + { url = "https://files.pythonhosted.org/packages/b7/a8/908404d3eb5e8d18c19c5cba50d0248dad87dcf6e7983d80c1ed8de77e2e/mqt_core-3.0.0b4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fa739d4e204533070866d028cc020106ff60483b8b602edb5afb6f2065960ca5", size = 3290926 }, + { url = "https://files.pythonhosted.org/packages/8b/ca/9e1936e7e3d08a759b589c78ed281f562238cdf91c41937676eedb845e96/mqt_core-3.0.0b4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11e35bdc41ead515fddeb5b9db38595f07545d2b103dfd9741363e963c14297c", size = 3471371 }, + { url = "https://files.pythonhosted.org/packages/9a/af/068bfe5b19c6577714a2fa5bb34fa66f731cbb9da7d40a853cf58c2d74b7/mqt_core-3.0.0b4-cp311-cp311-win_amd64.whl", hash = "sha256:7be0a8e5774123c474f16d0470c1f7cc2f9bdaf75f2b9b66283075d94b4c440e", size = 4214810 }, + { url = "https://files.pythonhosted.org/packages/f0/d8/d82301bd084e65ef17e19fae9a2d44e37c15d9bd575a635d2ddff680845d/mqt_core-3.0.0b4-cp312-cp312-macosx_10_15_x86_64.whl", hash = "sha256:c76aa34d9503a65f306b4891418a85023058d088bd1eed5dd382d49ce14f63f1", size = 3045270 }, + { url = "https://files.pythonhosted.org/packages/40/f4/bac7c225193a310b471895f1eba03169e1597be3c5f5213c61c7b10ad305/mqt_core-3.0.0b4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2f9f22ecfd4dcaa872c1ada0da649edbeec800b8b17fa27df1582fd89e9e6126", size = 2783070 }, + { url = "https://files.pythonhosted.org/packages/9a/e6/d657c9aa86abd6ac101ba5a88a7f389915d3dbe4a0ff44677c989154f164/mqt_core-3.0.0b4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:79f30fa26a39c982017044f3ba8ce540c50d28d2ba0f576a9ac68e1922295182", size = 3290848 }, + { url = "https://files.pythonhosted.org/packages/75/9e/9afd56965521e987aac47a37d1840c7d89ee01481c08ccb689549283a525/mqt_core-3.0.0b4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:56068a232e09ce9456bba98ec89fcf8b1edfa6d113b20fdc966fe93e08a5c256", size = 3470619 }, + { url = "https://files.pythonhosted.org/packages/32/3c/afeb42290e3cc5fdc0c0ad3578a02967805e5572b9dc145bc2ee704b835f/mqt_core-3.0.0b4-cp312-cp312-win_amd64.whl", hash = "sha256:b23553077eee1bb80471551c3a57b5a17e32431b70b2222e6391adc2d2baf1a6", size = 4215470 }, + { url = "https://files.pythonhosted.org/packages/31/ae/b024148492716faa93d5cc2f51b5162c4b228cea75446c40c86d03e1dbd4/mqt_core-3.0.0b4-cp313-cp313-macosx_10_15_x86_64.whl", hash = "sha256:18f2e247c11e11830547a874110aa91d9e70f07249f968809d2315986fd65e23", size = 3045229 }, + { url = "https://files.pythonhosted.org/packages/d2/02/d51336935a0d00744c0e348c85e15322931bca9613c10f112e0a9c33c1be/mqt_core-3.0.0b4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:51684f2ecf6b9eef31e8ed18a9df9a7198d3f723d7894190d5f06d159b2ddb83", size = 2783187 }, + { url = "https://files.pythonhosted.org/packages/5c/b2/78d632077532b45f9b8c868a1d883f4028c3d64146c408817a57ee4c524c/mqt_core-3.0.0b4-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d35b1909bbacf10a03bf8966a3c8b5e129186faf6f34cd4c4d4ac2cdc4eeedd1", size = 3290853 }, + { url = "https://files.pythonhosted.org/packages/fe/b3/3445ffdbbdb17c6e6007a78ea772a1dbf623214237057693c58f8c999600/mqt_core-3.0.0b4-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:87928e188d164622ae21d55ade487e244b5c62845a7af2d621f9788ce1799fc6", size = 3470594 }, + { url = "https://files.pythonhosted.org/packages/86/6a/ef64a71376646e7c4678d94c72900a7dd775379df9b5555a0205e58bb023/mqt_core-3.0.0b4-cp313-cp313-win_amd64.whl", hash = "sha256:8c7948cffeffaee5bbe542c36a6ad834ea49378bf93960f073907807d3c61a91", size = 4215428 }, + { url = "https://files.pythonhosted.org/packages/46/8e/5ff8a9ef2d9034c40cde4426774e8580a81d8b3c1144362884d7131cd475/mqt_core-3.0.0b4-cp313-cp313t-macosx_10_15_x86_64.whl", hash = "sha256:fdc9d0222555e4a023cd4c63b59ee9cfee951c1b95e49a237fc97fda08913afb", size = 3058933 }, + { url = "https://files.pythonhosted.org/packages/60/69/c0dbdf78ddd9ed5fe4373432dbd113bc15adf63c5824c63ead02e0aba2bf/mqt_core-3.0.0b4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:850e3b65fe40e017870860afd9efb6e4e3f38ac35f68613eb57e62c31f31b143", size = 2789993 }, + { url = "https://files.pythonhosted.org/packages/14/5d/2e3c4a28b0e6590a9296724829574651ca7551ca2d0f7d1a97587ae769f6/mqt_core-3.0.0b4-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3d7e11e5ebf95ea75a12d6edb5fa74516224e1f326d261765b7e0b103aea5f10", size = 3292727 }, + { url = "https://files.pythonhosted.org/packages/df/44/06e960929302f51ec30ba420ec2f9454cfda0b0fab932bf6856b43796232/mqt_core-3.0.0b4-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:96fc9f2e8c90f3ad733415473912e40e98206750007f4a5e8eb00cae03071b00", size = 3472947 }, + { url = "https://files.pythonhosted.org/packages/24/8a/10c05690f0ef991022b013e6396c663c7d205c06682304f063bf5d6f99e1/mqt_core-3.0.0b4-cp313-cp313t-win_amd64.whl", hash = "sha256:7f78c84f44004a41d17c9d7339fdaf522cb24cdfaaa3e43593fb39f467565ee8", size = 4238678 }, + { url = "https://files.pythonhosted.org/packages/b4/ed/fc03123bf5ae4c54c292f058fc301c9bffa5b63379092bb59c890ebc390c/mqt_core-3.0.0b4-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:b713b78f361f8822452e34dc3a75d58285caaa759177b0a7b469d2027994c0af", size = 3012739 }, + { url = "https://files.pythonhosted.org/packages/a7/5e/295e19d9be2a9a1b23108a3e0bcbcdd500ab35a466213a9166293eabcc30/mqt_core-3.0.0b4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6dddd6883b1d53906aef8eabf3d324109820f7c63d7cdfe207b8729c7f207233", size = 2755534 }, + { url = "https://files.pythonhosted.org/packages/01/a1/99301e3f669bfbc76b99466034c61a02424f315146b1d66fcccf208c71b8/mqt_core-3.0.0b4-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a273ff370273c71c3bd2aae237706e6c2cf4efb18962133927494398fdb56647", size = 3290442 }, + { url = "https://files.pythonhosted.org/packages/be/ff/874fb5c85a09708b1a6f8c1b8e16644af8feaf39fcf9a8cd12e46424f372/mqt_core-3.0.0b4-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fccbe5c7535125aa028405ce1531a9138b07a245e0d11af78c027ced4950e23f", size = 3470857 }, + { url = "https://files.pythonhosted.org/packages/be/5e/02bc6b3fcf6372573151c6d424461797db7fcc86ca8955888510d442ccc0/mqt_core-3.0.0b4-cp39-cp39-win_amd64.whl", hash = "sha256:f3edaa12e5eb40e1253a5a6ecb0c38cb0c39414fdca3ac726db337a6140ad6a2", size = 4214847 }, +] + [[package]] name = "mqt-qcec" source = { editable = "." } dependencies = [ { name = "importlib-resources", marker = "python_full_version < '3.10'" }, - { name = "qiskit", extra = ["qasm3-import"] }, + { name = "mqt-core" }, + { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "numpy", version = "2.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] +[package.optional-dependencies] +qiskit = [ + { name = "qiskit", extra = ["qasm3-import"] }, +] + [package.dev-dependencies] build = [ + { name = "mqt-core" }, { name = "pybind11" }, { name = "scikit-build-core" }, { name = "setuptools-scm" }, @@ -1341,11 +1396,12 @@ build = [ dev = [ { name = "furo" }, { name = "ipykernel" }, + { name = "mqt-core" }, { name = "nbsphinx" }, { name = "pybind11" }, { name = "pytest" }, { name = "pytest-cov" }, - { name = "qiskit", extra = ["visualization"] }, + { name = "qiskit", extra = ["qasm3-import", "visualization"] }, { name = "scikit-build-core" }, { name = "setuptools-scm" }, { name = "sphinx-autoapi" }, @@ -1361,7 +1417,7 @@ docs = [ { name = "furo" }, { name = "ipykernel" }, { name = "nbsphinx" }, - { name = "qiskit", extra = ["visualization"] }, + { name = "qiskit", extra = ["qasm3-import", "visualization"] }, { name = "setuptools-scm" }, { name = "sphinx-autoapi" }, { name = "sphinx-autodoc-typehints", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, @@ -1375,17 +1431,25 @@ docs = [ test = [ { name = "pytest" }, { name = "pytest-cov" }, + { name = "qiskit", extra = ["qasm3-import"] }, ] [package.metadata] requires-dist = [ { name = "importlib-resources", marker = "python_full_version < '3.10'", specifier = ">=5.0" }, - { name = "qiskit", extras = ["qasm3-import"], specifier = ">=1.0.0" }, + { name = "mqt-core", specifier = ">=3.0.0b4" }, + { name = "numpy", specifier = ">=1.22" }, + { name = "numpy", marker = "python_full_version >= '3.11'", specifier = ">=1.24" }, + { name = "numpy", marker = "python_full_version >= '3.12'", specifier = ">=1.26" }, + { name = "numpy", marker = "python_full_version >= '3.13'", specifier = ">=2.1" }, + { name = "qiskit", extras = ["qasm3-import"], marker = "extra == 'qiskit'", specifier = ">=1.0.0" }, { name = "typing-extensions", marker = "python_full_version < '3.11'", specifier = ">=4.2" }, ] +provides-extras = ["qiskit"] [package.metadata.requires-dev] build = [ + { name = "mqt-core", specifier = ">=3.0.0b4" }, { name = "pybind11", specifier = ">=2.13.6" }, { name = "scikit-build-core", specifier = ">=0.10.7" }, { name = "setuptools-scm", specifier = ">=8.1" }, @@ -1393,11 +1457,13 @@ build = [ dev = [ { name = "furo", specifier = ">=2024.8.6" }, { name = "ipykernel", specifier = ">=6.29.5" }, + { name = "mqt-core", specifier = ">=3.0.0b4" }, { name = "nbsphinx", specifier = ">=0.9.6" }, { name = "pybind11", specifier = ">=2.13.6" }, { name = "pytest", specifier = ">=8.3.4" }, { name = "pytest-cov", specifier = ">=6" }, - { name = "qiskit", extras = ["visualization"], specifier = ">=1.0.0" }, + { name = "qiskit", extras = ["qasm3-import"], specifier = ">=1.0.0" }, + { name = "qiskit", extras = ["qasm3-import", "visualization"], specifier = ">=1.0.0" }, { name = "scikit-build-core", specifier = ">=0.10.7" }, { name = "setuptools-scm", specifier = ">=8.1" }, { name = "sphinx-autoapi", specifier = ">=3.4.0" }, @@ -1412,7 +1478,7 @@ docs = [ { name = "furo", specifier = ">=2024.8.6" }, { name = "ipykernel", specifier = ">=6.29.5" }, { name = "nbsphinx", specifier = ">=0.9.6" }, - { name = "qiskit", extras = ["visualization"], specifier = ">=1.0.0" }, + { name = "qiskit", extras = ["qasm3-import", "visualization"], specifier = ">=1.0.0" }, { name = "setuptools-scm", specifier = ">=8.1" }, { name = "sphinx-autoapi", specifier = ">=3.4.0" }, { name = "sphinx-autodoc-typehints", specifier = ">=2.3.0" }, @@ -1425,6 +1491,7 @@ docs = [ test = [ { name = "pytest", specifier = ">=8.3.4" }, { name = "pytest-cov", specifier = ">=6" }, + { name = "qiskit", extras = ["qasm3-import"], specifier = ">=1.0.0" }, ] [[package]] @@ -1444,7 +1511,7 @@ wheels = [ [[package]] name = "nbconvert" -version = "7.16.5" +version = "7.16.6" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "beautifulsoup4" }, @@ -1463,9 +1530,9 @@ dependencies = [ { name = "pygments" }, { name = "traitlets" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/46/2c/d026c0367f2be2463d4c2f5b538e28add2bc67bc13730abb7f364ae4eb8b/nbconvert-7.16.5.tar.gz", hash = "sha256:c83467bb5777fdfaac5ebbb8e864f300b277f68692ecc04d6dab72f2d8442344", size = 856367 } +sdist = { url = "https://files.pythonhosted.org/packages/a3/59/f28e15fc47ffb73af68a8d9b47367a8630d76e97ae85ad18271b9db96fdf/nbconvert-7.16.6.tar.gz", hash = "sha256:576a7e37c6480da7b8465eefa66c17844243816ce1ccc372633c6b71c3c0f582", size = 857715 } wheels = [ - { url = "https://files.pythonhosted.org/packages/8f/9e/2dcc9fe00cf55d95a8deae69384e9cea61816126e345754f6c75494d32ec/nbconvert-7.16.5-py3-none-any.whl", hash = "sha256:e12eac052d6fd03040af4166c563d76e7aeead2e9aadf5356db552a1784bd547", size = 258061 }, + { url = "https://files.pythonhosted.org/packages/cc/9a/cd673b2f773a12c992f41309ef81b99da1690426bd2f96957a7ade0d3ed7/nbconvert-7.16.6-py3-none-any.whl", hash = "sha256:1375a7b67e0c2883678c48e506dc320febb57685e5ee67faa51b18a90f3a712b", size = 258525 }, ] [[package]] @@ -1567,69 +1634,70 @@ wheels = [ [[package]] name = "numpy" -version = "2.2.2" +version = "2.2.3" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.12'", + "python_full_version >= '3.13'", + "python_full_version == '3.12.*'", "python_full_version == '3.11.*'", "python_full_version == '3.10.*'", ] -sdist = { url = "https://files.pythonhosted.org/packages/ec/d0/c12ddfd3a02274be06ffc71f3efc6d0e457b0409c4481596881e748cb264/numpy-2.2.2.tar.gz", hash = "sha256:ed6906f61834d687738d25988ae117683705636936cc605be0bb208b23df4d8f", size = 20233295 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/70/2a/69033dc22d981ad21325314f8357438078f5c28310a6d89fb3833030ec8a/numpy-2.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7079129b64cb78bdc8d611d1fd7e8002c0a2565da6a47c4df8062349fee90e3e", size = 21215825 }, - { url = "https://files.pythonhosted.org/packages/31/2c/39f91e00bbd3d5639b027ac48c55dc5f2992bd2b305412d26be4c830862a/numpy-2.2.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2ec6c689c61df613b783aeb21f945c4cbe6c51c28cb70aae8430577ab39f163e", size = 14354996 }, - { url = "https://files.pythonhosted.org/packages/0a/2c/d468ebd253851af10de5b3e8f3418ebabfaab5f0337a75299fbeb8b8c17a/numpy-2.2.2-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:40c7ff5da22cd391944a28c6a9c638a5eef77fcf71d6e3a79e1d9d9e82752715", size = 5393621 }, - { url = "https://files.pythonhosted.org/packages/7f/f4/3d8a5a0da297034106c5de92be881aca7079cde6058934215a1de91334f6/numpy-2.2.2-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:995f9e8181723852ca458e22de5d9b7d3ba4da3f11cc1cb113f093b271d7965a", size = 6928931 }, - { url = "https://files.pythonhosted.org/packages/47/a7/029354ab56edd43dd3f5efbfad292b8844f98b93174f322f82353fa46efa/numpy-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b78ea78450fd96a498f50ee096f69c75379af5138f7881a51355ab0e11286c97", size = 14333157 }, - { url = "https://files.pythonhosted.org/packages/e3/d7/11fc594838d35c43519763310c316d4fd56f8600d3fc80a8e13e325b5c5c/numpy-2.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3fbe72d347fbc59f94124125e73fc4976a06927ebc503ec5afbfb35f193cd957", size = 16381794 }, - { url = "https://files.pythonhosted.org/packages/af/d4/dd9b19cd4aff9c79d3f54d17f8be815407520d3116004bc574948336981b/numpy-2.2.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:8e6da5cffbbe571f93588f562ed130ea63ee206d12851b60819512dd3e1ba50d", size = 15543990 }, - { url = "https://files.pythonhosted.org/packages/30/97/ab96b7650f27f684a9b1e46757a7294ecc50cab27701d05f146e9f779627/numpy-2.2.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:09d6a2032faf25e8d0cadde7fd6145118ac55d2740132c1d845f98721b5ebcfd", size = 18170896 }, - { url = "https://files.pythonhosted.org/packages/81/9b/bae9618cab20db67a2ca9d711795cad29b2ca4b73034dd3b5d05b962070a/numpy-2.2.2-cp310-cp310-win32.whl", hash = "sha256:159ff6ee4c4a36a23fe01b7c3d07bd8c14cc433d9720f977fcd52c13c0098160", size = 6573458 }, - { url = "https://files.pythonhosted.org/packages/92/9b/95678092febd14070cfb7906ea7932e71e9dd5a6ab3ee948f9ed975e905d/numpy-2.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:64bd6e1762cd7f0986a740fee4dff927b9ec2c5e4d9a28d056eb17d332158014", size = 12915812 }, - { url = "https://files.pythonhosted.org/packages/21/67/32c68756eed84df181c06528ff57e09138f893c4653448c4967311e0f992/numpy-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:642199e98af1bd2b6aeb8ecf726972d238c9877b0f6e8221ee5ab945ec8a2189", size = 21220002 }, - { url = "https://files.pythonhosted.org/packages/3b/89/f43bcad18f2b2e5814457b1c7f7b0e671d0db12c8c0e43397ab8cb1831ed/numpy-2.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6d9fc9d812c81e6168b6d405bf00b8d6739a7f72ef22a9214c4241e0dc70b323", size = 14391215 }, - { url = "https://files.pythonhosted.org/packages/9c/e6/efb8cd6122bf25e86e3dd89d9dbfec9e6861c50e8810eed77d4be59b51c6/numpy-2.2.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:c7d1fd447e33ee20c1f33f2c8e6634211124a9aabde3c617687d8b739aa69eac", size = 5391918 }, - { url = "https://files.pythonhosted.org/packages/47/e2/fccf89d64d9b47ffb242823d4e851fc9d36fa751908c9aac2807924d9b4e/numpy-2.2.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:451e854cfae0febe723077bd0cf0a4302a5d84ff25f0bfece8f29206c7bed02e", size = 6933133 }, - { url = "https://files.pythonhosted.org/packages/34/22/5ece749c0e5420a9380eef6fbf83d16a50010bd18fef77b9193d80a6760e/numpy-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd249bc894af67cbd8bad2c22e7cbcd46cf87ddfca1f1289d1e7e54868cc785c", size = 14338187 }, - { url = "https://files.pythonhosted.org/packages/5b/86/caec78829311f62afa6fa334c8dfcd79cffb4d24bcf96ee02ae4840d462b/numpy-2.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02935e2c3c0c6cbe9c7955a8efa8908dd4221d7755644c59d1bba28b94fd334f", size = 16393429 }, - { url = "https://files.pythonhosted.org/packages/c8/4e/0c25f74c88239a37924577d6ad780f3212a50f4b4b5f54f5e8c918d726bd/numpy-2.2.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a972cec723e0563aa0823ee2ab1df0cb196ed0778f173b381c871a03719d4826", size = 15559103 }, - { url = "https://files.pythonhosted.org/packages/d4/bd/d557f10fa50dc4d5871fb9606af563249b66af2fc6f99041a10e8757c6f1/numpy-2.2.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d6d6a0910c3b4368d89dde073e630882cdb266755565155bc33520283b2d9df8", size = 18182967 }, - { url = "https://files.pythonhosted.org/packages/30/e9/66cc0f66386d78ed89e45a56e2a1d051e177b6e04477c4a41cd590ef4017/numpy-2.2.2-cp311-cp311-win32.whl", hash = "sha256:860fd59990c37c3ef913c3ae390b3929d005243acca1a86facb0773e2d8d9e50", size = 6571499 }, - { url = "https://files.pythonhosted.org/packages/66/a3/4139296b481ae7304a43581046b8f0a20da6a0dfe0ee47a044cade796603/numpy-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:da1eeb460ecce8d5b8608826595c777728cdf28ce7b5a5a8c8ac8d949beadcf2", size = 12919805 }, - { url = "https://files.pythonhosted.org/packages/0c/e6/847d15770ab7a01e807bdfcd4ead5bdae57c0092b7dc83878171b6af97bb/numpy-2.2.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ac9bea18d6d58a995fac1b2cb4488e17eceeac413af014b1dd26170b766d8467", size = 20912636 }, - { url = "https://files.pythonhosted.org/packages/d1/af/f83580891577b13bd7e261416120e036d0d8fb508c8a43a73e38928b794b/numpy-2.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:23ae9f0c2d889b7b2d88a3791f6c09e2ef827c2446f1c4a3e3e76328ee4afd9a", size = 14098403 }, - { url = "https://files.pythonhosted.org/packages/2b/86/d019fb60a9d0f1d4cf04b014fe88a9135090adfadcc31c1fadbb071d7fa7/numpy-2.2.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:3074634ea4d6df66be04f6728ee1d173cfded75d002c75fac79503a880bf3825", size = 5128938 }, - { url = "https://files.pythonhosted.org/packages/7a/1b/50985edb6f1ec495a1c36452e860476f5b7ecdc3fc59ea89ccad3c4926c5/numpy-2.2.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:8ec0636d3f7d68520afc6ac2dc4b8341ddb725039de042faf0e311599f54eb37", size = 6661937 }, - { url = "https://files.pythonhosted.org/packages/f4/1b/17efd94cad1b9d605c3f8907fb06bcffc4ce4d1d14d46b95316cccccf2b9/numpy-2.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ffbb1acd69fdf8e89dd60ef6182ca90a743620957afb7066385a7bbe88dc748", size = 14049518 }, - { url = "https://files.pythonhosted.org/packages/5b/73/65d2f0b698df1731e851e3295eb29a5ab8aa06f763f7e4188647a809578d/numpy-2.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0349b025e15ea9d05c3d63f9657707a4e1d471128a3b1d876c095f328f8ff7f0", size = 16099146 }, - { url = "https://files.pythonhosted.org/packages/d5/69/308f55c0e19d4b5057b5df286c5433822e3c8039ede06d4051d96f1c2c4e/numpy-2.2.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:463247edcee4a5537841d5350bc87fe8e92d7dd0e8c71c995d2c6eecb8208278", size = 15246336 }, - { url = "https://files.pythonhosted.org/packages/f0/d8/d8d333ad0d8518d077a21aeea7b7c826eff766a2b1ce1194dea95ca0bacf/numpy-2.2.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9dd47ff0cb2a656ad69c38da850df3454da88ee9a6fde0ba79acceee0e79daba", size = 17863507 }, - { url = "https://files.pythonhosted.org/packages/82/6e/0b84ad3103ffc16d6673e63b5acbe7901b2af96c2837174c6318c98e27ab/numpy-2.2.2-cp312-cp312-win32.whl", hash = "sha256:4525b88c11906d5ab1b0ec1f290996c0020dd318af8b49acaa46f198b1ffc283", size = 6276491 }, - { url = "https://files.pythonhosted.org/packages/fc/84/7f801a42a67b9772a883223a0a1e12069a14626c81a732bd70aac57aebc1/numpy-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:5acea83b801e98541619af398cc0109ff48016955cc0818f478ee9ef1c5c3dcb", size = 12616372 }, - { url = "https://files.pythonhosted.org/packages/e1/fe/df5624001f4f5c3e0b78e9017bfab7fdc18a8d3b3d3161da3d64924dd659/numpy-2.2.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b208cfd4f5fe34e1535c08983a1a6803fdbc7a1e86cf13dd0c61de0b51a0aadc", size = 20899188 }, - { url = "https://files.pythonhosted.org/packages/a9/80/d349c3b5ed66bd3cb0214be60c27e32b90a506946857b866838adbe84040/numpy-2.2.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d0bbe7dd86dca64854f4b6ce2ea5c60b51e36dfd597300057cf473d3615f2369", size = 14113972 }, - { url = "https://files.pythonhosted.org/packages/9d/50/949ec9cbb28c4b751edfa64503f0913cbfa8d795b4a251e7980f13a8a655/numpy-2.2.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:22ea3bb552ade325530e72a0c557cdf2dea8914d3a5e1fecf58fa5dbcc6f43cd", size = 5114294 }, - { url = "https://files.pythonhosted.org/packages/8d/f3/399c15629d5a0c68ef2aa7621d430b2be22034f01dd7f3c65a9c9666c445/numpy-2.2.2-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:128c41c085cab8a85dc29e66ed88c05613dccf6bc28b3866cd16050a2f5448be", size = 6648426 }, - { url = "https://files.pythonhosted.org/packages/2c/03/c72474c13772e30e1bc2e558cdffd9123c7872b731263d5648b5c49dd459/numpy-2.2.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:250c16b277e3b809ac20d1f590716597481061b514223c7badb7a0f9993c7f84", size = 14045990 }, - { url = "https://files.pythonhosted.org/packages/83/9c/96a9ab62274ffafb023f8ee08c88d3d31ee74ca58869f859db6845494fa6/numpy-2.2.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0c8854b09bc4de7b041148d8550d3bd712b5c21ff6a8ed308085f190235d7ff", size = 16096614 }, - { url = "https://files.pythonhosted.org/packages/d5/34/cd0a735534c29bec7093544b3a509febc9b0df77718a9b41ffb0809c9f46/numpy-2.2.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b6fb9c32a91ec32a689ec6410def76443e3c750e7cfc3fb2206b985ffb2b85f0", size = 15242123 }, - { url = "https://files.pythonhosted.org/packages/5e/6d/541717a554a8f56fa75e91886d9b79ade2e595918690eb5d0d3dbd3accb9/numpy-2.2.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:57b4012e04cc12b78590a334907e01b3a85efb2107df2b8733ff1ed05fce71de", size = 17859160 }, - { url = "https://files.pythonhosted.org/packages/b9/a5/fbf1f2b54adab31510728edd06a05c1b30839f37cf8c9747cb85831aaf1b/numpy-2.2.2-cp313-cp313-win32.whl", hash = "sha256:4dbd80e453bd34bd003b16bd802fac70ad76bd463f81f0c518d1245b1c55e3d9", size = 6273337 }, - { url = "https://files.pythonhosted.org/packages/56/e5/01106b9291ef1d680f82bc47d0c5b5e26dfed15b0754928e8f856c82c881/numpy-2.2.2-cp313-cp313-win_amd64.whl", hash = "sha256:5a8c863ceacae696aff37d1fd636121f1a512117652e5dfb86031c8d84836369", size = 12609010 }, - { url = "https://files.pythonhosted.org/packages/9f/30/f23d9876de0f08dceb707c4dcf7f8dd7588266745029debb12a3cdd40be6/numpy-2.2.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:b3482cb7b3325faa5f6bc179649406058253d91ceda359c104dac0ad320e1391", size = 20924451 }, - { url = "https://files.pythonhosted.org/packages/6a/ec/6ea85b2da9d5dfa1dbb4cb3c76587fc8ddcae580cb1262303ab21c0926c4/numpy-2.2.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:9491100aba630910489c1d0158034e1c9a6546f0b1340f716d522dc103788e39", size = 14122390 }, - { url = "https://files.pythonhosted.org/packages/68/05/bfbdf490414a7dbaf65b10c78bc243f312c4553234b6d91c94eb7c4b53c2/numpy-2.2.2-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:41184c416143defa34cc8eb9d070b0a5ba4f13a0fa96a709e20584638254b317", size = 5156590 }, - { url = "https://files.pythonhosted.org/packages/f7/ec/fe2e91b2642b9d6544518388a441bcd65c904cea38d9ff998e2e8ebf808e/numpy-2.2.2-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:7dca87ca328f5ea7dafc907c5ec100d187911f94825f8700caac0b3f4c384b49", size = 6671958 }, - { url = "https://files.pythonhosted.org/packages/b1/6f/6531a78e182f194d33ee17e59d67d03d0d5a1ce7f6be7343787828d1bd4a/numpy-2.2.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bc61b307655d1a7f9f4b043628b9f2b721e80839914ede634e3d485913e1fb2", size = 14019950 }, - { url = "https://files.pythonhosted.org/packages/e1/fb/13c58591d0b6294a08cc40fcc6b9552d239d773d520858ae27f39997f2ae/numpy-2.2.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fad446ad0bc886855ddf5909cbf8cb5d0faa637aaa6277fb4b19ade134ab3c7", size = 16079759 }, - { url = "https://files.pythonhosted.org/packages/2c/f2/f2f8edd62abb4b289f65a7f6d1f3650273af00b91b7267a2431be7f1aec6/numpy-2.2.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:149d1113ac15005652e8d0d3f6fd599360e1a708a4f98e43c9c77834a28238cb", size = 15226139 }, - { url = "https://files.pythonhosted.org/packages/aa/29/14a177f1a90b8ad8a592ca32124ac06af5eff32889874e53a308f850290f/numpy-2.2.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:106397dbbb1896f99e044efc90360d098b3335060375c26aa89c0d8a97c5f648", size = 17856316 }, - { url = "https://files.pythonhosted.org/packages/95/03/242ae8d7b97f4e0e4ab8dd51231465fb23ed5e802680d629149722e3faf1/numpy-2.2.2-cp313-cp313t-win32.whl", hash = "sha256:0eec19f8af947a61e968d5429f0bd92fec46d92b0008d0a6685b40d6adf8a4f4", size = 6329134 }, - { url = "https://files.pythonhosted.org/packages/80/94/cd9e9b04012c015cb6320ab3bf43bc615e248dddfeb163728e800a5d96f0/numpy-2.2.2-cp313-cp313t-win_amd64.whl", hash = "sha256:97b974d3ba0fb4612b77ed35d7627490e8e3dff56ab41454d9e8b23448940576", size = 12696208 }, - { url = "https://files.pythonhosted.org/packages/96/7e/1dd770ee68916ed358991ab62c2cc353ffd98d0b75b901d52183ca28e8bb/numpy-2.2.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b0531f0b0e07643eb089df4c509d30d72c9ef40defa53e41363eca8a8cc61495", size = 21047291 }, - { url = "https://files.pythonhosted.org/packages/d1/3c/ccd08578dc532a8e6927952339d4a02682b776d5e85be49ed0760308433e/numpy-2.2.2-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:e9e82dcb3f2ebbc8cb5ce1102d5f1c5ed236bf8a11730fb45ba82e2841ec21df", size = 6792494 }, - { url = "https://files.pythonhosted.org/packages/7c/28/8754b9aee4f97199f9a047f73bb644b5a2014994a6d7b061ba67134a42de/numpy-2.2.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0d4142eb40ca6f94539e4db929410f2a46052a0fe7a2c1c59f6179c39938d2a", size = 16197312 }, - { url = "https://files.pythonhosted.org/packages/26/96/deb93f871f401045a684ca08a009382b247d14996d7a94fea6aa43c67b94/numpy-2.2.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:356ca982c188acbfa6af0d694284d8cf20e95b1c3d0aefa8929376fea9146f60", size = 12822674 }, +sdist = { url = "https://files.pythonhosted.org/packages/fb/90/8956572f5c4ae52201fdec7ba2044b2c882832dcec7d5d0922c9e9acf2de/numpy-2.2.3.tar.gz", hash = "sha256:dbdc15f0c81611925f382dfa97b3bd0bc2c1ce19d4fe50482cb0ddc12ba30020", size = 20262700 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5e/e1/1816d5d527fa870b260a1c2c5904d060caad7515637bd54f495a5ce13ccd/numpy-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:cbc6472e01952d3d1b2772b720428f8b90e2deea8344e854df22b0618e9cce71", size = 21232911 }, + { url = "https://files.pythonhosted.org/packages/29/46/9f25dc19b359f10c0e52b6bac25d3181eb1f4b4d04c9846a32cf5ea52762/numpy-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cdfe0c22692a30cd830c0755746473ae66c4a8f2e7bd508b35fb3b6a0813d787", size = 14371955 }, + { url = "https://files.pythonhosted.org/packages/72/d7/de941296e6b09a5c81d3664ad912f1496a0ecdd2f403318e5e35604ff70f/numpy-2.2.3-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:e37242f5324ffd9f7ba5acf96d774f9276aa62a966c0bad8dae692deebec7716", size = 5410476 }, + { url = "https://files.pythonhosted.org/packages/36/ce/55f685995110f8a268fdca0f198c9a84fa87b39512830965cc1087af6391/numpy-2.2.3-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:95172a21038c9b423e68be78fd0be6e1b97674cde269b76fe269a5dfa6fadf0b", size = 6945730 }, + { url = "https://files.pythonhosted.org/packages/4f/84/abdb9f6e22576d89c259401c3234d4755b322539491bbcffadc8bcb120d3/numpy-2.2.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d5b47c440210c5d1d67e1cf434124e0b5c395eee1f5806fdd89b553ed1acd0a3", size = 14350752 }, + { url = "https://files.pythonhosted.org/packages/e9/88/3870cfa9bef4dffb3a326507f430e6007eeac258ebeef6b76fc542aef66d/numpy-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0391ea3622f5c51a2e29708877d56e3d276827ac5447d7f45e9bc4ade8923c52", size = 16399386 }, + { url = "https://files.pythonhosted.org/packages/02/10/3f629682dd0b457525c131945329c4e81e2dadeb11256e6ce4c9a1a6fb41/numpy-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f6b3dfc7661f8842babd8ea07e9897fe3d9b69a1d7e5fbb743e4160f9387833b", size = 15561826 }, + { url = "https://files.pythonhosted.org/packages/da/18/fd35673ba9751eba449d4ce5d24d94e3b612cdbfba79348da71488c0b7ac/numpy-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1ad78ce7f18ce4e7df1b2ea4019b5817a2f6a8a16e34ff2775f646adce0a5027", size = 18188593 }, + { url = "https://files.pythonhosted.org/packages/ce/4c/c0f897b580ea59484b4cc96a441fea50333b26675a60a1421bc912268b5f/numpy-2.2.3-cp310-cp310-win32.whl", hash = "sha256:5ebeb7ef54a7be11044c33a17b2624abe4307a75893c001a4800857956b41094", size = 6590421 }, + { url = "https://files.pythonhosted.org/packages/e5/5b/aaabbfc7060c5c8f0124c5deb5e114a3b413a548bbc64e372c5b5db36165/numpy-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:596140185c7fa113563c67c2e894eabe0daea18cf8e33851738c19f70ce86aeb", size = 12925667 }, + { url = "https://files.pythonhosted.org/packages/96/86/453aa3949eab6ff54e2405f9cb0c01f756f031c3dc2a6d60a1d40cba5488/numpy-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:16372619ee728ed67a2a606a614f56d3eabc5b86f8b615c79d01957062826ca8", size = 21237256 }, + { url = "https://files.pythonhosted.org/packages/20/c3/93ecceadf3e155d6a9e4464dd2392d8d80cf436084c714dc8535121c83e8/numpy-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5521a06a3148686d9269c53b09f7d399a5725c47bbb5b35747e1cb76326b714b", size = 14408049 }, + { url = "https://files.pythonhosted.org/packages/8d/29/076999b69bd9264b8df5e56f2be18da2de6b2a2d0e10737e5307592e01de/numpy-2.2.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:7c8dde0ca2f77828815fd1aedfdf52e59071a5bae30dac3b4da2a335c672149a", size = 5408655 }, + { url = "https://files.pythonhosted.org/packages/e2/a7/b14f0a73eb0fe77cb9bd5b44534c183b23d4229c099e339c522724b02678/numpy-2.2.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:77974aba6c1bc26e3c205c2214f0d5b4305bdc719268b93e768ddb17e3fdd636", size = 6949996 }, + { url = "https://files.pythonhosted.org/packages/72/2f/8063da0616bb0f414b66dccead503bd96e33e43685c820e78a61a214c098/numpy-2.2.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d42f9c36d06440e34226e8bd65ff065ca0963aeecada587b937011efa02cdc9d", size = 14355789 }, + { url = "https://files.pythonhosted.org/packages/e6/d7/3cd47b00b8ea95ab358c376cf5602ad21871410950bc754cf3284771f8b6/numpy-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2712c5179f40af9ddc8f6727f2bd910ea0eb50206daea75f58ddd9fa3f715bb", size = 16411356 }, + { url = "https://files.pythonhosted.org/packages/27/c0/a2379e202acbb70b85b41483a422c1e697ff7eee74db642ca478de4ba89f/numpy-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c8b0451d2ec95010d1db8ca733afc41f659f425b7f608af569711097fd6014e2", size = 15576770 }, + { url = "https://files.pythonhosted.org/packages/bc/63/a13ee650f27b7999e5b9e1964ae942af50bb25606d088df4229283eda779/numpy-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d9b4a8148c57ecac25a16b0e11798cbe88edf5237b0df99973687dd866f05e1b", size = 18200483 }, + { url = "https://files.pythonhosted.org/packages/4c/87/e71f89935e09e8161ac9c590c82f66d2321eb163893a94af749dfa8a3cf8/numpy-2.2.3-cp311-cp311-win32.whl", hash = "sha256:1f45315b2dc58d8a3e7754fe4e38b6fce132dab284a92851e41b2b344f6441c5", size = 6588415 }, + { url = "https://files.pythonhosted.org/packages/b9/c6/cd4298729826af9979c5f9ab02fcaa344b82621e7c49322cd2d210483d3f/numpy-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f48ba6f6c13e5e49f3d3efb1b51c8193215c42ac82610a04624906a9270be6f", size = 12929604 }, + { url = "https://files.pythonhosted.org/packages/43/ec/43628dcf98466e087812142eec6d1c1a6c6bdfdad30a0aa07b872dc01f6f/numpy-2.2.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:12c045f43b1d2915eca6b880a7f4a256f59d62df4f044788c8ba67709412128d", size = 20929458 }, + { url = "https://files.pythonhosted.org/packages/9b/c0/2f4225073e99a5c12350954949ed19b5d4a738f541d33e6f7439e33e98e4/numpy-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:87eed225fd415bbae787f93a457af7f5990b92a334e346f72070bf569b9c9c95", size = 14115299 }, + { url = "https://files.pythonhosted.org/packages/ca/fa/d2c5575d9c734a7376cc1592fae50257ec95d061b27ee3dbdb0b3b551eb2/numpy-2.2.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:712a64103d97c404e87d4d7c47fb0c7ff9acccc625ca2002848e0d53288b90ea", size = 5145723 }, + { url = "https://files.pythonhosted.org/packages/eb/dc/023dad5b268a7895e58e791f28dc1c60eb7b6c06fcbc2af8538ad069d5f3/numpy-2.2.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:a5ae282abe60a2db0fd407072aff4599c279bcd6e9a2475500fc35b00a57c532", size = 6678797 }, + { url = "https://files.pythonhosted.org/packages/3f/19/bcd641ccf19ac25abb6fb1dcd7744840c11f9d62519d7057b6ab2096eb60/numpy-2.2.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5266de33d4c3420973cf9ae3b98b54a2a6d53a559310e3236c4b2b06b9c07d4e", size = 14067362 }, + { url = "https://files.pythonhosted.org/packages/39/04/78d2e7402fb479d893953fb78fa7045f7deb635ec095b6b4f0260223091a/numpy-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b787adbf04b0db1967798dba8da1af07e387908ed1553a0d6e74c084d1ceafe", size = 16116679 }, + { url = "https://files.pythonhosted.org/packages/d0/a1/e90f7aa66512be3150cb9d27f3d9995db330ad1b2046474a13b7040dfd92/numpy-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:34c1b7e83f94f3b564b35f480f5652a47007dd91f7c839f404d03279cc8dd021", size = 15264272 }, + { url = "https://files.pythonhosted.org/packages/dc/b6/50bd027cca494de4fa1fc7bf1662983d0ba5f256fa0ece2c376b5eb9b3f0/numpy-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4d8335b5f1b6e2bce120d55fb17064b0262ff29b459e8493d1785c18ae2553b8", size = 17880549 }, + { url = "https://files.pythonhosted.org/packages/96/30/f7bf4acb5f8db10a96f73896bdeed7a63373137b131ca18bd3dab889db3b/numpy-2.2.3-cp312-cp312-win32.whl", hash = "sha256:4d9828d25fb246bedd31e04c9e75714a4087211ac348cb39c8c5f99dbb6683fe", size = 6293394 }, + { url = "https://files.pythonhosted.org/packages/42/6e/55580a538116d16ae7c9aa17d4edd56e83f42126cb1dfe7a684da7925d2c/numpy-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:83807d445817326b4bcdaaaf8e8e9f1753da04341eceec705c001ff342002e5d", size = 12626357 }, + { url = "https://files.pythonhosted.org/packages/0e/8b/88b98ed534d6a03ba8cddb316950fe80842885709b58501233c29dfa24a9/numpy-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7bfdb06b395385ea9b91bf55c1adf1b297c9fdb531552845ff1d3ea6e40d5aba", size = 20916001 }, + { url = "https://files.pythonhosted.org/packages/d9/b4/def6ec32c725cc5fbd8bdf8af80f616acf075fe752d8a23e895da8c67b70/numpy-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:23c9f4edbf4c065fddb10a4f6e8b6a244342d95966a48820c614891e5059bb50", size = 14130721 }, + { url = "https://files.pythonhosted.org/packages/20/60/70af0acc86495b25b672d403e12cb25448d79a2b9658f4fc45e845c397a8/numpy-2.2.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:a0c03b6be48aaf92525cccf393265e02773be8fd9551a2f9adbe7db1fa2b60f1", size = 5130999 }, + { url = "https://files.pythonhosted.org/packages/2e/69/d96c006fb73c9a47bcb3611417cf178049aae159afae47c48bd66df9c536/numpy-2.2.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:2376e317111daa0a6739e50f7ee2a6353f768489102308b0d98fcf4a04f7f3b5", size = 6665299 }, + { url = "https://files.pythonhosted.org/packages/5a/3f/d8a877b6e48103733ac224ffa26b30887dc9944ff95dffdfa6c4ce3d7df3/numpy-2.2.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8fb62fe3d206d72fe1cfe31c4a1106ad2b136fcc1606093aeab314f02930fdf2", size = 14064096 }, + { url = "https://files.pythonhosted.org/packages/e4/43/619c2c7a0665aafc80efca465ddb1f260287266bdbdce517396f2f145d49/numpy-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:52659ad2534427dffcc36aac76bebdd02b67e3b7a619ac67543bc9bfe6b7cdb1", size = 16114758 }, + { url = "https://files.pythonhosted.org/packages/d9/79/ee4fe4f60967ccd3897aa71ae14cdee9e3c097e3256975cc9575d393cb42/numpy-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1b416af7d0ed3271cad0f0a0d0bee0911ed7eba23e66f8424d9f3dfcdcae1304", size = 15259880 }, + { url = "https://files.pythonhosted.org/packages/fb/c8/8b55cf05db6d85b7a7d414b3d1bd5a740706df00bfa0824a08bf041e52ee/numpy-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1402da8e0f435991983d0a9708b779f95a8c98c6b18a171b9f1be09005e64d9d", size = 17876721 }, + { url = "https://files.pythonhosted.org/packages/21/d6/b4c2f0564b7dcc413117b0ffbb818d837e4b29996b9234e38b2025ed24e7/numpy-2.2.3-cp313-cp313-win32.whl", hash = "sha256:136553f123ee2951bfcfbc264acd34a2fc2f29d7cdf610ce7daf672b6fbaa693", size = 6290195 }, + { url = "https://files.pythonhosted.org/packages/97/e7/7d55a86719d0de7a6a597949f3febefb1009435b79ba510ff32f05a8c1d7/numpy-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:5b732c8beef1d7bc2d9e476dbba20aaff6167bf205ad9aa8d30913859e82884b", size = 12619013 }, + { url = "https://files.pythonhosted.org/packages/a6/1f/0b863d5528b9048fd486a56e0b97c18bf705e88736c8cea7239012119a54/numpy-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:435e7a933b9fda8126130b046975a968cc2d833b505475e588339e09f7672890", size = 20944621 }, + { url = "https://files.pythonhosted.org/packages/aa/99/b478c384f7a0a2e0736177aafc97dc9152fc036a3fdb13f5a3ab225f1494/numpy-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:7678556eeb0152cbd1522b684dcd215250885993dd00adb93679ec3c0e6e091c", size = 14142502 }, + { url = "https://files.pythonhosted.org/packages/fb/61/2d9a694a0f9cd0a839501d362de2a18de75e3004576a3008e56bdd60fcdb/numpy-2.2.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:2e8da03bd561504d9b20e7a12340870dfc206c64ea59b4cfee9fceb95070ee94", size = 5176293 }, + { url = "https://files.pythonhosted.org/packages/33/35/51e94011b23e753fa33f891f601e5c1c9a3d515448659b06df9d40c0aa6e/numpy-2.2.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:c9aa4496fd0e17e3843399f533d62857cef5900facf93e735ef65aa4bbc90ef0", size = 6691874 }, + { url = "https://files.pythonhosted.org/packages/ff/cf/06e37619aad98a9d03bd8d65b8e3041c3a639be0f5f6b0a0e2da544538d4/numpy-2.2.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4ca91d61a4bf61b0f2228f24bbfa6a9facd5f8af03759fe2a655c50ae2c6610", size = 14036826 }, + { url = "https://files.pythonhosted.org/packages/0c/93/5d7d19955abd4d6099ef4a8ee006f9ce258166c38af259f9e5558a172e3e/numpy-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:deaa09cd492e24fd9b15296844c0ad1b3c976da7907e1c1ed3a0ad21dded6f76", size = 16096567 }, + { url = "https://files.pythonhosted.org/packages/af/53/d1c599acf7732d81f46a93621dab6aa8daad914b502a7a115b3f17288ab2/numpy-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:246535e2f7496b7ac85deffe932896a3577be7af8fb7eebe7146444680297e9a", size = 15242514 }, + { url = "https://files.pythonhosted.org/packages/53/43/c0f5411c7b3ea90adf341d05ace762dad8cb9819ef26093e27b15dd121ac/numpy-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:daf43a3d1ea699402c5a850e5313680ac355b4adc9770cd5cfc2940e7861f1bf", size = 17872920 }, + { url = "https://files.pythonhosted.org/packages/5b/57/6dbdd45ab277aff62021cafa1e15f9644a52f5b5fc840bc7591b4079fb58/numpy-2.2.3-cp313-cp313t-win32.whl", hash = "sha256:cf802eef1f0134afb81fef94020351be4fe1d6681aadf9c5e862af6602af64ef", size = 6346584 }, + { url = "https://files.pythonhosted.org/packages/97/9b/484f7d04b537d0a1202a5ba81c6f53f1846ae6c63c2127f8df869ed31342/numpy-2.2.3-cp313-cp313t-win_amd64.whl", hash = "sha256:aee2512827ceb6d7f517c8b85aa5d3923afe8fc7a57d028cffcd522f1c6fd082", size = 12706784 }, + { url = "https://files.pythonhosted.org/packages/0a/b5/a7839f5478be8f859cb880f13d90fcfe4b0ec7a9ebaff2bcc30d96760596/numpy-2.2.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:3c2ec8a0f51d60f1e9c0c5ab116b7fc104b165ada3f6c58abf881cb2eb16044d", size = 21064244 }, + { url = "https://files.pythonhosted.org/packages/29/e8/5da32ffcaa7a72f7ecd82f90c062140a061eb823cb88e90279424e515cf4/numpy-2.2.3-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:ed2cf9ed4e8ebc3b754d398cba12f24359f018b416c380f577bbae112ca52fc9", size = 6809418 }, + { url = "https://files.pythonhosted.org/packages/a8/a9/68aa7076c7656a7308a0f73d0a2ced8c03f282c9fd98fa7ce21c12634087/numpy-2.2.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39261798d208c3095ae4f7bc8eaeb3481ea8c6e03dc48028057d3cbdbdb8937e", size = 16215461 }, + { url = "https://files.pythonhosted.org/packages/17/7f/d322a4125405920401450118dbdc52e0384026bd669939484670ce8b2ab9/numpy-2.2.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:783145835458e60fa97afac25d511d00a1eca94d4a8f3ace9fe2043003c678e4", size = 12839607 }, ] [[package]] @@ -1662,7 +1730,7 @@ version = "2.2.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "numpy", version = "2.2.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "numpy", version = "2.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "python-dateutil" }, { name = "pytz" }, { name = "tzdata" }, @@ -1741,11 +1809,14 @@ wheels = [ [[package]] name = "pbr" -version = "6.1.0" +version = "6.1.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b2/35/80cf8f6a4f34017a7fe28242dc45161a1baa55c41563c354d8147e8358b2/pbr-6.1.0.tar.gz", hash = "sha256:788183e382e3d1d7707db08978239965e8b9e4e5ed42669bf4758186734d5f24", size = 124032 } +dependencies = [ + { name = "setuptools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/01/d2/510cc0d218e753ba62a1bc1434651db3cd797a9716a0a66cc714cb4f0935/pbr-6.1.1.tar.gz", hash = "sha256:93ea72ce6989eb2eed99d0f75721474f69ad88128afdef5ac377eb797c4bf76b", size = 125702 } wheels = [ - { url = "https://files.pythonhosted.org/packages/1d/44/6a65ecd630393d47ad3e7d5354768cb7f9a10b3a0eb2cd8c6f52b28211ee/pbr-6.1.0-py2.py3-none-any.whl", hash = "sha256:a776ae228892d8013649c0aeccbb3d5f99ee15e005a4cbb7e61d55a067b28a2a", size = 108529 }, + { url = "https://files.pythonhosted.org/packages/47/ac/684d71315abc7b1214d59304e23a982472967f6bf4bde5a98f1503f648dc/pbr-6.1.1-py2.py3-none-any.whl", hash = "sha256:38d4daea5d9fa63b3f626131b9d34947fd0c8be9b05a29276870580050a25a76", size = 108997 }, ] [[package]] @@ -1870,17 +1941,17 @@ wheels = [ [[package]] name = "psutil" -version = "6.1.1" +version = "7.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1f/5a/07871137bb752428aa4b659f910b399ba6f291156bdea939be3e96cae7cb/psutil-6.1.1.tar.gz", hash = "sha256:cf8496728c18f2d0b45198f06895be52f36611711746b7f30c464b422b50e2f5", size = 508502 } +sdist = { url = "https://files.pythonhosted.org/packages/2a/80/336820c1ad9286a4ded7e845b2eccfcb27851ab8ac6abece774a6ff4d3de/psutil-7.0.0.tar.gz", hash = "sha256:7be9c3eba38beccb6495ea33afd982a44074b78f28c434a1f51cc07fd315c456", size = 497003 } wheels = [ - { url = "https://files.pythonhosted.org/packages/61/99/ca79d302be46f7bdd8321089762dd4476ee725fce16fc2b2e1dbba8cac17/psutil-6.1.1-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:fc0ed7fe2231a444fc219b9c42d0376e0a9a1a72f16c5cfa0f68d19f1a0663e8", size = 247511 }, - { url = "https://files.pythonhosted.org/packages/0b/6b/73dbde0dd38f3782905d4587049b9be64d76671042fdcaf60e2430c6796d/psutil-6.1.1-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:0bdd4eab935276290ad3cb718e9809412895ca6b5b334f5a9111ee6d9aff9377", size = 248985 }, - { url = "https://files.pythonhosted.org/packages/17/38/c319d31a1d3f88c5b79c68b3116c129e5133f1822157dd6da34043e32ed6/psutil-6.1.1-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b6e06c20c05fe95a3d7302d74e7097756d4ba1247975ad6905441ae1b5b66003", size = 284488 }, - { url = "https://files.pythonhosted.org/packages/9c/39/0f88a830a1c8a3aba27fededc642da37613c57cbff143412e3536f89784f/psutil-6.1.1-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97f7cb9921fbec4904f522d972f0c0e1f4fabbdd4e0287813b21215074a0f160", size = 287477 }, - { url = "https://files.pythonhosted.org/packages/47/da/99f4345d4ddf2845cb5b5bd0d93d554e84542d116934fde07a0c50bd4e9f/psutil-6.1.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33431e84fee02bc84ea36d9e2c4a6d395d479c9dd9bba2376c1f6ee8f3a4e0b3", size = 289017 }, - { url = "https://files.pythonhosted.org/packages/38/53/bd755c2896f4461fd4f36fa6a6dcb66a88a9e4b9fd4e5b66a77cf9d4a584/psutil-6.1.1-cp37-abi3-win32.whl", hash = "sha256:eaa912e0b11848c4d9279a93d7e2783df352b082f40111e078388701fd479e53", size = 250602 }, - { url = "https://files.pythonhosted.org/packages/7b/d7/7831438e6c3ebbfa6e01a927127a6cb42ad3ab844247f3c5b96bea25d73d/psutil-6.1.1-cp37-abi3-win_amd64.whl", hash = "sha256:f35cfccb065fff93529d2afb4a2e89e363fe63ca1e4a5da22b603a85833c2649", size = 254444 }, + { url = "https://files.pythonhosted.org/packages/ed/e6/2d26234410f8b8abdbf891c9da62bee396583f713fb9f3325a4760875d22/psutil-7.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:101d71dc322e3cffd7cea0650b09b3d08b8e7c4109dd6809fe452dfd00e58b25", size = 238051 }, + { url = "https://files.pythonhosted.org/packages/04/8b/30f930733afe425e3cbfc0e1468a30a18942350c1a8816acfade80c005c4/psutil-7.0.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:39db632f6bb862eeccf56660871433e111b6ea58f2caea825571951d4b6aa3da", size = 239535 }, + { url = "https://files.pythonhosted.org/packages/2a/ed/d362e84620dd22876b55389248e522338ed1bf134a5edd3b8231d7207f6d/psutil-7.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fcee592b4c6f146991ca55919ea3d1f8926497a713ed7faaf8225e174581e91", size = 275004 }, + { url = "https://files.pythonhosted.org/packages/bf/b9/b0eb3f3cbcb734d930fdf839431606844a825b23eaf9a6ab371edac8162c/psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b1388a4f6875d7e2aff5c4ca1cc16c545ed41dd8bb596cefea80111db353a34", size = 277986 }, + { url = "https://files.pythonhosted.org/packages/eb/a2/709e0fe2f093556c17fbafda93ac032257242cabcc7ff3369e2cb76a97aa/psutil-7.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5f098451abc2828f7dc6b58d44b532b22f2088f4999a937557b603ce72b1993", size = 279544 }, + { url = "https://files.pythonhosted.org/packages/50/e6/eecf58810b9d12e6427369784efe814a1eec0f492084ce8eb8f4d89d6d61/psutil-7.0.0-cp37-abi3-win32.whl", hash = "sha256:ba3fcef7523064a6c9da440fc4d6bd07da93ac726b5733c29027d7dc95b39d99", size = 241053 }, + { url = "https://files.pythonhosted.org/packages/50/1b/6921afe68c74868b4c9fa424dad3be35b095e16687989ebbb50ce4fceb7c/psutil-7.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:4cf3d4eb1aa9b348dec30105c55cd9b7d4629285735a102beb4441e38db90553", size = 244885 }, ] [[package]] @@ -2026,11 +2097,11 @@ wheels = [ [[package]] name = "pytz" -version = "2024.2" +version = "2025.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/3a/31/3c70bf7603cc2dca0f19bdc53b4537a797747a58875b552c8c413d963a3f/pytz-2024.2.tar.gz", hash = "sha256:2aa355083c50a0f93fa581709deac0c9ad65cca8a9e9beac660adcbd493c798a", size = 319692 } +sdist = { url = "https://files.pythonhosted.org/packages/5f/57/df1c9157c8d5a05117e455d66fd7cf6dbc46974f832b1058ed4856785d8a/pytz-2025.1.tar.gz", hash = "sha256:c2db42be2a2518b28e65f9207c4d05e6ff547d1efa4086469ef855e4ab70178e", size = 319617 } wheels = [ - { url = "https://files.pythonhosted.org/packages/11/c3/005fcca25ce078d2cc29fd559379817424e94885510568bc1bc53d7d5846/pytz-2024.2-py2.py3-none-any.whl", hash = "sha256:31c7c1817eb7fae7ca4b8c7ee50c72f93aa2dd863de768e1ef4245d426aa0725", size = 508002 }, + { url = "https://files.pythonhosted.org/packages/eb/38/ac33370d784287baa1c3d538978b5e2ea064d4c1b93ffbd12826c190dd10/pytz-2025.1-py2.py3-none-any.whl", hash = "sha256:89dd22dca55b46eac6eda23b2d72721bf1bdfef212645d81513ef5d03038de57", size = 507930 }, ] [[package]] @@ -2109,92 +2180,92 @@ wheels = [ [[package]] name = "pyzmq" -version = "26.2.0" +version = "26.2.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cffi", marker = "implementation_name == 'pypy'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fd/05/bed626b9f7bb2322cdbbf7b4bd8f54b1b617b0d2ab2d3547d6e39428a48e/pyzmq-26.2.0.tar.gz", hash = "sha256:070672c258581c8e4f640b5159297580a9974b026043bd4ab0470be9ed324f1f", size = 271975 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1f/a8/9837c39aba390eb7d01924ace49d761c8dbe7bc2d6082346d00c8332e431/pyzmq-26.2.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:ddf33d97d2f52d89f6e6e7ae66ee35a4d9ca6f36eda89c24591b0c40205a3629", size = 1340058 }, - { url = "https://files.pythonhosted.org/packages/a2/1f/a006f2e8e4f7d41d464272012695da17fb95f33b54342612a6890da96ff6/pyzmq-26.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dacd995031a01d16eec825bf30802fceb2c3791ef24bcce48fa98ce40918c27b", size = 1008818 }, - { url = "https://files.pythonhosted.org/packages/b6/09/b51b6683fde5ca04593a57bbe81788b6b43114d8f8ee4e80afc991e14760/pyzmq-26.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89289a5ee32ef6c439086184529ae060c741334b8970a6855ec0b6ad3ff28764", size = 673199 }, - { url = "https://files.pythonhosted.org/packages/c9/78/486f3e2e824f3a645238332bf5a4c4b4477c3063033a27c1e4052358dee2/pyzmq-26.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5506f06d7dc6ecf1efacb4a013b1f05071bb24b76350832c96449f4a2d95091c", size = 911762 }, - { url = "https://files.pythonhosted.org/packages/5e/3b/2eb1667c9b866f53e76ee8b0c301b0469745a23bd5a87b7ee3d5dd9eb6e5/pyzmq-26.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ea039387c10202ce304af74def5021e9adc6297067f3441d348d2b633e8166a", size = 868773 }, - { url = "https://files.pythonhosted.org/packages/16/29/ca99b4598a9dc7e468b5417eda91f372b595be1e3eec9b7cbe8e5d3584e8/pyzmq-26.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a2224fa4a4c2ee872886ed00a571f5e967c85e078e8e8c2530a2fb01b3309b88", size = 868834 }, - { url = "https://files.pythonhosted.org/packages/ad/e5/9efaeb1d2f4f8c50da04144f639b042bc52869d3a206d6bf672ab3522163/pyzmq-26.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:28ad5233e9c3b52d76196c696e362508959741e1a005fb8fa03b51aea156088f", size = 1202861 }, - { url = "https://files.pythonhosted.org/packages/c3/62/c721b5608a8ac0a69bb83cbb7d07a56f3ff00b3991a138e44198a16f94c7/pyzmq-26.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:1c17211bc037c7d88e85ed8b7d8f7e52db6dc8eca5590d162717c654550f7282", size = 1515304 }, - { url = "https://files.pythonhosted.org/packages/87/84/e8bd321aa99b72f48d4606fc5a0a920154125bd0a4608c67eab742dab087/pyzmq-26.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b8f86dd868d41bea9a5f873ee13bf5551c94cf6bc51baebc6f85075971fe6eea", size = 1414712 }, - { url = "https://files.pythonhosted.org/packages/cd/cd/420e3fd1ac6977b008b72e7ad2dae6350cc84d4c5027fc390b024e61738f/pyzmq-26.2.0-cp310-cp310-win32.whl", hash = "sha256:46a446c212e58456b23af260f3d9fb785054f3e3653dbf7279d8f2b5546b21c2", size = 578113 }, - { url = "https://files.pythonhosted.org/packages/5c/57/73930d56ed45ae0cb4946f383f985c855c9b3d4063f26416998f07523c0e/pyzmq-26.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:49d34ab71db5a9c292a7644ce74190b1dd5a3475612eefb1f8be1d6961441971", size = 641631 }, - { url = "https://files.pythonhosted.org/packages/61/d2/ae6ac5c397f1ccad59031c64beaafce7a0d6182e0452cc48f1c9c87d2dd0/pyzmq-26.2.0-cp310-cp310-win_arm64.whl", hash = "sha256:bfa832bfa540e5b5c27dcf5de5d82ebc431b82c453a43d141afb1e5d2de025fa", size = 543528 }, - { url = "https://files.pythonhosted.org/packages/12/20/de7442172f77f7c96299a0ac70e7d4fb78cd51eca67aa2cf552b66c14196/pyzmq-26.2.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:8f7e66c7113c684c2b3f1c83cdd3376103ee0ce4c49ff80a648643e57fb22218", size = 1340639 }, - { url = "https://files.pythonhosted.org/packages/98/4d/5000468bd64c7910190ed0a6c76a1ca59a68189ec1f007c451dc181a22f4/pyzmq-26.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3a495b30fc91db2db25120df5847d9833af237546fd59170701acd816ccc01c4", size = 1008710 }, - { url = "https://files.pythonhosted.org/packages/e1/bf/c67fd638c2f9fbbab8090a3ee779370b97c82b84cc12d0c498b285d7b2c0/pyzmq-26.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77eb0968da535cba0470a5165468b2cac7772cfb569977cff92e240f57e31bef", size = 673129 }, - { url = "https://files.pythonhosted.org/packages/86/94/99085a3f492aa538161cbf27246e8886ff850e113e0c294a5b8245f13b52/pyzmq-26.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ace4f71f1900a548f48407fc9be59c6ba9d9aaf658c2eea6cf2779e72f9f317", size = 910107 }, - { url = "https://files.pythonhosted.org/packages/31/1d/346809e8a9b999646d03f21096428453465b1bca5cd5c64ecd048d9ecb01/pyzmq-26.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:92a78853d7280bffb93df0a4a6a2498cba10ee793cc8076ef797ef2f74d107cf", size = 867960 }, - { url = "https://files.pythonhosted.org/packages/ab/68/6fb6ae5551846ad5beca295b7bca32bf0a7ce19f135cb30e55fa2314e6b6/pyzmq-26.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:689c5d781014956a4a6de61d74ba97b23547e431e9e7d64f27d4922ba96e9d6e", size = 869204 }, - { url = "https://files.pythonhosted.org/packages/0f/f9/18417771dee223ccf0f48e29adf8b4e25ba6d0e8285e33bcbce078070bc3/pyzmq-26.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0aca98bc423eb7d153214b2df397c6421ba6373d3397b26c057af3c904452e37", size = 1203351 }, - { url = "https://files.pythonhosted.org/packages/e0/46/f13e67fe0d4f8a2315782cbad50493de6203ea0d744610faf4d5f5b16e90/pyzmq-26.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1f3496d76b89d9429a656293744ceca4d2ac2a10ae59b84c1da9b5165f429ad3", size = 1514204 }, - { url = "https://files.pythonhosted.org/packages/50/11/ddcf7343b7b7a226e0fc7b68cbf5a5bb56291fac07f5c3023bb4c319ebb4/pyzmq-26.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5c2b3bfd4b9689919db068ac6c9911f3fcb231c39f7dd30e3138be94896d18e6", size = 1414339 }, - { url = "https://files.pythonhosted.org/packages/01/14/1c18d7d5b7be2708f513f37c61bfadfa62161c10624f8733f1c8451b3509/pyzmq-26.2.0-cp311-cp311-win32.whl", hash = "sha256:eac5174677da084abf378739dbf4ad245661635f1600edd1221f150b165343f4", size = 576928 }, - { url = "https://files.pythonhosted.org/packages/3b/1b/0a540edd75a41df14ec416a9a500b9fec66e554aac920d4c58fbd5756776/pyzmq-26.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:5a509df7d0a83a4b178d0f937ef14286659225ef4e8812e05580776c70e155d5", size = 642317 }, - { url = "https://files.pythonhosted.org/packages/98/77/1cbfec0358078a4c5add529d8a70892db1be900980cdb5dd0898b3d6ab9d/pyzmq-26.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:c0e6091b157d48cbe37bd67233318dbb53e1e6327d6fc3bb284afd585d141003", size = 543834 }, - { url = "https://files.pythonhosted.org/packages/28/2f/78a766c8913ad62b28581777ac4ede50c6d9f249d39c2963e279524a1bbe/pyzmq-26.2.0-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:ded0fc7d90fe93ae0b18059930086c51e640cdd3baebdc783a695c77f123dcd9", size = 1343105 }, - { url = "https://files.pythonhosted.org/packages/b7/9c/4b1e2d3d4065be715e007fe063ec7885978fad285f87eae1436e6c3201f4/pyzmq-26.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:17bf5a931c7f6618023cdacc7081f3f266aecb68ca692adac015c383a134ca52", size = 1008365 }, - { url = "https://files.pythonhosted.org/packages/4f/ef/5a23ec689ff36d7625b38d121ef15abfc3631a9aecb417baf7a4245e4124/pyzmq-26.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55cf66647e49d4621a7e20c8d13511ef1fe1efbbccf670811864452487007e08", size = 665923 }, - { url = "https://files.pythonhosted.org/packages/ae/61/d436461a47437d63c6302c90724cf0981883ec57ceb6073873f32172d676/pyzmq-26.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4661c88db4a9e0f958c8abc2b97472e23061f0bc737f6f6179d7a27024e1faa5", size = 903400 }, - { url = "https://files.pythonhosted.org/packages/47/42/fc6d35ecefe1739a819afaf6f8e686f7f02a4dd241c78972d316f403474c/pyzmq-26.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea7f69de383cb47522c9c208aec6dd17697db7875a4674c4af3f8cfdac0bdeae", size = 860034 }, - { url = "https://files.pythonhosted.org/packages/07/3b/44ea6266a6761e9eefaa37d98fabefa112328808ac41aa87b4bbb668af30/pyzmq-26.2.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:7f98f6dfa8b8ccaf39163ce872bddacca38f6a67289116c8937a02e30bbe9711", size = 860579 }, - { url = "https://files.pythonhosted.org/packages/38/6f/4df2014ab553a6052b0e551b37da55166991510f9e1002c89cab7ce3b3f2/pyzmq-26.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e3e0210287329272539eea617830a6a28161fbbd8a3271bf4150ae3e58c5d0e6", size = 1196246 }, - { url = "https://files.pythonhosted.org/packages/38/9d/ee240fc0c9fe9817f0c9127a43238a3e28048795483c403cc10720ddef22/pyzmq-26.2.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6b274e0762c33c7471f1a7471d1a2085b1a35eba5cdc48d2ae319f28b6fc4de3", size = 1507441 }, - { url = "https://files.pythonhosted.org/packages/85/4f/01711edaa58d535eac4a26c294c617c9a01f09857c0ce191fd574d06f359/pyzmq-26.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:29c6a4635eef69d68a00321e12a7d2559fe2dfccfa8efae3ffb8e91cd0b36a8b", size = 1406498 }, - { url = "https://files.pythonhosted.org/packages/07/18/907134c85c7152f679ed744e73e645b365f3ad571f38bdb62e36f347699a/pyzmq-26.2.0-cp312-cp312-win32.whl", hash = "sha256:989d842dc06dc59feea09e58c74ca3e1678c812a4a8a2a419046d711031f69c7", size = 575533 }, - { url = "https://files.pythonhosted.org/packages/ce/2c/a6f4a20202a4d3c582ad93f95ee78d79bbdc26803495aec2912b17dbbb6c/pyzmq-26.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:2a50625acdc7801bc6f74698c5c583a491c61d73c6b7ea4dee3901bb99adb27a", size = 637768 }, - { url = "https://files.pythonhosted.org/packages/5f/0e/eb16ff731632d30554bf5af4dbba3ffcd04518219d82028aea4ae1b02ca5/pyzmq-26.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:4d29ab8592b6ad12ebbf92ac2ed2bedcfd1cec192d8e559e2e099f648570e19b", size = 540675 }, - { url = "https://files.pythonhosted.org/packages/04/a7/0f7e2f6c126fe6e62dbae0bc93b1bd3f1099cf7fea47a5468defebe3f39d/pyzmq-26.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9dd8cd1aeb00775f527ec60022004d030ddc51d783d056e3e23e74e623e33726", size = 1006564 }, - { url = "https://files.pythonhosted.org/packages/31/b6/a187165c852c5d49f826a690857684333a6a4a065af0a6015572d2284f6a/pyzmq-26.2.0-cp313-cp313-macosx_10_15_universal2.whl", hash = "sha256:28c812d9757fe8acecc910c9ac9dafd2ce968c00f9e619db09e9f8f54c3a68a3", size = 1340447 }, - { url = "https://files.pythonhosted.org/packages/68/ba/f4280c58ff71f321602a6e24fd19879b7e79793fb8ab14027027c0fb58ef/pyzmq-26.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d80b1dd99c1942f74ed608ddb38b181b87476c6a966a88a950c7dee118fdf50", size = 665485 }, - { url = "https://files.pythonhosted.org/packages/77/b5/c987a5c53c7d8704216f29fc3d810b32f156bcea488a940e330e1bcbb88d/pyzmq-26.2.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c997098cc65e3208eca09303630e84d42718620e83b733d0fd69543a9cab9cb", size = 903484 }, - { url = "https://files.pythonhosted.org/packages/29/c9/07da157d2db18c72a7eccef8e684cefc155b712a88e3d479d930aa9eceba/pyzmq-26.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ad1bc8d1b7a18497dda9600b12dc193c577beb391beae5cd2349184db40f187", size = 859981 }, - { url = "https://files.pythonhosted.org/packages/43/09/e12501bd0b8394b7d02c41efd35c537a1988da67fc9c745cae9c6c776d31/pyzmq-26.2.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:bea2acdd8ea4275e1278350ced63da0b166421928276c7c8e3f9729d7402a57b", size = 860334 }, - { url = "https://files.pythonhosted.org/packages/eb/ff/f5ec1d455f8f7385cc0a8b2acd8c807d7fade875c14c44b85c1bddabae21/pyzmq-26.2.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:23f4aad749d13698f3f7b64aad34f5fc02d6f20f05999eebc96b89b01262fb18", size = 1196179 }, - { url = "https://files.pythonhosted.org/packages/ec/8a/bb2ac43295b1950fe436a81fc5b298be0b96ac76fb029b514d3ed58f7b27/pyzmq-26.2.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:a4f96f0d88accc3dbe4a9025f785ba830f968e21e3e2c6321ccdfc9aef755115", size = 1507668 }, - { url = "https://files.pythonhosted.org/packages/a9/49/dbc284ebcfd2dca23f6349227ff1616a7ee2c4a35fe0a5d6c3deff2b4fed/pyzmq-26.2.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ced65e5a985398827cc9276b93ef6dfabe0273c23de8c7931339d7e141c2818e", size = 1406539 }, - { url = "https://files.pythonhosted.org/packages/00/68/093cdce3fe31e30a341d8e52a1ad86392e13c57970d722c1f62a1d1a54b6/pyzmq-26.2.0-cp313-cp313-win32.whl", hash = "sha256:31507f7b47cc1ead1f6e86927f8ebb196a0bab043f6345ce070f412a59bf87b5", size = 575567 }, - { url = "https://files.pythonhosted.org/packages/92/ae/6cc4657148143412b5819b05e362ae7dd09fb9fe76e2a539dcff3d0386bc/pyzmq-26.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:70fc7fcf0410d16ebdda9b26cbd8bf8d803d220a7f3522e060a69a9c87bf7bad", size = 637551 }, - { url = "https://files.pythonhosted.org/packages/6c/67/fbff102e201688f97c8092e4c3445d1c1068c2f27bbd45a578df97ed5f94/pyzmq-26.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:c3789bd5768ab5618ebf09cef6ec2b35fed88709b104351748a63045f0ff9797", size = 540378 }, - { url = "https://files.pythonhosted.org/packages/3f/fe/2d998380b6e0122c6c4bdf9b6caf490831e5f5e2d08a203b5adff060c226/pyzmq-26.2.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:034da5fc55d9f8da09015d368f519478a52675e558c989bfcb5cf6d4e16a7d2a", size = 1007378 }, - { url = "https://files.pythonhosted.org/packages/4a/f4/30d6e7157f12b3a0390bde94d6a8567cdb88846ed068a6e17238a4ccf600/pyzmq-26.2.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:c92d73464b886931308ccc45b2744e5968cbaade0b1d6aeb40d8ab537765f5bc", size = 1329532 }, - { url = "https://files.pythonhosted.org/packages/82/86/3fe917870e15ee1c3ad48229a2a64458e36036e64b4afa9659045d82bfa8/pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:794a4562dcb374f7dbbfb3f51d28fb40123b5a2abadee7b4091f93054909add5", size = 653242 }, - { url = "https://files.pythonhosted.org/packages/50/2d/242e7e6ef6c8c19e6cb52d095834508cd581ffb925699fd3c640cdc758f1/pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aee22939bb6075e7afededabad1a56a905da0b3c4e3e0c45e75810ebe3a52672", size = 888404 }, - { url = "https://files.pythonhosted.org/packages/ac/11/7270566e1f31e4ea73c81ec821a4b1688fd551009a3d2bab11ec66cb1e8f/pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ae90ff9dad33a1cfe947d2c40cb9cb5e600d759ac4f0fd22616ce6540f72797", size = 845858 }, - { url = "https://files.pythonhosted.org/packages/91/d5/72b38fbc69867795c8711bdd735312f9fef1e3d9204e2f63ab57085434b9/pyzmq-26.2.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:43a47408ac52647dfabbc66a25b05b6a61700b5165807e3fbd40063fcaf46386", size = 847375 }, - { url = "https://files.pythonhosted.org/packages/dd/9a/10ed3c7f72b4c24e719c59359fbadd1a27556a28b36cdf1cd9e4fb7845d5/pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:25bf2374a2a8433633c65ccb9553350d5e17e60c8eb4de4d92cc6bd60f01d306", size = 1183489 }, - { url = "https://files.pythonhosted.org/packages/72/2d/8660892543fabf1fe41861efa222455811adac9f3c0818d6c3170a1153e3/pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_i686.whl", hash = "sha256:007137c9ac9ad5ea21e6ad97d3489af654381324d5d3ba614c323f60dab8fae6", size = 1492932 }, - { url = "https://files.pythonhosted.org/packages/7b/d6/32fd69744afb53995619bc5effa2a405ae0d343cd3e747d0fbc43fe894ee/pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:470d4a4f6d48fb34e92d768b4e8a5cc3780db0d69107abf1cd7ff734b9766eb0", size = 1392485 }, - { url = "https://files.pythonhosted.org/packages/ac/9e/ad5fbbe1bcc7a9d1e8c5f4f7de48f2c1dc481e151ef80cc1ce9a7fe67b55/pyzmq-26.2.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:b1d464cb8d72bfc1a3adc53305a63a8e0cac6bc8c5a07e8ca190ab8d3faa43c2", size = 1341256 }, - { url = "https://files.pythonhosted.org/packages/4c/d9/d7a8022108c214803a82b0b69d4885cee00933d21928f1f09dca371cf4bf/pyzmq-26.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4da04c48873a6abdd71811c5e163bd656ee1b957971db7f35140a2d573f6949c", size = 1009385 }, - { url = "https://files.pythonhosted.org/packages/ed/69/0529b59ac667ea8bfe8796ac71796b688fbb42ff78e06525dabfed3bc7ae/pyzmq-26.2.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:d049df610ac811dcffdc147153b414147428567fbbc8be43bb8885f04db39d98", size = 908009 }, - { url = "https://files.pythonhosted.org/packages/6e/bd/3ff3e1172f12f55769793a3a334e956ec2886805ebfb2f64756b6b5c6a1a/pyzmq-26.2.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05590cdbc6b902101d0e65d6a4780af14dc22914cc6ab995d99b85af45362cc9", size = 862078 }, - { url = "https://files.pythonhosted.org/packages/c3/ec/ab13585c3a1f48e2874253844c47b194d56eb25c94718691349c646f336f/pyzmq-26.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c811cfcd6a9bf680236c40c6f617187515269ab2912f3d7e8c0174898e2519db", size = 673756 }, - { url = "https://files.pythonhosted.org/packages/1e/be/febcd4b04dd50ee6d514dfbc33a3d5d9cb38ec9516e02bbfc929baa0f141/pyzmq-26.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6835dd60355593de10350394242b5757fbbd88b25287314316f266e24c61d073", size = 1203684 }, - { url = "https://files.pythonhosted.org/packages/16/28/304150e71afd2df3b82f52f66c0d8ab9ac6fe1f1ffdf92bad4c8cc91d557/pyzmq-26.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc6bee759a6bddea5db78d7dcd609397449cb2d2d6587f48f3ca613b19410cfc", size = 1515864 }, - { url = "https://files.pythonhosted.org/packages/18/89/8d48d8cd505c12a1f5edee597cc32ffcedc65fd8d2603aebaaedc38a7041/pyzmq-26.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c530e1eecd036ecc83c3407f77bb86feb79916d4a33d11394b8234f3bd35b940", size = 1415383 }, - { url = "https://files.pythonhosted.org/packages/d4/7e/43a60c3b179f7da0cbc2b649bd2702fd6a39bff5f72aa38d6e1aeb00256d/pyzmq-26.2.0-cp39-cp39-win32.whl", hash = "sha256:367b4f689786fca726ef7a6c5ba606958b145b9340a5e4808132cc65759abd44", size = 578540 }, - { url = "https://files.pythonhosted.org/packages/3a/55/8841dcd28f783ad06674c8fe8d7d72794b548d0bff8829aaafeb72e8b44d/pyzmq-26.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:e6fa2e3e683f34aea77de8112f6483803c96a44fd726d7358b9888ae5bb394ec", size = 642147 }, - { url = "https://files.pythonhosted.org/packages/b4/78/b3c31ccfcfcdd6ea50b6abc8f46a2a7aadb9c3d40531d1b908d834aaa12e/pyzmq-26.2.0-cp39-cp39-win_arm64.whl", hash = "sha256:7445be39143a8aa4faec43b076e06944b8f9d0701b669df4af200531b21e40bb", size = 543903 }, - { url = "https://files.pythonhosted.org/packages/53/fb/36b2b2548286e9444e52fcd198760af99fd89102b5be50f0660fcfe902df/pyzmq-26.2.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:706e794564bec25819d21a41c31d4df2d48e1cc4b061e8d345d7fb4dd3e94072", size = 906955 }, - { url = "https://files.pythonhosted.org/packages/77/8f/6ce54f8979a01656e894946db6299e2273fcee21c8e5fa57c6295ef11f57/pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b435f2753621cd36e7c1762156815e21c985c72b19135dac43a7f4f31d28dd1", size = 565701 }, - { url = "https://files.pythonhosted.org/packages/ee/1c/bf8cd66730a866b16db8483286078892b7f6536f8c389fb46e4beba0a970/pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:160c7e0a5eb178011e72892f99f918c04a131f36056d10d9c1afb223fc952c2d", size = 794312 }, - { url = "https://files.pythonhosted.org/packages/71/43/91fa4ff25bbfdc914ab6bafa0f03241d69370ef31a761d16bb859f346582/pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c4a71d5d6e7b28a47a394c0471b7e77a0661e2d651e7ae91e0cab0a587859ca", size = 752775 }, - { url = "https://files.pythonhosted.org/packages/ec/d2/3b2ab40f455a256cb6672186bea95cd97b459ce4594050132d71e76f0d6f/pyzmq-26.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:90412f2db8c02a3864cbfc67db0e3dcdbda336acf1c469526d3e869394fe001c", size = 550762 }, - { url = "https://files.pythonhosted.org/packages/6c/78/3096d72581365dfb0081ac9512a3b53672fa69854aa174d78636510c4db8/pyzmq-26.2.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cdeabcff45d1c219636ee2e54d852262e5c2e085d6cb476d938aee8d921356b3", size = 906945 }, - { url = "https://files.pythonhosted.org/packages/da/f2/8054574d77c269c31d055d4daf3d8407adf61ea384a50c8d14b158551d09/pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35cffef589bcdc587d06f9149f8d5e9e8859920a071df5a2671de2213bef592a", size = 565698 }, - { url = "https://files.pythonhosted.org/packages/77/21/c3ad93236d1d60eea10b67528f55e7db115a9d32e2bf163fcf601f85e9cc/pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18c8dc3b7468d8b4bdf60ce9d7141897da103c7a4690157b32b60acb45e333e6", size = 794307 }, - { url = "https://files.pythonhosted.org/packages/6a/49/e95b491724500fcb760178ce8db39b923429e328e57bcf9162e32c2c187c/pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7133d0a1677aec369d67dd78520d3fa96dd7f3dcec99d66c1762870e5ea1a50a", size = 752769 }, - { url = "https://files.pythonhosted.org/packages/9b/a9/50c9c06762b30792f71aaad8d1886748d39c4bffedc1171fbc6ad2b92d67/pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6a96179a24b14fa6428cbfc08641c779a53f8fcec43644030328f44034c7f1f4", size = 751338 }, - { url = "https://files.pythonhosted.org/packages/ca/63/27e6142b4f67a442ee480986ca5b88edb01462dd2319843057683a5148bd/pyzmq-26.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:4f78c88905461a9203eac9faac157a2a0dbba84a0fd09fd29315db27be40af9f", size = 550757 }, +sdist = { url = "https://files.pythonhosted.org/packages/5a/e3/8d0382cb59feb111c252b54e8728257416a38ffcb2243c4e4775a3c990fe/pyzmq-26.2.1.tar.gz", hash = "sha256:17d72a74e5e9ff3829deb72897a175333d3ef5b5413948cae3cf7ebf0b02ecca", size = 278433 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/70/3d/c2d9d46c033d1b51692ea49a22439f7f66d91d5c938e8b5c56ed7a2151c2/pyzmq-26.2.1-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:f39d1227e8256d19899d953e6e19ed2ccb689102e6d85e024da5acf410f301eb", size = 1345451 }, + { url = "https://files.pythonhosted.org/packages/0e/df/4754a8abcdeef280651f9bb51446c47659910940b392a66acff7c37f5cef/pyzmq-26.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a23948554c692df95daed595fdd3b76b420a4939d7a8a28d6d7dea9711878641", size = 942766 }, + { url = "https://files.pythonhosted.org/packages/74/da/e6053a3b13c912eded6c2cdeee22ff3a4c33820d17f9eb24c7b6e957ffe7/pyzmq-26.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95f5728b367a042df146cec4340d75359ec6237beebf4a8f5cf74657c65b9257", size = 678488 }, + { url = "https://files.pythonhosted.org/packages/9e/50/614934145244142401ca174ca81071777ab93aa88173973ba0154f491e09/pyzmq-26.2.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:95f7b01b3f275504011cf4cf21c6b885c8d627ce0867a7e83af1382ebab7b3ff", size = 917115 }, + { url = "https://files.pythonhosted.org/packages/80/2b/ebeb7bc4fc8e9e61650b2e09581597355a4341d413fa9b2947d7a6558119/pyzmq-26.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80a00370a2ef2159c310e662c7c0f2d030f437f35f478bb8b2f70abd07e26b24", size = 874162 }, + { url = "https://files.pythonhosted.org/packages/79/48/93210621c331ad16313dc2849801411fbae10d91d878853933f2a85df8e7/pyzmq-26.2.1-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:8531ed35dfd1dd2af95f5d02afd6545e8650eedbf8c3d244a554cf47d8924459", size = 874180 }, + { url = "https://files.pythonhosted.org/packages/f0/8b/40924b4d8e33bfdd54c1970fb50f327e39b90b902f897cf09b30b2e9ac48/pyzmq-26.2.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:cdb69710e462a38e6039cf17259d328f86383a06c20482cc154327968712273c", size = 1208139 }, + { url = "https://files.pythonhosted.org/packages/c8/b2/82d6675fc89bd965eae13c45002c792d33f06824589844b03f8ea8fc6d86/pyzmq-26.2.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e7eeaef81530d0b74ad0d29eec9997f1c9230c2f27242b8d17e0ee67662c8f6e", size = 1520666 }, + { url = "https://files.pythonhosted.org/packages/9d/e2/5ff15f2d3f920dcc559d477bd9bb3faacd6d79fcf7c5448e585c78f84849/pyzmq-26.2.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:361edfa350e3be1f987e592e834594422338d7174364763b7d3de5b0995b16f3", size = 1420056 }, + { url = "https://files.pythonhosted.org/packages/40/a2/f9bbeccf7f75aa0d8963e224e5730abcefbf742e1f2ae9ea60fd9d6ff72b/pyzmq-26.2.1-cp310-cp310-win32.whl", hash = "sha256:637536c07d2fb6a354988b2dd1d00d02eb5dd443f4bbee021ba30881af1c28aa", size = 583874 }, + { url = "https://files.pythonhosted.org/packages/56/b1/44f513135843272f0e12f5aebf4af35839e2a88eb45411f2c8c010d8c856/pyzmq-26.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:45fad32448fd214fbe60030aa92f97e64a7140b624290834cc9b27b3a11f9473", size = 647367 }, + { url = "https://files.pythonhosted.org/packages/27/9c/1bef14a37b02d651a462811bbdb1390b61cd4a5b5e95cbd7cc2d60ef848c/pyzmq-26.2.1-cp310-cp310-win_arm64.whl", hash = "sha256:d9da0289d8201c8a29fd158aaa0dfe2f2e14a181fd45e2dc1fbf969a62c1d594", size = 561784 }, + { url = "https://files.pythonhosted.org/packages/b9/03/5ecc46a6ed5971299f5c03e016ca637802d8660e44392bea774fb7797405/pyzmq-26.2.1-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:c059883840e634a21c5b31d9b9a0e2b48f991b94d60a811092bc37992715146a", size = 1346032 }, + { url = "https://files.pythonhosted.org/packages/40/51/48fec8f990ee644f461ff14c8fe5caa341b0b9b3a0ad7544f8ef17d6f528/pyzmq-26.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ed038a921df836d2f538e509a59cb638df3e70ca0fcd70d0bf389dfcdf784d2a", size = 943324 }, + { url = "https://files.pythonhosted.org/packages/c1/f4/f322b389727c687845e38470b48d7a43c18a83f26d4d5084603c6c3f79ca/pyzmq-26.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9027a7fcf690f1a3635dc9e55e38a0d6602dbbc0548935d08d46d2e7ec91f454", size = 678418 }, + { url = "https://files.pythonhosted.org/packages/a8/df/2834e3202533bd05032d83e02db7ac09fa1be853bbef59974f2b2e3a8557/pyzmq-26.2.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6d75fcb00a1537f8b0c0bb05322bc7e35966148ffc3e0362f0369e44a4a1de99", size = 915466 }, + { url = "https://files.pythonhosted.org/packages/b5/e2/45c0f6e122b562cb8c6c45c0dcac1160a4e2207385ef9b13463e74f93031/pyzmq-26.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0019cc804ac667fb8c8eaecdb66e6d4a68acf2e155d5c7d6381a5645bd93ae4", size = 873347 }, + { url = "https://files.pythonhosted.org/packages/de/b9/3e0fbddf8b87454e914501d368171466a12550c70355b3844115947d68ea/pyzmq-26.2.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:f19dae58b616ac56b96f2e2290f2d18730a898a171f447f491cc059b073ca1fa", size = 874545 }, + { url = "https://files.pythonhosted.org/packages/1f/1c/1ee41d6e10b2127263b1994bc53b9e74ece015b0d2c0a30e0afaf69b78b2/pyzmq-26.2.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f5eeeb82feec1fc5cbafa5ee9022e87ffdb3a8c48afa035b356fcd20fc7f533f", size = 1208630 }, + { url = "https://files.pythonhosted.org/packages/3d/a9/50228465c625851a06aeee97c74f253631f509213f979166e83796299c60/pyzmq-26.2.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:000760e374d6f9d1a3478a42ed0c98604de68c9e94507e5452951e598ebecfba", size = 1519568 }, + { url = "https://files.pythonhosted.org/packages/c6/f2/6360b619e69da78863c2108beb5196ae8b955fe1e161c0b886b95dc6b1ac/pyzmq-26.2.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:817fcd3344d2a0b28622722b98500ae9c8bfee0f825b8450932ff19c0b15bebd", size = 1419677 }, + { url = "https://files.pythonhosted.org/packages/da/d5/f179da989168f5dfd1be8103ef508ade1d38a8078dda4f10ebae3131a490/pyzmq-26.2.1-cp311-cp311-win32.whl", hash = "sha256:88812b3b257f80444a986b3596e5ea5c4d4ed4276d2b85c153a6fbc5ca457ae7", size = 582682 }, + { url = "https://files.pythonhosted.org/packages/60/50/e5b2e9de3ffab73ff92bee736216cf209381081fa6ab6ba96427777d98b1/pyzmq-26.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:ef29630fde6022471d287c15c0a2484aba188adbfb978702624ba7a54ddfa6c1", size = 648128 }, + { url = "https://files.pythonhosted.org/packages/d9/fe/7bb93476dd8405b0fc9cab1fd921a08bd22d5e3016aa6daea1a78d54129b/pyzmq-26.2.1-cp311-cp311-win_arm64.whl", hash = "sha256:f32718ee37c07932cc336096dc7403525301fd626349b6eff8470fe0f996d8d7", size = 562465 }, + { url = "https://files.pythonhosted.org/packages/9c/b9/260a74786f162c7f521f5f891584a51d5a42fd15f5dcaa5c9226b2865fcc/pyzmq-26.2.1-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:a6549ecb0041dafa55b5932dcbb6c68293e0bd5980b5b99f5ebb05f9a3b8a8f3", size = 1348495 }, + { url = "https://files.pythonhosted.org/packages/bf/73/8a0757e4b68f5a8ccb90ddadbb76c6a5f880266cdb18be38c99bcdc17aaa/pyzmq-26.2.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:0250c94561f388db51fd0213cdccbd0b9ef50fd3c57ce1ac937bf3034d92d72e", size = 945035 }, + { url = "https://files.pythonhosted.org/packages/cf/de/f02ec973cd33155bb772bae33ace774acc7cc71b87b25c4829068bec35de/pyzmq-26.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:36ee4297d9e4b34b5dc1dd7ab5d5ea2cbba8511517ef44104d2915a917a56dc8", size = 671213 }, + { url = "https://files.pythonhosted.org/packages/d1/80/8fc583085f85ac91682744efc916888dd9f11f9f75a31aef1b78a5486c6c/pyzmq-26.2.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c2a9cb17fd83b7a3a3009901aca828feaf20aa2451a8a487b035455a86549c09", size = 908750 }, + { url = "https://files.pythonhosted.org/packages/c3/25/0b4824596f261a3cc512ab152448b383047ff5f143a6906a36876415981c/pyzmq-26.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:786dd8a81b969c2081b31b17b326d3a499ddd1856e06d6d79ad41011a25148da", size = 865416 }, + { url = "https://files.pythonhosted.org/packages/a1/d1/6fda77a034d02034367b040973fd3861d945a5347e607bd2e98c99f20599/pyzmq-26.2.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:2d88ba221a07fc2c5581565f1d0fe8038c15711ae79b80d9462e080a1ac30435", size = 865922 }, + { url = "https://files.pythonhosted.org/packages/ad/81/48f7fd8a71c427412e739ce576fc1ee14f3dc34527ca9b0076e471676183/pyzmq-26.2.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1c84c1297ff9f1cd2440da4d57237cb74be21fdfe7d01a10810acba04e79371a", size = 1201526 }, + { url = "https://files.pythonhosted.org/packages/c7/d8/818f15c6ef36b5450e435cbb0d3a51599fc884a5d2b27b46b9c00af68ef1/pyzmq-26.2.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:46d4ebafc27081a7f73a0f151d0c38d4291656aa134344ec1f3d0199ebfbb6d4", size = 1512808 }, + { url = "https://files.pythonhosted.org/packages/d9/c4/b3edb7d0ae82ad6fb1a8cdb191a4113c427a01e85139906f3b655b07f4f8/pyzmq-26.2.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:91e2bfb8e9a29f709d51b208dd5f441dc98eb412c8fe75c24ea464734ccdb48e", size = 1411836 }, + { url = "https://files.pythonhosted.org/packages/69/1c/151e3d42048f02cc5cd6dfc241d9d36b38375b4dee2e728acb5c353a6d52/pyzmq-26.2.1-cp312-cp312-win32.whl", hash = "sha256:4a98898fdce380c51cc3e38ebc9aa33ae1e078193f4dc641c047f88b8c690c9a", size = 581378 }, + { url = "https://files.pythonhosted.org/packages/b6/b9/d59a7462848aaab7277fddb253ae134a570520115d80afa85e952287e6bc/pyzmq-26.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:a0741edbd0adfe5f30bba6c5223b78c131b5aa4a00a223d631e5ef36e26e6d13", size = 643737 }, + { url = "https://files.pythonhosted.org/packages/55/09/f37e707937cce328944c1d57e5e50ab905011d35252a0745c4f7e5822a76/pyzmq-26.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:e5e33b1491555843ba98d5209439500556ef55b6ab635f3a01148545498355e5", size = 558303 }, + { url = "https://files.pythonhosted.org/packages/4f/2e/fa7a91ce349975971d6aa925b4c7e1a05abaae99b97ade5ace758160c43d/pyzmq-26.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:099b56ef464bc355b14381f13355542e452619abb4c1e57a534b15a106bf8e23", size = 942331 }, + { url = "https://files.pythonhosted.org/packages/64/2b/1f10b34b6dc7ff4b40f668ea25ba9b8093ce61d874c784b90229b367707b/pyzmq-26.2.1-cp313-cp313-macosx_10_15_universal2.whl", hash = "sha256:651726f37fcbce9f8dd2a6dab0f024807929780621890a4dc0c75432636871be", size = 1345831 }, + { url = "https://files.pythonhosted.org/packages/4c/8d/34884cbd4a8ec050841b5fb58d37af136766a9f95b0b2634c2971deb09da/pyzmq-26.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:57dd4d91b38fa4348e237a9388b4423b24ce9c1695bbd4ba5a3eada491e09399", size = 670773 }, + { url = "https://files.pythonhosted.org/packages/0f/f4/d4becfcf9e416ad2564f18a6653f7c6aa917da08df5c3760edb0baa1c863/pyzmq-26.2.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d51a7bfe01a48e1064131f3416a5439872c533d756396be2b39e3977b41430f9", size = 908836 }, + { url = "https://files.pythonhosted.org/packages/07/fa/ab105f1b86b85cb2e821239f1d0900fccd66192a91d97ee04661b5436b4d/pyzmq-26.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7154d228502e18f30f150b7ce94f0789d6b689f75261b623f0fdc1eec642aab", size = 865369 }, + { url = "https://files.pythonhosted.org/packages/c9/48/15d5f415504572dd4b92b52db5de7a5befc76bb75340ba9f36f71306a66d/pyzmq-26.2.1-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:f1f31661a80cc46aba381bed475a9135b213ba23ca7ff6797251af31510920ce", size = 865676 }, + { url = "https://files.pythonhosted.org/packages/7e/35/2d91bcc7ccbb56043dd4d2c1763f24a8de5f05e06a134f767a7fb38e149c/pyzmq-26.2.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:290c96f479504439b6129a94cefd67a174b68ace8a8e3f551b2239a64cfa131a", size = 1201457 }, + { url = "https://files.pythonhosted.org/packages/6d/bb/aa7c5119307a5762b8dca6c9db73e3ab4bccf32b15d7c4f376271ff72b2b/pyzmq-26.2.1-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:f2c307fbe86e18ab3c885b7e01de942145f539165c3360e2af0f094dd440acd9", size = 1513035 }, + { url = "https://files.pythonhosted.org/packages/4f/4c/527e6650c2fccec7750b783301329c8a8716d59423818afb67282304ce5a/pyzmq-26.2.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:b314268e716487bfb86fcd6f84ebbe3e5bec5fac75fdf42bc7d90fdb33f618ad", size = 1411881 }, + { url = "https://files.pythonhosted.org/packages/89/9f/e4412ea1b3e220acc21777a5edba8885856403d29c6999aaf00a9459eb03/pyzmq-26.2.1-cp313-cp313-win32.whl", hash = "sha256:edb550616f567cd5603b53bb52a5f842c0171b78852e6fc7e392b02c2a1504bb", size = 581354 }, + { url = "https://files.pythonhosted.org/packages/55/cd/f89dd3e9fc2da0d1619a82c4afb600c86b52bc72d7584953d460bc8d5027/pyzmq-26.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:100a826a029c8ef3d77a1d4c97cbd6e867057b5806a7276f2bac1179f893d3bf", size = 643560 }, + { url = "https://files.pythonhosted.org/packages/a7/99/5de4f8912860013f1116f818a0047659bc20d71d1bc1d48f874bdc2d7b9c/pyzmq-26.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:6991ee6c43e0480deb1b45d0c7c2bac124a6540cba7db4c36345e8e092da47ce", size = 558037 }, + { url = "https://files.pythonhosted.org/packages/06/0b/63b6d7a2f07a77dbc9768c6302ae2d7518bed0c6cee515669ca0d8ec743e/pyzmq-26.2.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:25e720dba5b3a3bb2ad0ad5d33440babd1b03438a7a5220511d0c8fa677e102e", size = 938580 }, + { url = "https://files.pythonhosted.org/packages/85/38/e5e2c3ffa23ea5f95f1c904014385a55902a11a67cd43c10edf61a653467/pyzmq-26.2.1-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:9ec6abfb701437142ce9544bd6a236addaf803a32628d2260eb3dbd9a60e2891", size = 1339670 }, + { url = "https://files.pythonhosted.org/packages/d2/87/da5519ed7f8b31e4beee8f57311ec02926822fe23a95120877354cd80144/pyzmq-26.2.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e1eb9d2bfdf5b4e21165b553a81b2c3bd5be06eeddcc4e08e9692156d21f1f6", size = 660983 }, + { url = "https://files.pythonhosted.org/packages/f6/e8/1ca6a2d59562e04d326a026c9e3f791a6f1a276ebde29da478843a566fdb/pyzmq-26.2.1-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:90dc731d8e3e91bcd456aa7407d2eba7ac6f7860e89f3766baabb521f2c1de4a", size = 896509 }, + { url = "https://files.pythonhosted.org/packages/5c/e5/0b4688f7c74bea7e4f1e920da973fcd7d20175f4f1181cb9b692429c6bb9/pyzmq-26.2.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b6a93d684278ad865fc0b9e89fe33f6ea72d36da0e842143891278ff7fd89c3", size = 853196 }, + { url = "https://files.pythonhosted.org/packages/8f/35/c17241da01195001828319e98517683dad0ac4df6fcba68763d61b630390/pyzmq-26.2.1-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:c1bb37849e2294d519117dd99b613c5177934e5c04a5bb05dd573fa42026567e", size = 855133 }, + { url = "https://files.pythonhosted.org/packages/d2/14/268ee49bbecc3f72e225addeac7f0e2bd5808747b78c7bf7f87ed9f9d5a8/pyzmq-26.2.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:632a09c6d8af17b678d84df442e9c3ad8e4949c109e48a72f805b22506c4afa7", size = 1191612 }, + { url = "https://files.pythonhosted.org/packages/5e/02/6394498620b1b4349b95c534f3ebc3aef95f39afbdced5ed7ee315c49c14/pyzmq-26.2.1-cp313-cp313t-musllinux_1_1_i686.whl", hash = "sha256:fc409c18884eaf9ddde516d53af4f2db64a8bc7d81b1a0c274b8aa4e929958e8", size = 1500824 }, + { url = "https://files.pythonhosted.org/packages/17/fc/b79f0b72891cbb9917698add0fede71dfb64e83fa3481a02ed0e78c34be7/pyzmq-26.2.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:17f88622b848805d3f6427ce1ad5a2aa3cf61f12a97e684dab2979802024d460", size = 1399943 }, + { url = "https://files.pythonhosted.org/packages/8d/a4/42e404040ccb3f65bd3b40e368dc96fb04b8e7eea1ecd3ac2ef0e70c51f3/pyzmq-26.2.1-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:a4bffcadfd40660f26d1b3315a6029fd4f8f5bf31a74160b151f5c577b2dc81b", size = 1346647 }, + { url = "https://files.pythonhosted.org/packages/d5/d9/045ee93500e3f8cbd2a7b30a9533cba7b857b51b3bb4ec44fa61eb6d36ef/pyzmq-26.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e76ad4729c2f1cf74b6eb1bdd05f6aba6175999340bd51e6caee49a435a13bf5", size = 943305 }, + { url = "https://files.pythonhosted.org/packages/5c/3b/9437cae0bfd3889dc7741ed9c132dc09c2a1fcae05a2e1b1af41a23a77a2/pyzmq-26.2.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8b0f5bab40a16e708e78a0c6ee2425d27e1a5d8135c7a203b4e977cee37eb4aa", size = 913424 }, + { url = "https://files.pythonhosted.org/packages/5c/16/f1f0e36c9c15247901379b45bd3f7cc15f540b62c9c34c28e735550014b4/pyzmq-26.2.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e8e47050412f0ad3a9b2287779758073cbf10e460d9f345002d4779e43bb0136", size = 867471 }, + { url = "https://files.pythonhosted.org/packages/70/68/3a0dd3b6386d725ffb98378cd046e15333fbcc1e2b3b48dbcda73259a752/pyzmq-26.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f18ce33f422d119b13c1363ed4cce245b342b2c5cbbb76753eabf6aa6f69c7d", size = 679051 }, + { url = "https://files.pythonhosted.org/packages/46/9a/0c57cd9c0aae885a096f0c7ebd658f6c7fda49973e484bf7f1c47288beae/pyzmq-26.2.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ceb0d78b7ef106708a7e2c2914afe68efffc0051dc6a731b0dbacd8b4aee6d68", size = 1208959 }, + { url = "https://files.pythonhosted.org/packages/61/f7/22dcf86ab2a4d458a300698972212be327a66e35785649e9f4bad2260f1c/pyzmq-26.2.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ebdd96bd637fd426d60e86a29ec14b8c1ab64b8d972f6a020baf08a30d1cf46", size = 1521237 }, + { url = "https://files.pythonhosted.org/packages/b4/20/854bb34ac377efbe15d791d6e0bf991d8127cc6d471cd9a2666a13b4f3ba/pyzmq-26.2.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:03719e424150c6395b9513f53a5faadcc1ce4b92abdf68987f55900462ac7eec", size = 1420720 }, + { url = "https://files.pythonhosted.org/packages/6d/e3/07816d8b50a506f6f59d0023b8fefa109d5549a874b9d250137e85dc4305/pyzmq-26.2.1-cp39-cp39-win32.whl", hash = "sha256:ef5479fac31df4b304e96400fc67ff08231873ee3537544aa08c30f9d22fce38", size = 584311 }, + { url = "https://files.pythonhosted.org/packages/9f/78/eeb040669d0ac1fc3c061c8053e96a49e5c612041f462b026ad154001ac1/pyzmq-26.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:f92a002462154c176dac63a8f1f6582ab56eb394ef4914d65a9417f5d9fde218", size = 647856 }, + { url = "https://files.pythonhosted.org/packages/2c/c9/55eb55eda712573ca759e17b9018a2f9dbc4dd34bc7c862c36d574a40b1f/pyzmq-26.2.1-cp39-cp39-win_arm64.whl", hash = "sha256:1fd4b3efc6f62199886440d5e27dd3ccbcb98dfddf330e7396f1ff421bfbb3c2", size = 562372 }, + { url = "https://files.pythonhosted.org/packages/65/d1/e630a75cfb2534574a1258fda54d02f13cf80b576d4ce6d2aa478dc67829/pyzmq-26.2.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:380816d298aed32b1a97b4973a4865ef3be402a2e760204509b52b6de79d755d", size = 847743 }, + { url = "https://files.pythonhosted.org/packages/27/df/f94a711b4f6c4b41e227f9a938103f52acf4c2e949d91cbc682495a48155/pyzmq-26.2.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:97cbb368fd0debdbeb6ba5966aa28e9a1ae3396c7386d15569a6ca4be4572b99", size = 570991 }, + { url = "https://files.pythonhosted.org/packages/bf/08/0c6f97fb3c9dbfa23382f0efaf8f9aa1396a08a3358974eaae3ee659ed5c/pyzmq-26.2.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abf7b5942c6b0dafcc2823ddd9154f419147e24f8df5b41ca8ea40a6db90615c", size = 799664 }, + { url = "https://files.pythonhosted.org/packages/05/14/f4d4fd8bb8988c667845734dd756e9ee65b9a17a010d5f288dfca14a572d/pyzmq-26.2.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3fe6e28a8856aea808715f7a4fc11f682b9d29cac5d6262dd8fe4f98edc12d53", size = 758156 }, + { url = "https://files.pythonhosted.org/packages/e3/fe/72e7e166bda3885810bee7b23049133e142f7c80c295bae02c562caeea16/pyzmq-26.2.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:bd8fdee945b877aa3bffc6a5a8816deb048dab0544f9df3731ecd0e54d8c84c9", size = 556563 }, + { url = "https://files.pythonhosted.org/packages/d9/6b/f27dfd4b7b3d6a8bd39ab1469fb8f8685c597d6772cbf3b39b1c4d798eee/pyzmq-26.2.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:1238c2448c58b9c8d6565579393148414a42488a5f916b3f322742e561f6ae0d", size = 847735 }, + { url = "https://files.pythonhosted.org/packages/f5/1f/fe0698f36c619bc960e97efe9a8ece412a7dc4c80e0bd603cde81731c6ca/pyzmq-26.2.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8eddb3784aed95d07065bcf94d07e8c04024fdb6b2386f08c197dfe6b3528fda", size = 570986 }, + { url = "https://files.pythonhosted.org/packages/91/2e/f7f6c00d16db2b1936f3cd3b8362c391e40dd16a646b92ebf2f3b28206ee/pyzmq-26.2.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f0f19c2097fffb1d5b07893d75c9ee693e9cbc809235cf3f2267f0ef6b015f24", size = 799658 }, + { url = "https://files.pythonhosted.org/packages/50/98/aa114911fcb65645099d6db5694a49975ef442f2c34532ea5365b6ec6da8/pyzmq-26.2.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0995fd3530f2e89d6b69a2202e340bbada3191014352af978fa795cb7a446331", size = 758151 }, + { url = "https://files.pythonhosted.org/packages/53/58/9909ad7a3112999a30464c5c92937c9eec5f5e6905a1eee45fd99788ce56/pyzmq-26.2.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:7c6160fe513654e65665332740f63de29ce0d165e053c0c14a161fa60dd0da01", size = 756685 }, + { url = "https://files.pythonhosted.org/packages/01/28/1c0f44e609b91a1168aaf4ac38511645fd725593b41cd54ef06744d502ff/pyzmq-26.2.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:8ec8e3aea6146b761d6c57fcf8f81fcb19f187afecc19bf1701a48db9617a217", size = 556558 }, ] [[package]] @@ -2204,11 +2275,11 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "dill" }, { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "numpy", version = "2.2.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "numpy", version = "2.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "python-dateutil" }, { name = "rustworkx" }, { name = "scipy", version = "1.13.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "scipy", version = "1.15.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "scipy", version = "1.15.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "stevedore" }, { name = "symengine" }, { name = "sympy" }, @@ -2398,7 +2469,7 @@ version = "0.16.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "numpy", version = "2.2.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "numpy", version = "2.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/a5/c4/6d6ef39e57610d54c5f106dc3dece9eebce8b9d52d561ae092e3aede1b66/rustworkx-0.16.0.tar.gz", hash = "sha256:9f0dcb83f38d5ca2c3a683eb9b6951c8aec3262fbfe5141946a7ee5ba37e0bb6", size = 349524 } wheels = [ @@ -2469,57 +2540,64 @@ wheels = [ [[package]] name = "scipy" -version = "1.15.1" +version = "1.15.2" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.12'", + "python_full_version >= '3.13'", + "python_full_version == '3.12.*'", "python_full_version == '3.11.*'", "python_full_version == '3.10.*'", ] dependencies = [ - { name = "numpy", version = "2.2.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/76/c6/8eb0654ba0c7d0bb1bf67bf8fbace101a8e4f250f7722371105e8b6f68fc/scipy-1.15.1.tar.gz", hash = "sha256:033a75ddad1463970c96a88063a1df87ccfddd526437136b6ee81ff0312ebdf6", size = 59407493 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/86/53/b204ce5a4433f1864001b9d16f103b9c25f5002a602ae83585d0ea5f9c4a/scipy-1.15.1-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:c64ded12dcab08afff9e805a67ff4480f5e69993310e093434b10e85dc9d43e1", size = 41414518 }, - { url = "https://files.pythonhosted.org/packages/c7/fc/54ffa7a8847f7f303197a6ba65a66104724beba2e38f328135a78f0dc480/scipy-1.15.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:5b190b935e7db569960b48840e5bef71dc513314cc4e79a1b7d14664f57fd4ff", size = 32519265 }, - { url = "https://files.pythonhosted.org/packages/f1/77/a98b8ba03d6f371dc31a38719affd53426d4665729dcffbed4afe296784a/scipy-1.15.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:4b17d4220df99bacb63065c76b0d1126d82bbf00167d1730019d2a30d6ae01ea", size = 24792859 }, - { url = "https://files.pythonhosted.org/packages/a7/78/70bb9f0df7444b18b108580934bfef774822e28fd34a68e5c263c7d2828a/scipy-1.15.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:63b9b6cd0333d0eb1a49de6f834e8aeaefe438df8f6372352084535ad095219e", size = 27886506 }, - { url = "https://files.pythonhosted.org/packages/14/a7/f40f6033e06de4176ddd6cc8c3ae9f10a226c3bca5d6b4ab883bc9914a14/scipy-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f151e9fb60fbf8e52426132f473221a49362091ce7a5e72f8aa41f8e0da4f25", size = 38375041 }, - { url = "https://files.pythonhosted.org/packages/17/03/390a1c5c61fd76b0fa4b3c5aa3bdd7e60f6c46f712924f1a9df5705ec046/scipy-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21e10b1dd56ce92fba3e786007322542361984f8463c6d37f6f25935a5a6ef52", size = 40597556 }, - { url = "https://files.pythonhosted.org/packages/4e/70/fa95b3ae026b97eeca58204a90868802e5155ac71b9d7bdee92b68115dd3/scipy-1.15.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5dff14e75cdbcf07cdaa1c7707db6017d130f0af9ac41f6ce443a93318d6c6e0", size = 42938505 }, - { url = "https://files.pythonhosted.org/packages/d6/07/427859116bdd71847c898180f01802691f203c3e2455a1eb496130ff07c5/scipy-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:f82fcf4e5b377f819542fbc8541f7b5fbcf1c0017d0df0bc22c781bf60abc4d8", size = 43909663 }, - { url = "https://files.pythonhosted.org/packages/8e/2e/7b71312da9c2dabff53e7c9a9d08231bc34d9d8fdabe88a6f1155b44591c/scipy-1.15.1-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:5bd8d27d44e2c13d0c1124e6a556454f52cd3f704742985f6b09e75e163d20d2", size = 41424362 }, - { url = "https://files.pythonhosted.org/packages/81/8c/ab85f1aa1cc200c796532a385b6ebf6a81089747adc1da7482a062acc46c/scipy-1.15.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:be3deeb32844c27599347faa077b359584ba96664c5c79d71a354b80a0ad0ce0", size = 32535910 }, - { url = "https://files.pythonhosted.org/packages/3b/9c/6f4b787058daa8d8da21ddff881b4320e28de4704a65ec147adb50cb2230/scipy-1.15.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:5eb0ca35d4b08e95da99a9f9c400dc9f6c21c424298a0ba876fdc69c7afacedf", size = 24809398 }, - { url = "https://files.pythonhosted.org/packages/16/2b/949460a796df75fc7a1ee1becea202cf072edbe325ebe29f6d2029947aa7/scipy-1.15.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:74bb864ff7640dea310a1377d8567dc2cb7599c26a79ca852fc184cc851954ac", size = 27918045 }, - { url = "https://files.pythonhosted.org/packages/5f/36/67fe249dd7ccfcd2a38b25a640e3af7e59d9169c802478b6035ba91dfd6d/scipy-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:667f950bf8b7c3a23b4199db24cb9bf7512e27e86d0e3813f015b74ec2c6e3df", size = 38332074 }, - { url = "https://files.pythonhosted.org/packages/fc/da/452e1119e6f720df3feb588cce3c42c5e3d628d4bfd4aec097bd30b7de0c/scipy-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:395be70220d1189756068b3173853029a013d8c8dd5fd3d1361d505b2aa58fa7", size = 40588469 }, - { url = "https://files.pythonhosted.org/packages/7f/71/5f94aceeac99a4941478af94fe9f459c6752d497035b6b0761a700f5f9ff/scipy-1.15.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ce3a000cd28b4430426db2ca44d96636f701ed12e2b3ca1f2b1dd7abdd84b39a", size = 42965214 }, - { url = "https://files.pythonhosted.org/packages/af/25/caa430865749d504271757cafd24066d596217e83326155993980bc22f97/scipy-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:3fe1d95944f9cf6ba77aa28b82dd6bb2a5b52f2026beb39ecf05304b8392864b", size = 43896034 }, - { url = "https://files.pythonhosted.org/packages/d8/6e/a9c42d0d39e09ed7fd203d0ac17adfea759cba61ab457671fe66e523dbec/scipy-1.15.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c09aa9d90f3500ea4c9b393ee96f96b0ccb27f2f350d09a47f533293c78ea776", size = 41478318 }, - { url = "https://files.pythonhosted.org/packages/04/ee/e3e535c81828618878a7433992fecc92fa4df79393f31a8fea1d05615091/scipy-1.15.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:0ac102ce99934b162914b1e4a6b94ca7da0f4058b6d6fd65b0cef330c0f3346f", size = 32596696 }, - { url = "https://files.pythonhosted.org/packages/c4/5e/b1b0124be8e76f87115f16b8915003eec4b7060298117715baf13f51942c/scipy-1.15.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:09c52320c42d7f5c7748b69e9f0389266fd4f82cf34c38485c14ee976cb8cb04", size = 24870366 }, - { url = "https://files.pythonhosted.org/packages/14/36/c00cb73eefda85946172c27913ab995c6ad4eee00fa4f007572e8c50cd51/scipy-1.15.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:cdde8414154054763b42b74fe8ce89d7f3d17a7ac5dd77204f0e142cdc9239e9", size = 28007461 }, - { url = "https://files.pythonhosted.org/packages/68/94/aff5c51b3799349a9d1e67a056772a0f8a47db371e83b498d43467806557/scipy-1.15.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c9d8fc81d6a3b6844235e6fd175ee1d4c060163905a2becce8e74cb0d7554ce", size = 38068174 }, - { url = "https://files.pythonhosted.org/packages/b0/3c/0de11ca154e24a57b579fb648151d901326d3102115bc4f9a7a86526ce54/scipy-1.15.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0fb57b30f0017d4afa5fe5f5b150b8f807618819287c21cbe51130de7ccdaed2", size = 40249869 }, - { url = "https://files.pythonhosted.org/packages/15/09/472e8d0a6b33199d1bb95e49bedcabc0976c3724edd9b0ef7602ccacf41e/scipy-1.15.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:491d57fe89927fa1aafbe260f4cfa5ffa20ab9f1435025045a5315006a91b8f5", size = 42629068 }, - { url = "https://files.pythonhosted.org/packages/ff/ba/31c7a8131152822b3a2cdeba76398ffb404d81d640de98287d236da90c49/scipy-1.15.1-cp312-cp312-win_amd64.whl", hash = "sha256:900f3fa3db87257510f011c292a5779eb627043dd89731b9c461cd16ef76ab3d", size = 43621992 }, - { url = "https://files.pythonhosted.org/packages/2b/bf/dd68965a4c5138a630eeed0baec9ae96e5d598887835bdde96cdd2fe4780/scipy-1.15.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:100193bb72fbff37dbd0bf14322314fc7cbe08b7ff3137f11a34d06dc0ee6b85", size = 41441136 }, - { url = "https://files.pythonhosted.org/packages/ef/5e/4928581312922d7e4d416d74c416a660addec4dd5ea185401df2269ba5a0/scipy-1.15.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:2114a08daec64980e4b4cbdf5bee90935af66d750146b1d2feb0d3ac30613692", size = 32533699 }, - { url = "https://files.pythonhosted.org/packages/32/90/03f99c43041852837686898c66767787cd41c5843d7a1509c39ffef683e9/scipy-1.15.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:6b3e71893c6687fc5e29208d518900c24ea372a862854c9888368c0b267387ab", size = 24807289 }, - { url = "https://files.pythonhosted.org/packages/9d/52/bfe82b42ae112eaba1af2f3e556275b8727d55ac6e4932e7aef337a9d9d4/scipy-1.15.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:837299eec3d19b7e042923448d17d95a86e43941104d33f00da7e31a0f715d3c", size = 27929844 }, - { url = "https://files.pythonhosted.org/packages/f6/77/54ff610bad600462c313326acdb035783accc6a3d5f566d22757ad297564/scipy-1.15.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82add84e8a9fb12af5c2c1a3a3f1cb51849d27a580cb9e6bd66226195142be6e", size = 38031272 }, - { url = "https://files.pythonhosted.org/packages/f1/26/98585cbf04c7cf503d7eb0a1966df8a268154b5d923c5fe0c1ed13154c49/scipy-1.15.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:070d10654f0cb6abd295bc96c12656f948e623ec5f9a4eab0ddb1466c000716e", size = 40210217 }, - { url = "https://files.pythonhosted.org/packages/fd/3f/3d2285eb6fece8bc5dbb2f9f94d61157d61d155e854fd5fea825b8218f12/scipy-1.15.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:55cc79ce4085c702ac31e49b1e69b27ef41111f22beafb9b49fea67142b696c4", size = 42587785 }, - { url = "https://files.pythonhosted.org/packages/48/7d/5b5251984bf0160d6533695a74a5fddb1fa36edd6f26ffa8c871fbd4782a/scipy-1.15.1-cp313-cp313-win_amd64.whl", hash = "sha256:c352c1b6d7cac452534517e022f8f7b8d139cd9f27e6fbd9f3cbd0bfd39f5bef", size = 43640439 }, - { url = "https://files.pythonhosted.org/packages/e7/b8/0e092f592d280496de52e152582030f8a270b194f87f890e1a97c5599b81/scipy-1.15.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0458839c9f873062db69a03de9a9765ae2e694352c76a16be44f93ea45c28d2b", size = 41619862 }, - { url = "https://files.pythonhosted.org/packages/f6/19/0b6e1173aba4db9e0b7aa27fe45019857fb90d6904038b83927cbe0a6c1d/scipy-1.15.1-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:af0b61c1de46d0565b4b39c6417373304c1d4f5220004058bdad3061c9fa8a95", size = 32610387 }, - { url = "https://files.pythonhosted.org/packages/e7/02/754aae3bd1fa0f2479ade3cfdf1732ecd6b05853f63eee6066a32684563a/scipy-1.15.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:71ba9a76c2390eca6e359be81a3e879614af3a71dfdabb96d1d7ab33da6f2364", size = 24883814 }, - { url = "https://files.pythonhosted.org/packages/1f/ac/d7906201604a2ea3b143bb0de51b3966f66441ba50b7dc182c4505b3edf9/scipy-1.15.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:14eaa373c89eaf553be73c3affb11ec6c37493b7eaaf31cf9ac5dffae700c2e0", size = 27944865 }, - { url = "https://files.pythonhosted.org/packages/84/9d/8f539002b5e203723af6a6f513a45e0a7671e9dabeedb08f417ac17e4edc/scipy-1.15.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f735bc41bd1c792c96bc426dece66c8723283695f02df61dcc4d0a707a42fc54", size = 39883261 }, - { url = "https://files.pythonhosted.org/packages/97/c0/62fd3bab828bcccc9b864c5997645a3b86372a35941cdaf677565c25c98d/scipy-1.15.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2722a021a7929d21168830790202a75dbb20b468a8133c74a2c0230c72626b6c", size = 42093299 }, - { url = "https://files.pythonhosted.org/packages/e4/1f/5d46a8d94e9f6d2c913cbb109e57e7eed914de38ea99e2c4d69a9fc93140/scipy-1.15.1-cp313-cp313t-win_amd64.whl", hash = "sha256:bc7136626261ac1ed988dca56cfc4ab5180f75e0ee52e58f1e6aa74b5f3eacd5", size = 43181730 }, + { name = "numpy", version = "2.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b7/b9/31ba9cd990e626574baf93fbc1ac61cf9ed54faafd04c479117517661637/scipy-1.15.2.tar.gz", hash = "sha256:cd58a314d92838f7e6f755c8a2167ead4f27e1fd5c1251fd54289569ef3495ec", size = 59417316 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/95/df/ef233fff6838fe6f7840d69b5ef9f20d2b5c912a8727b21ebf876cb15d54/scipy-1.15.2-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:a2ec871edaa863e8213ea5df811cd600734f6400b4af272e1c011e69401218e9", size = 38692502 }, + { url = "https://files.pythonhosted.org/packages/5c/20/acdd4efb8a68b842968f7bc5611b1aeb819794508771ad104de418701422/scipy-1.15.2-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:6f223753c6ea76983af380787611ae1291e3ceb23917393079dcc746ba60cfb5", size = 30085508 }, + { url = "https://files.pythonhosted.org/packages/42/55/39cf96ca7126f1e78ee72a6344ebdc6702fc47d037319ad93221063e6cf4/scipy-1.15.2-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:ecf797d2d798cf7c838c6d98321061eb3e72a74710e6c40540f0e8087e3b499e", size = 22359166 }, + { url = "https://files.pythonhosted.org/packages/51/48/708d26a4ab8a1441536bf2dfcad1df0ca14a69f010fba3ccbdfc02df7185/scipy-1.15.2-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:9b18aa747da280664642997e65aab1dd19d0c3d17068a04b3fe34e2559196cb9", size = 25112047 }, + { url = "https://files.pythonhosted.org/packages/dd/65/f9c5755b995ad892020381b8ae11f16d18616208e388621dfacc11df6de6/scipy-1.15.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:87994da02e73549dfecaed9e09a4f9d58a045a053865679aeb8d6d43747d4df3", size = 35536214 }, + { url = "https://files.pythonhosted.org/packages/de/3c/c96d904b9892beec978562f64d8cc43f9cca0842e65bd3cd1b7f7389b0ba/scipy-1.15.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:69ea6e56d00977f355c0f84eba69877b6df084516c602d93a33812aa04d90a3d", size = 37646981 }, + { url = "https://files.pythonhosted.org/packages/3d/74/c2d8a24d18acdeae69ed02e132b9bc1bb67b7bee90feee1afe05a68f9d67/scipy-1.15.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:888307125ea0c4466287191e5606a2c910963405ce9671448ff9c81c53f85f58", size = 37230048 }, + { url = "https://files.pythonhosted.org/packages/42/19/0aa4ce80eca82d487987eff0bc754f014dec10d20de2f66754fa4ea70204/scipy-1.15.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:9412f5e408b397ff5641080ed1e798623dbe1ec0d78e72c9eca8992976fa65aa", size = 40010322 }, + { url = "https://files.pythonhosted.org/packages/d0/d2/f0683b7e992be44d1475cc144d1f1eeae63c73a14f862974b4db64af635e/scipy-1.15.2-cp310-cp310-win_amd64.whl", hash = "sha256:b5e025e903b4f166ea03b109bb241355b9c42c279ea694d8864d033727205e65", size = 41233385 }, + { url = "https://files.pythonhosted.org/packages/40/1f/bf0a5f338bda7c35c08b4ed0df797e7bafe8a78a97275e9f439aceb46193/scipy-1.15.2-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:92233b2df6938147be6fa8824b8136f29a18f016ecde986666be5f4d686a91a4", size = 38703651 }, + { url = "https://files.pythonhosted.org/packages/de/54/db126aad3874601048c2c20ae3d8a433dbfd7ba8381551e6f62606d9bd8e/scipy-1.15.2-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:62ca1ff3eb513e09ed17a5736929429189adf16d2d740f44e53270cc800ecff1", size = 30102038 }, + { url = "https://files.pythonhosted.org/packages/61/d8/84da3fffefb6c7d5a16968fe5b9f24c98606b165bb801bb0b8bc3985200f/scipy-1.15.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:4c6676490ad76d1c2894d77f976144b41bd1a4052107902238047fb6a473e971", size = 22375518 }, + { url = "https://files.pythonhosted.org/packages/44/78/25535a6e63d3b9c4c90147371aedb5d04c72f3aee3a34451f2dc27c0c07f/scipy-1.15.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:a8bf5cb4a25046ac61d38f8d3c3426ec11ebc350246a4642f2f315fe95bda655", size = 25142523 }, + { url = "https://files.pythonhosted.org/packages/e0/22/4b4a26fe1cd9ed0bc2b2cb87b17d57e32ab72c346949eaf9288001f8aa8e/scipy-1.15.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a8e34cf4c188b6dd004654f88586d78f95639e48a25dfae9c5e34a6dc34547e", size = 35491547 }, + { url = "https://files.pythonhosted.org/packages/32/ea/564bacc26b676c06a00266a3f25fdfe91a9d9a2532ccea7ce6dd394541bc/scipy-1.15.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28a0d2c2075946346e4408b211240764759e0fabaeb08d871639b5f3b1aca8a0", size = 37634077 }, + { url = "https://files.pythonhosted.org/packages/43/c2/bfd4e60668897a303b0ffb7191e965a5da4056f0d98acfb6ba529678f0fb/scipy-1.15.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:42dabaaa798e987c425ed76062794e93a243be8f0f20fff6e7a89f4d61cb3d40", size = 37231657 }, + { url = "https://files.pythonhosted.org/packages/4a/75/5f13050bf4f84c931bcab4f4e83c212a36876c3c2244475db34e4b5fe1a6/scipy-1.15.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6f5e296ec63c5da6ba6fa0343ea73fd51b8b3e1a300b0a8cae3ed4b1122c7462", size = 40035857 }, + { url = "https://files.pythonhosted.org/packages/b9/8b/7ec1832b09dbc88f3db411f8cdd47db04505c4b72c99b11c920a8f0479c3/scipy-1.15.2-cp311-cp311-win_amd64.whl", hash = "sha256:597a0c7008b21c035831c39927406c6181bcf8f60a73f36219b69d010aa04737", size = 41217654 }, + { url = "https://files.pythonhosted.org/packages/4b/5d/3c78815cbab499610f26b5bae6aed33e227225a9fa5290008a733a64f6fc/scipy-1.15.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c4697a10da8f8765bb7c83e24a470da5797e37041edfd77fd95ba3811a47c4fd", size = 38756184 }, + { url = "https://files.pythonhosted.org/packages/37/20/3d04eb066b471b6e171827548b9ddb3c21c6bbea72a4d84fc5989933910b/scipy-1.15.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:869269b767d5ee7ea6991ed7e22b3ca1f22de73ab9a49c44bad338b725603301", size = 30163558 }, + { url = "https://files.pythonhosted.org/packages/a4/98/e5c964526c929ef1f795d4c343b2ff98634ad2051bd2bbadfef9e772e413/scipy-1.15.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:bad78d580270a4d32470563ea86c6590b465cb98f83d760ff5b0990cb5518a93", size = 22437211 }, + { url = "https://files.pythonhosted.org/packages/1d/cd/1dc7371e29195ecbf5222f9afeedb210e0a75057d8afbd942aa6cf8c8eca/scipy-1.15.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:b09ae80010f52efddb15551025f9016c910296cf70adbf03ce2a8704f3a5ad20", size = 25232260 }, + { url = "https://files.pythonhosted.org/packages/f0/24/1a181a9e5050090e0b5138c5f496fee33293c342b788d02586bc410c6477/scipy-1.15.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a6fd6eac1ce74a9f77a7fc724080d507c5812d61e72bd5e4c489b042455865e", size = 35198095 }, + { url = "https://files.pythonhosted.org/packages/c0/53/eaada1a414c026673eb983f8b4a55fe5eb172725d33d62c1b21f63ff6ca4/scipy-1.15.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b871df1fe1a3ba85d90e22742b93584f8d2b8e6124f8372ab15c71b73e428b8", size = 37297371 }, + { url = "https://files.pythonhosted.org/packages/e9/06/0449b744892ed22b7e7b9a1994a866e64895363572677a316a9042af1fe5/scipy-1.15.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:03205d57a28e18dfd39f0377d5002725bf1f19a46f444108c29bdb246b6c8a11", size = 36872390 }, + { url = "https://files.pythonhosted.org/packages/6a/6f/a8ac3cfd9505ec695c1bc35edc034d13afbd2fc1882a7c6b473e280397bb/scipy-1.15.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:601881dfb761311045b03114c5fe718a12634e5608c3b403737ae463c9885d53", size = 39700276 }, + { url = "https://files.pythonhosted.org/packages/f5/6f/e6e5aff77ea2a48dd96808bb51d7450875af154ee7cbe72188afb0b37929/scipy-1.15.2-cp312-cp312-win_amd64.whl", hash = "sha256:e7c68b6a43259ba0aab737237876e5c2c549a031ddb7abc28c7b47f22e202ded", size = 40942317 }, + { url = "https://files.pythonhosted.org/packages/53/40/09319f6e0f276ea2754196185f95cd191cb852288440ce035d5c3a931ea2/scipy-1.15.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01edfac9f0798ad6b46d9c4c9ca0e0ad23dbf0b1eb70e96adb9fa7f525eff0bf", size = 38717587 }, + { url = "https://files.pythonhosted.org/packages/fe/c3/2854f40ecd19585d65afaef601e5e1f8dbf6758b2f95b5ea93d38655a2c6/scipy-1.15.2-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:08b57a9336b8e79b305a143c3655cc5bdbe6d5ece3378578888d2afbb51c4e37", size = 30100266 }, + { url = "https://files.pythonhosted.org/packages/dd/b1/f9fe6e3c828cb5930b5fe74cb479de5f3d66d682fa8adb77249acaf545b8/scipy-1.15.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:54c462098484e7466362a9f1672d20888f724911a74c22ae35b61f9c5919183d", size = 22373768 }, + { url = "https://files.pythonhosted.org/packages/15/9d/a60db8c795700414c3f681908a2b911e031e024d93214f2d23c6dae174ab/scipy-1.15.2-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:cf72ff559a53a6a6d77bd8eefd12a17995ffa44ad86c77a5df96f533d4e6c6bb", size = 25154719 }, + { url = "https://files.pythonhosted.org/packages/37/3b/9bda92a85cd93f19f9ed90ade84aa1e51657e29988317fabdd44544f1dd4/scipy-1.15.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9de9d1416b3d9e7df9923ab23cd2fe714244af10b763975bea9e4f2e81cebd27", size = 35163195 }, + { url = "https://files.pythonhosted.org/packages/03/5a/fc34bf1aa14dc7c0e701691fa8685f3faec80e57d816615e3625f28feb43/scipy-1.15.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb530e4794fc8ea76a4a21ccb67dea33e5e0e60f07fc38a49e821e1eae3b71a0", size = 37255404 }, + { url = "https://files.pythonhosted.org/packages/4a/71/472eac45440cee134c8a180dbe4c01b3ec247e0338b7c759e6cd71f199a7/scipy-1.15.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5ea7ed46d437fc52350b028b1d44e002646e28f3e8ddc714011aaf87330f2f32", size = 36860011 }, + { url = "https://files.pythonhosted.org/packages/01/b3/21f890f4f42daf20e4d3aaa18182dddb9192771cd47445aaae2e318f6738/scipy-1.15.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:11e7ad32cf184b74380f43d3c0a706f49358b904fa7d5345f16ddf993609184d", size = 39657406 }, + { url = "https://files.pythonhosted.org/packages/0d/76/77cf2ac1f2a9cc00c073d49e1e16244e389dd88e2490c91d84e1e3e4d126/scipy-1.15.2-cp313-cp313-win_amd64.whl", hash = "sha256:a5080a79dfb9b78b768cebf3c9dcbc7b665c5875793569f48bf0e2b1d7f68f6f", size = 40961243 }, + { url = "https://files.pythonhosted.org/packages/4c/4b/a57f8ddcf48e129e6054fa9899a2a86d1fc6b07a0e15c7eebff7ca94533f/scipy-1.15.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:447ce30cee6a9d5d1379087c9e474628dab3db4a67484be1b7dc3196bfb2fac9", size = 38870286 }, + { url = "https://files.pythonhosted.org/packages/0c/43/c304d69a56c91ad5f188c0714f6a97b9c1fed93128c691148621274a3a68/scipy-1.15.2-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:c90ebe8aaa4397eaefa8455a8182b164a6cc1d59ad53f79943f266d99f68687f", size = 30141634 }, + { url = "https://files.pythonhosted.org/packages/44/1a/6c21b45d2548eb73be9b9bff421aaaa7e85e22c1f9b3bc44b23485dfce0a/scipy-1.15.2-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:def751dd08243934c884a3221156d63e15234a3155cf25978b0a668409d45eb6", size = 22415179 }, + { url = "https://files.pythonhosted.org/packages/74/4b/aefac4bba80ef815b64f55da06f62f92be5d03b467f2ce3668071799429a/scipy-1.15.2-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:302093e7dfb120e55515936cb55618ee0b895f8bcaf18ff81eca086c17bd80af", size = 25126412 }, + { url = "https://files.pythonhosted.org/packages/b1/53/1cbb148e6e8f1660aacd9f0a9dfa2b05e9ff1cb54b4386fe868477972ac2/scipy-1.15.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7cd5b77413e1855351cdde594eca99c1f4a588c2d63711388b6a1f1c01f62274", size = 34952867 }, + { url = "https://files.pythonhosted.org/packages/2c/23/e0eb7f31a9c13cf2dca083828b97992dd22f8184c6ce4fec5deec0c81fcf/scipy-1.15.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d0194c37037707b2afa7a2f2a924cf7bac3dc292d51b6a925e5fcb89bc5c776", size = 36890009 }, + { url = "https://files.pythonhosted.org/packages/03/f3/e699e19cabe96bbac5189c04aaa970718f0105cff03d458dc5e2b6bd1e8c/scipy-1.15.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:bae43364d600fdc3ac327db99659dcb79e6e7ecd279a75fe1266669d9a652828", size = 36545159 }, + { url = "https://files.pythonhosted.org/packages/af/f5/ab3838e56fe5cc22383d6fcf2336e48c8fe33e944b9037fbf6cbdf5a11f8/scipy-1.15.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f031846580d9acccd0044efd1a90e6f4df3a6e12b4b6bd694a7bc03a89892b28", size = 39136566 }, + { url = "https://files.pythonhosted.org/packages/0a/c8/b3f566db71461cabd4b2d5b39bcc24a7e1c119535c8361f81426be39bb47/scipy-1.15.2-cp313-cp313t-win_amd64.whl", hash = "sha256:fe8a9eb875d430d81755472c5ba75e84acc980e4a8f6204d402849234d3017db", size = 40477705 }, ] [[package]] @@ -2530,7 +2608,7 @@ dependencies = [ { name = "matplotlib", version = "3.9.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, { name = "matplotlib", version = "3.10.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "numpy", version = "2.2.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "numpy", version = "2.2.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "pandas" }, ] sdist = { url = "https://files.pythonhosted.org/packages/86/59/a451d7420a77ab0b98f7affa3a1d78a313d2f7281a57afb1a34bae8ab412/seaborn-0.13.2.tar.gz", hash = "sha256:93e60a40988f4d65e9f4885df477e2fdaff6b73a9ded434c1ab356dd57eefff7", size = 1457696 } @@ -2626,7 +2704,8 @@ name = "sphinx" version = "8.1.3" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.12'", + "python_full_version >= '3.13'", + "python_full_version == '3.12.*'", "python_full_version == '3.11.*'", "python_full_version == '3.10.*'", ] @@ -2656,7 +2735,7 @@ wheels = [ [[package]] name = "sphinx-autoapi" -version = "3.4.0" +version = "3.5.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "astroid" }, @@ -2666,9 +2745,9 @@ dependencies = [ { name = "sphinx", version = "8.1.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "stdlib-list", marker = "python_full_version < '3.10'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/4a/eb/cc243583bb1d518ca3b10998c203d919a8ed90affd4831f2b61ad09043d2/sphinx_autoapi-3.4.0.tar.gz", hash = "sha256:e6d5371f9411bbb9fca358c00a9e57aef3ac94cbfc5df4bab285946462f69e0c", size = 29292 } +sdist = { url = "https://files.pythonhosted.org/packages/a1/0a/b94f4ea0d3bd16216de98eb7012fca31b4c5243d882ec1369dd848f300d9/sphinx_autoapi-3.5.0.tar.gz", hash = "sha256:10dcdf86e078ae1fb144f653341794459e86f5b23cf3e786a735def71f564089", size = 55377 } wheels = [ - { url = "https://files.pythonhosted.org/packages/de/d6/f2acdc2567337fd5f5dc091a4e58d8a0fb14927b9779fc1e5ecee96d9824/sphinx_autoapi-3.4.0-py3-none-any.whl", hash = "sha256:4027fef2875a22c5f2a57107c71641d82f6166bf55beb407a47aaf3ef14e7b92", size = 34095 }, + { url = "https://files.pythonhosted.org/packages/9e/f7/6fb9c56af4533058649741c59b43f7d8cdd7d41b4867f6246f41a5a689fd/sphinx_autoapi-3.5.0-py3-none-any.whl", hash = "sha256:8676db32dded669dc6be9100696652640dc1e883e45b74710d74eb547a310114", size = 35201 }, ] [[package]] @@ -2691,7 +2770,8 @@ name = "sphinx-autodoc-typehints" version = "3.0.1" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version >= '3.12'", + "python_full_version >= '3.13'", + "python_full_version == '3.12.*'", "python_full_version == '3.11.*'", "python_full_version == '3.10.*'", ]