Skip to main content

A tool for Quantum Circuit Mapping

Project description

PyPI OS License: MIT CI Bindings codecov

MQT QMAP - A tool for Quantum Circuit Mapping written in C++

A tool for quantum circuit mapping developed by the Chair for Design Automation at the Technical University of Munich based on methods proposed in [1] , [2] , [3] , [4].

[1] A. Zulehner, A. Paler, and R. Wille. An Efficient Methodology for Mapping Quantum Circuits to the IBM QX Architectures. IEEE Transactions on Computer Aided Design of Integrated Circuits and Systems (TCAD), 2018.

[2] R. Wille, L. Burgholzer, and A. Zulehner. Mapping Quantum Circuits to IBM QX Architectures Using the Minimal Number of SWAP and H Operations. In Design Automation Conference (DAC), 2019.

[3] S. Hillmich, A. Zulehner, and R. Wille. Exploiting Quantum Teleportation in Quantum Circuit Mapping. In Asia and South Pacific Design Automation Conference (ASP-DAC), 2021.

[4] L. Burgholzer, S. Schneider, and R. Wille. Limiting the Search Space in Optimal Quantum Circuit Mapping. In Asia and South Pacific Design Automation Conference (ASP-DAC), 2022.

QMAP is part of the Munich Quantum Toolkit (MQT; formerly known as JKQ and developed by the Institute for Integrated Circuits at the Johannes Kepler University Linz). It builds upon our quantum functionality representation (QFR) and can be used for mapping quantum circuits in any of the following formats:

to any given architecture with the following available methods:

  • Heuristic Mapper: Heuristic solution based on A* search. For details see [1] and [3].
  • Exact Mapper: Exact solution utilizing the SMT Solver Z3. For details see [2] and [4].

Note that, at the moment, circuits to be mapped are assumed to be already decomposed into elementary gates supported by the targeted device. More specifically, circuits must not contain gates acting on more than two qubits.

For more information, please visit cda.cit.tum.de/research/ibm_qx_mapping/.

If you have any questions, feel free to contact us via quantum.cda@xcit.tum.de or by creating an issue on GitHub.

Usage

MQT QMAP is developed as a C++ library with an easy to use Python interface.

  • In order to make the library as easy to use as possible (without compilation), we provide pre-built wheels for most common platforms (64-bit Linux, MacOS, Windows). These can be installed using
    pip install mqt.qmap
    
    However, in order to get the best performance out of QMAP, it is recommended to build it locally from the source distribution (see system requirements) via
    pip install  mqt.qmap --no-binary mqt.qmap
    
    This enables platform specific compiler optimizations that cannot be enabled on portable wheels.
  • Once installed, start using it in Python:
    from mqt import qmap
    circ_mapped, results = qmap.compile(circ, arch)
    

where circ is either a Qiskit QuantumCircuit object or the path to an input file (in any of the formats listed above) and arch is either

  • a Qiskit Backend instance such as those defined under qiskit.providers.fake_provider (recommended),
  • one of the pre-defined architectures (see below), or
  • the path to a file containing the number of qubits and a line-by-line enumeration of the qubit connections.

Architectures that are available per default (either as strings or under qmap.Arch.<...>) include:

  • IBM_QX4 (5 qubit, directed bow tie layout)
  • IBM_QX5 (16 qubit, directed ladder layout)
  • IBMQ_Yorktown (5 qubit, undirected bow tie layout)
  • IBMQ_London (5 qubit, undirected T-shape layout)
  • IBMQ_Bogota (5 qubit, undirected linear chain layout)
  • IBMQ_Casablanca (7 qubit, undirected H-shape layout)
  • IBMQ_Tokyo (20 qubit, undirected brick-like layout)
  • Rigetti_Agave (8 qubit, undirected ring layout)
  • Rigetti_Aspen (16 qubit, undirected dumbbell layout)

Whether the heuristic (default) or the exact mapper is used can be controlled by passing method="heuristic" or method="exact" to the compile function.

There are several configuration options that can be passed to the compile function:

  • The heuristic mapper offers the initial_layout option, which allows to choose one of the following strategies for choosing an initial layout:

    • identity: map logical qubit q_i to physical qubit Q_i,
    • static: determine fixed initial layout statically at the start of mapping,
    • dynamic (default): determine initial layout on demand during the mapping (this is the only one compatible with teleportation).
  • Both, the exact and the heuristic mapper also offer the layering option, which allows to choose one of the following strategies for partitioning the circuit:

    • individual_gates (default): consider each gate separately,
    • disjoint_qubits: consider gates acting on disjoint qubits as a layer,
    • odd_gates: group pairs of gates. (Note that this strategy was only tested for IBM QX4 with the exact mapping tool and may not work on different architectures)
    • qubit_triangle: add gates to a layer, as long as no more than three qubits are involved. (Note that this strategy only works if the architecture's coupling map contains a triangle, e.g. IBM QX4, and was only tested using the exact mapping tool)
  • The exact mapper offers the encoding option, which allows to choose a different encoding for at-most-one and exactly-one constraints:

    • naive (default): use naive encoding for constraints
    • commander: use commander encoding for at-most-one and exactly-one constraints
    • bimander: use bimander encoding for at-most-one and commander for exactly-one constraints

    As the commander encoding can use different strategies to group the variables, there are different commander_grouping options:

    • halves (default): each group contains half of the total variables
    • logarithm: each group contains at most log2 of the total variables
    • fixed2: each group contains exactly two variables
    • fixed3: each group contains exactly three variables
  • Per default, the exact mapper searches for a suitable mapping by considering every possible (connected) subset of qubits instead of the whole architecture at once. This can be disabled by setting use_subsets=False.

  • The exact mapper also offers the swap_reduction option to enable limiting the number of swaps considered per layer ( as proposed in [4] , which offers the following options:

    • none: consider whole search space
    • coupling_limit (default): calculate the max swaps per layer based on the longest path of current choice of qubits, or if use_subsets is disabled considers the whole architecture
    • increasing: start with 0 swaps and geometrically increase the number of swaps per layer
    • custom: set a custom limit, needs the swap_limit option to set the limit

    Using the use_bdd option, the mapping utilizes BDDs instead of simply removing the permutations from the core routine. This option is not generally advised, as it is more resource intensive in most cases, but is something to try in cases of timeout.

Command-line Executable

QMAP also provides two standalone executables with command-line interface called qmap_heuristic and qmap_exact. They provide the same options as the Python module as flags. Per default, this produces JSON formatted output. In general, we recommend to use the Python approach described above, as these commandline executables might not be maintained in the future.

System Requirements

Building (and running) is continuously tested under Linux, MacOS, and Windows using the latest available system versions for GitHub Actions. However, the implementation should be compatible with any current C++ compiler supporting C++17 and a minimum CMake version of 3.14.

boost/program_options >= 1.50 is required for building the commandline applications of the mapping tool.

In order to build the exact mapping tool and for the Python bindings to work, the SMT Solver Z3 >= 4.8.3 has to be installed and the dynamic linker has to be able to find the library. This can be accomplished in a multitude of ways:

  • Under Ubuntu 20.04 and newer: sudo apt-get install libz3-dev
  • Under macOS: brew install z3
  • Alternatively: pip install z3-solver and then append the corresponding path to the library path (LD_LIBRARY_PATH under Linux, DYLD_LIBRARY_PATH under macOS), e.g. via
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(python -c "import z3; print(z3.__path__[0]+'/lib')")
    
  • Download pre-built binaries from https://github.com/Z3Prover/z3/releases and copy the files to the respective system directories
  • Build Z3 from source and install it to the system

Library Organisation

Internally the MQT QMAP library works in the following way

  • Import input file into a qc::QuantumComputation object
    qc::QuantumComputation qc{};
    std::string circ = "<PATH_TO_CIRCUIT_FILE>";
    qc.import(circ);
    
  • Import architecture file into a Architecture object
    Architecture arch{};
    std::string cm = "<PATH_TO_ARCH_FILE>";
    arch.loadCouplingMap(cm);
    
  • (Optional) Import calibration file into arch object
    std::string cal = "<PATH_TO_CAL_FILE>";
    arch.loadProperties(cal);
    
  • Depending on Method, instantiate a HeuristicMapper or ExactMapper object with the circuit and the architecture
    HeuristicMapper mapper(qc, arch);
    
    or
    ExactMapper mapper(qc, arch);
    
  • Set configuration options, e.g.,
    Configuration config{};
    config.layeringStrategy = Layering::DisjointQubits;
    
  • Perform the actual mapping
    mapper.map(config);
    
  • Dump the mapped circuit
    mapper.dumpResult("<PATH_TO_OUTPUT_FILE>");
    
  • Print the results
    mapper.printResult(std::cout);
    

Configure, Build, and Install

To start off, clone this repository using

git clone --recurse-submodules -j8 https://github.com/cda-tum/qmap 

Note the --recurse-submodules flag. It is required to also clone all the required submodules. If you happen to forget passing the flag on your initial clone, you can initialize all the submodules by executing git submodule update --init --recursive in the main project directory.

Our projects use CMake as the main build configuration tool. Building a project using CMake is a two-stage process. First, CMake needs to be configured by calling

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release

This tells CMake to search the current directory . (passed via -S) for a CMakeLists.txt file and process it into a directory build (passed via -B). The flag -DCMAKE_BUILD_TYPE=Release tells CMake to configure a Release build (as opposed to, e.g., a Debug build).

After configuring with CMake, the project can be built by calling

cmake --build build --config Release

This tries to build the project in the build directory (passed via --build). Some operating systems and developer environments explicitly require a configuration to be set, which is why the --config flag is also passed to the build command. The flag --parallel <NUMBER_OF_THREADS> may be added to trigger a parallel build.

Building the project this way generates

  • the heuristic library libqmap_heuristic_lib.a (Unix) / qmap_heuristic_lib.lib (Windows) in the build/src directory
  • the heuristic mapper commandline executable qmap_heuristic in the build/apps directory (only available if Boost is found)
  • a test executable qmap_heuristic_test containing a small set of unit tests for the heuristic mapper in the build/test directory
  • the exact library libqmap_exact_lib.a (Unix) / qmap_exact_lib.lib (Windows) in the build/src directory (only available if Z3 is found)
  • the exact mapper commandline executable qmap_exact in the build/apps directory (only available if Boost and Z3 is found)
  • a test executable qmap_exact_test containing a small set of unit tests for the exact mapper in the build/test directory (only available if Z3 is found)

Extending the Python Bindings

To extend the Python bindings you can locally install the package in edit mode, so that changes in the Python code are instantly available. The following example assumes you have a virtual environment set up and activated.

(venv) $ pip install cmake
(venv) $ pip install --editable .

If you change parts of the C++ code, you have to run the second line to make the changes visible in Python.

Reference

If you use our tool for your research, we will be thankful if you refer to it by citing the appropriate publications.

For the heuristic mapping, please cite

@article{DBLP:journals/tcad/ZulehnerPW19,
  author    = {Alwin Zulehner and Alexandru Paler and Robert Wille},
  title     = {An Efficient Methodology for Mapping Quantum Circuits to the {IBM QX} Architectures},
  journal   = {{IEEE} Transactions on Computer-Aided Design of Integrated Circuits and Systems},
  volume    = {38},
  number    = {7},
  pages     = {1226--1236},
  year      = {2019}
}

For the teleportation in the heuristic mapping, please cite

@inproceedings{DBLP:conf/aspdac/HillmichZW21,
  author    = {Stefan Hillmich and Alwin Zulehner and Robert Wille},
  title     = {Exploiting Quantum Teleportation in Quantum Circuit Mapping},
  booktitle = {Asia and South Pacific Design Automation Conference},
  pages     = {792--797},
  publisher = {{ACM}},
  year      = {2021}
}

For the exact mapping, please cite

@inproceedings{DBLP:conf/dac/WilleBZ19,
  author    = {Robert Wille and Lukas Burgholzer and Alwin Zulehner},
  title     = {Mapping Quantum Circuits to {IBM QX} Architectures Using the Minimal Number of {SWAP} and {H} Operations},
  booktitle = {Design Automation Conference},
  publisher = {{ACM}},
  year      = {2019}
}

For the search space limitation in the exact mapping, please cite

@inproceedings{burgholzer2022limitingSearchSpace,
  author    = {Lukas Burgholzer and Sarah Schneider and Robert Wille},
  title     = {Limiting the Search Space in Optimal Quantum Circuit Mapping},
  booktitle = {Asia and South Pacific Design Automation Conference},
  year      = {2022}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mqt.qmap-1.10.0.tar.gz (5.8 MB view details)

Uploaded Source

Built Distributions

mqt.qmap-1.10.0-cp311-cp311-win_amd64.whl (6.6 MB view details)

Uploaded CPython 3.11 Windows x86-64

mqt.qmap-1.10.0-cp311-cp311-manylinux_2_28_x86_64.whl (12.7 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ x86-64

mqt.qmap-1.10.0-cp311-cp311-macosx_11_0_arm64.whl (7.0 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

mqt.qmap-1.10.0-cp311-cp311-macosx_10_15_x86_64.whl (7.9 MB view details)

Uploaded CPython 3.11 macOS 10.15+ x86-64

mqt.qmap-1.10.0-cp310-cp310-win_amd64.whl (6.6 MB view details)

Uploaded CPython 3.10 Windows x86-64

mqt.qmap-1.10.0-cp310-cp310-manylinux_2_28_x86_64.whl (12.7 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ x86-64

mqt.qmap-1.10.0-cp310-cp310-macosx_11_0_arm64.whl (7.0 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

mqt.qmap-1.10.0-cp310-cp310-macosx_10_15_x86_64.whl (7.9 MB view details)

Uploaded CPython 3.10 macOS 10.15+ x86-64

mqt.qmap-1.10.0-cp39-cp39-win_amd64.whl (6.6 MB view details)

Uploaded CPython 3.9 Windows x86-64

mqt.qmap-1.10.0-cp39-cp39-manylinux_2_28_x86_64.whl (12.7 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ x86-64

mqt.qmap-1.10.0-cp39-cp39-macosx_11_0_arm64.whl (7.0 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

mqt.qmap-1.10.0-cp39-cp39-macosx_10_15_x86_64.whl (7.9 MB view details)

Uploaded CPython 3.9 macOS 10.15+ x86-64

mqt.qmap-1.10.0-cp38-cp38-win_amd64.whl (6.6 MB view details)

Uploaded CPython 3.8 Windows x86-64

mqt.qmap-1.10.0-cp38-cp38-manylinux_2_28_x86_64.whl (12.7 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.28+ x86-64

mqt.qmap-1.10.0-cp38-cp38-macosx_11_0_arm64.whl (7.0 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

mqt.qmap-1.10.0-cp38-cp38-macosx_10_15_x86_64.whl (7.9 MB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

mqt.qmap-1.10.0-cp37-cp37m-win_amd64.whl (6.6 MB view details)

Uploaded CPython 3.7m Windows x86-64

mqt.qmap-1.10.0-cp37-cp37m-manylinux_2_28_x86_64.whl (12.7 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.28+ x86-64

mqt.qmap-1.10.0-cp37-cp37m-macosx_10_15_x86_64.whl (7.9 MB view details)

Uploaded CPython 3.7m macOS 10.15+ x86-64

File details

Details for the file mqt.qmap-1.10.0.tar.gz.

File metadata

  • Download URL: mqt.qmap-1.10.0.tar.gz
  • Upload date:
  • Size: 5.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for mqt.qmap-1.10.0.tar.gz
Algorithm Hash digest
SHA256 a6fdbf8e70ad601ac5826f9df6dc713dddc633773cf9d8e3a162947fe836f2c1
MD5 4e039fceab25edab41c21fea31b2dc51
BLAKE2b-256 20ec3c0af88240d128522a00dd96b9fde48dbe8e6f5b5faf7b40460fa97d096d

See more details on using hashes here.

File details

Details for the file mqt.qmap-1.10.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for mqt.qmap-1.10.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 bd318d53a056d9098a39caa87dc41eeb7eae552d18701abc63f8b22ab8d98c3c
MD5 24b881fa29ce523146e337887eef62ff
BLAKE2b-256 3deaaf3accdccba836c95f5e336100899be9ce6c860412a3700fbe02e562fa86

See more details on using hashes here.

File details

Details for the file mqt.qmap-1.10.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qmap-1.10.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 df605ce01d20fd46ef6b220f375e5901792c77d053d30e9f5067cbc05be9b49d
MD5 8bbc846eacecb54260b65ffb07d170da
BLAKE2b-256 0e611f72487cac03ec67236ad970891b56e5ba696010050d0e8c541dd6234d63

See more details on using hashes here.

File details

Details for the file mqt.qmap-1.10.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mqt.qmap-1.10.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a3561a33a8137a536fe3b11b4357d9703a95f2678477df253b4ddd83d46dafdf
MD5 c987c01bb35d942137b54c16ad2c8f9f
BLAKE2b-256 945f2e96a83b6424f2eaf9579a08fbad3088e3dc1ce6345e5ecc36c53c8f5290

See more details on using hashes here.

File details

Details for the file mqt.qmap-1.10.0-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qmap-1.10.0-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 3335bea6e7f3c57d03e2c5d88e98240190813f01042c8212adb2b8e072d0f568
MD5 3efd994091fcf23a2dfedbcebb9b373f
BLAKE2b-256 97267141b017bf800c33595c4fa9e2575990a14f282f282017e20b8f1871e7ee

See more details on using hashes here.

File details

Details for the file mqt.qmap-1.10.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for mqt.qmap-1.10.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 49178cd3f34ef553bc4860e9de760a6fe91bfe99075856797a401acdc5e2e8af
MD5 2bd84f592513072ef59a2028a6e314a2
BLAKE2b-256 b126aeefcd86cf8021c7f2022cd1b0fd10337dcd5d888325e871808214eee22c

See more details on using hashes here.

File details

Details for the file mqt.qmap-1.10.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qmap-1.10.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f8d33b7665b648cc2fb6d14e8ea935c601f00d9449c78dea970dce3a4da58f34
MD5 ed3e07e75b2699f5c82f43a15d789a50
BLAKE2b-256 a2550c0bb42f9a4e49e3ff79c4064478f80e88937ea46d19ca1c56b4dc1439ea

See more details on using hashes here.

File details

Details for the file mqt.qmap-1.10.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mqt.qmap-1.10.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 542e02453bffbda64ae48d7b4e7400f605c765de138815c4391b83b44ffa9e35
MD5 9447ccf386f0a2a3010b410094165a14
BLAKE2b-256 37cc77c5f2f54c97141d9d9e027522fcf1499323675e0d07b3c1a5d974cc221e

See more details on using hashes here.

File details

Details for the file mqt.qmap-1.10.0-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qmap-1.10.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 452cce85104f694331b8222d96ad617a684eb259ffaf09eeca622e39cfe50a6b
MD5 b0e1dd36e6dbab7754adb6f30016ff1d
BLAKE2b-256 fef1353466d65f9526cd1f7edc7aa65dd1f605d631410450051c80ec985b12a9

See more details on using hashes here.

File details

Details for the file mqt.qmap-1.10.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: mqt.qmap-1.10.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 6.6 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for mqt.qmap-1.10.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 245a289831a21436bdd548ba180cdd42f491a52f16e7c350c085b71857ed2a90
MD5 e8a98e89cd7e685f287982701e757592
BLAKE2b-256 bd27ef2d40390187a6a3682175ec93c280b80e1f57dff71dee31058901e552be

See more details on using hashes here.

File details

Details for the file mqt.qmap-1.10.0-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qmap-1.10.0-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a26896fb2e9396cb7b764e92732368b58ed7a3ba089ad9092156a127246c4fca
MD5 93d8e0db653e57758c94c808b70e8e99
BLAKE2b-256 cd79814ba93a495696186934a93e1668e710895d6421c8ab2347c17607789ae0

See more details on using hashes here.

File details

Details for the file mqt.qmap-1.10.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mqt.qmap-1.10.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b62499514c0eda9146bbe9b2903b324fa5fad9b8a39e86ef4eaaf200f420f440
MD5 c681e7958ae32a868c1f359332f6361e
BLAKE2b-256 8a2238e80cd25984bf8db2390b0fea1e3fd672d03701b8aba35f46df58216f49

See more details on using hashes here.

File details

Details for the file mqt.qmap-1.10.0-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qmap-1.10.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 3fe834b3ed2f27114b40616e908230d7bc000b39251339c48b44375292cb8185
MD5 a586ccc363145409ffb9a9a9e425e1a1
BLAKE2b-256 88dd3830ac54512a234b4ff64ea157c9ecc3a4434d8d5625f847092f78d9068a

See more details on using hashes here.

File details

Details for the file mqt.qmap-1.10.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: mqt.qmap-1.10.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 6.6 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for mqt.qmap-1.10.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 39a5e88f9246ede6f7c1a75a2d73dc4c2f0faafedda8283e0caca25f3b3c334a
MD5 067a770c5abc70542c3416e07e5d1238
BLAKE2b-256 08e3e60bb6857bba71b48c9c8598d8731a16e6a3e9341430e96ebdae5c6585b9

See more details on using hashes here.

File details

Details for the file mqt.qmap-1.10.0-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qmap-1.10.0-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 36b74d54a2d12aa7ec0be858b24b7e59ff318cf0460424ff46598edd1f72f3b1
MD5 b9ddcf36a755691a6473b2651bdc625d
BLAKE2b-256 781a028679b2e22e05d256c2ddccadb59b382e79e76e26d267dbb2682a01e8bb

See more details on using hashes here.

File details

Details for the file mqt.qmap-1.10.0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mqt.qmap-1.10.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3428f8288f6743f404845b43478327c9d4f4c44ea9d7bb349c71c49a5dcaa65a
MD5 ab767737491b394ffa24a49c90203805
BLAKE2b-256 6b554ff187141e52e38da4ed4e6aa07750430b9139c537da71025deaba4c97ad

See more details on using hashes here.

File details

Details for the file mqt.qmap-1.10.0-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qmap-1.10.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 723f71b12d1133919988b7bd40c8b4dc507b5c74f4f7e4f84e548c69f358b9e3
MD5 3de5cbed8ed52c8d6bd6866bbb00a595
BLAKE2b-256 4cb522f74afc9ee3b2213bc6c8f7700ab2637a6ecf2d5e652a953feb77819d00

See more details on using hashes here.

File details

Details for the file mqt.qmap-1.10.0-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for mqt.qmap-1.10.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 a24217e8d301efaa48449b96d744a4fca67a1799a57a6bb239fcc58179dfae81
MD5 e1f169dbb5fdcfe2e88d54833ecad79f
BLAKE2b-256 15dddafe3117d37d3ad7cd62f7f0992ffd8f5c5ec986a97fad41ec07da627c23

See more details on using hashes here.

File details

Details for the file mqt.qmap-1.10.0-cp37-cp37m-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qmap-1.10.0-cp37-cp37m-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4ddc5ae66bcfe7d6abd723aef5e3e977ed484face17d6c8beb0c9dfac385b058
MD5 50b81549061b6c6ed0ef3b9827d52658
BLAKE2b-256 4da9cd4559b6f9cb5e1939692cd3b4614ef32bd7d43a5b7ec3a19dd2c3b724e5

See more details on using hashes here.

File details

Details for the file mqt.qmap-1.10.0-cp37-cp37m-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qmap-1.10.0-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 111fa82cdfcdbc62ef86295fd0c4f861e465a5b353d4fcc5a475ce9189b19913
MD5 c0120c0c63af60ec0da34ded71e51d70
BLAKE2b-256 fa2258c34f64d19bd559e8838b588e88953bccd1136f8fd535b6e8d58a050d29

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page