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.9.1.tar.gz (4.9 MB view details)

Uploaded Source

Built Distributions

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

Uploaded CPython 3.11 Windows x86-64

mqt.qmap-1.9.1-cp311-cp311-manylinux_2_28_x86_64.whl (12.6 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ x86-64

mqt.qmap-1.9.1-cp311-cp311-macosx_11_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

mqt.qmap-1.9.1-cp311-cp311-macosx_10_15_x86_64.whl (7.8 MB view details)

Uploaded CPython 3.11 macOS 10.15+ x86-64

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

Uploaded CPython 3.10 Windows x86-64

mqt.qmap-1.9.1-cp310-cp310-manylinux_2_28_x86_64.whl (12.6 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ x86-64

mqt.qmap-1.9.1-cp310-cp310-macosx_11_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

mqt.qmap-1.9.1-cp310-cp310-macosx_10_15_x86_64.whl (7.8 MB view details)

Uploaded CPython 3.10 macOS 10.15+ x86-64

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

Uploaded CPython 3.9 Windows x86-64

mqt.qmap-1.9.1-cp39-cp39-manylinux_2_28_x86_64.whl (12.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ x86-64

mqt.qmap-1.9.1-cp39-cp39-macosx_11_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

mqt.qmap-1.9.1-cp39-cp39-macosx_10_15_x86_64.whl (7.8 MB view details)

Uploaded CPython 3.9 macOS 10.15+ x86-64

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

Uploaded CPython 3.8 Windows x86-64

mqt.qmap-1.9.1-cp38-cp38-manylinux_2_28_x86_64.whl (12.6 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.28+ x86-64

mqt.qmap-1.9.1-cp38-cp38-macosx_11_0_arm64.whl (6.9 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

mqt.qmap-1.9.1-cp38-cp38-macosx_10_15_x86_64.whl (7.8 MB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

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

Uploaded CPython 3.7m Windows x86-64

mqt.qmap-1.9.1-cp37-cp37m-manylinux_2_28_x86_64.whl (12.6 MB view details)

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

mqt.qmap-1.9.1-cp37-cp37m-macosx_10_15_x86_64.whl (7.8 MB view details)

Uploaded CPython 3.7m macOS 10.15+ x86-64

File details

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

File metadata

  • Download URL: mqt.qmap-1.9.1.tar.gz
  • Upload date:
  • Size: 4.9 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.9.1.tar.gz
Algorithm Hash digest
SHA256 b216b1ca700eb1e0290bcdf05f4204bb60c616fabb30086d6defe66940c6bb49
MD5 aa2630134780e27b0f6465bfe622b623
BLAKE2b-256 132e89b3e4acaa3292b1050466fc78578032b3e1dd69fc12466f7835e88ae43c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qmap-1.9.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4c74f75b0789d1e254d47860b7a25753480d552bb21631e5236e245f2b1b2bd7
MD5 33a3f2c1469ac8cd815bdb29030a74d4
BLAKE2b-256 4ed6e13beb03c4930745f2f9f017ac5eaca86f6a1d4e6195489769e5a07c1f01

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qmap-1.9.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8931970fb342433e2e3784ff0f4d73f93628ea65cfba90ecdfc3dfccdec08425
MD5 b5322c9cebd61be9970a62142a0181a6
BLAKE2b-256 aee78ba07b818609aa65e50ea4261826c57615bcb1c97c850191c12cefb89b48

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qmap-1.9.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7fb847b6ab0cc6cba2baa063e4995f4c3a4a8ee5bc6c2953e2ac7d5b5cbbf59c
MD5 7357900d22fa0cba134387abb8901ad2
BLAKE2b-256 f382fcf8ee69c840d5e916dc679fa2d50382d2631941e660b51e35d7e146c1ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qmap-1.9.1-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 c621bec1ea0cc936900517309dcf479099f86346108c314d649141047b4081e0
MD5 18f2c667b5e2501fd08e3fd5d38b4498
BLAKE2b-256 910691b17f1dab854bdc3870c46ee7f28357e8e34483dcf273ba9df3d2ad32ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qmap-1.9.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3c980772f423478fb62c8134627abd156699369635bc038b07bdd8565f58987e
MD5 f605ec79ec9bf798675ba5f659f7d94c
BLAKE2b-256 b7076ebdd318e8e4149c09ed11b56f98de96ce323eed7203912a7434bfdec754

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qmap-1.9.1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a743330565b012a87db4677f785cdc1c06168faecf8394002865983949ed2676
MD5 f03f2f633db4eb17bab36682e7df8a84
BLAKE2b-256 8cda8d17811a25afd51dc6d29f9d30b5976f76a7acc8a0a8f5ff7188ef7af4af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qmap-1.9.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b76c78cac3d9f500fc28d69c68f8e43cd9718f6ddbbc3a2bb44b0727498c54de
MD5 b520e4164e45b816da58e70c87c31b61
BLAKE2b-256 77c17b7ced0a5a537f67fc46d30b3d18c76fdaad66ea6d18a195f8575404b5ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qmap-1.9.1-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 d67a25f24221aa400c5b5eb762848aaaa2a0928f662c088a502e5367badf1ff0
MD5 216e40c15d3afe4299eb526c2bee3f7e
BLAKE2b-256 f3d781d174726de3a1b0891ddf093e193eb6d584593e7b42551bb2d3b255ef63

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mqt.qmap-1.9.1-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.9.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 53b6f9f1a91616223c925be5c120685d26945bd4c5c7df8cdeb1bd0012aa5962
MD5 5ce70945e70e754cb74dfd38f58f3d7a
BLAKE2b-256 575fa2e5cfa7f677986d3d8177f7627da6491f64acee81de9cd9119e21c775b9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qmap-1.9.1-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a4122da321635626aacc88893451c9d86689e5bc8706f7223daf8aadf762bc45
MD5 b4f3fa97f67bfd8f109e4922027e33da
BLAKE2b-256 53b27caa5244f48001cbd0d1fbfa09823c1850f3a5c5a9eeb940a28660c9196c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qmap-1.9.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8550e899c86c6c45b8d1e384ef299e3176e767efab583cadb4d4b56f7e3b4da4
MD5 f544fa65a64e65028792bd62e94004be
BLAKE2b-256 ccd58fa032b7744a6f518b51512b010d25cb2e59b668da8e57f0bbbdfc4dec59

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qmap-1.9.1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 ac8c9837f1a3356ca32a06a3d373b8310d45dce0c7ded786ddeca165883ad0ed
MD5 cce362bf0d34b79eff0a34df13d9ce14
BLAKE2b-256 8f64cfd743d04cf74f348bdcf6cf68e1b61c9912978a23af06eaab17eda8af9c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mqt.qmap-1.9.1-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.9.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 923ddcaffb4ae49d9c0c6695cd6eadbc3952777d9499df8e7438c7d14f577141
MD5 016e1f642d5e11d8bbb986ab32195f2d
BLAKE2b-256 d296399b484b8077ff1fd23f2d30979767faa580f4aff55abb43971ed4ecffa7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qmap-1.9.1-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 465e992494d0bff472cb1a7d64184fd8b0002ecda93d59557c56a4ca63bf870a
MD5 0fdcc0a5209b4c5b48df5ac0410281ff
BLAKE2b-256 c6c30cc6e69ed9a3cbc60eb08364e63a38da1c6b391149123e4e38e0e3f85f37

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qmap-1.9.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2b89b44d5f919cf9374a38f6e02eb0068b11b4e370ec6df0319800799119fd25
MD5 250eb0b766c4b22b089431882323245d
BLAKE2b-256 0020650eb7fd6278eb7c9e5ac6d6254e3b539ca1738835d93c3b203b9b9209c8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qmap-1.9.1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 6074dcab54d735235a685175d1a2ef5ff3013af7e76fedef73b7674261bb78bf
MD5 cded2df61214a857944b80697a92ccd4
BLAKE2b-256 5351338626aee71081c670cb468122788b899ce1f06e3b8ee50c5f4f3af4c7f4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mqt.qmap-1.9.1-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 6.6 MB
  • Tags: CPython 3.7m, 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.9.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 3c2227e6b60f378edc55876a4408c4bfe3b358d27223171419d10b1e2d5041d9
MD5 e96a34e54f99c1ccb685c4e673fbeb42
BLAKE2b-256 60a5105103396e95b42900d36eba963076337ededb6d9be8287279abeeec6645

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qmap-1.9.1-cp37-cp37m-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9550169b73b86158d3d2f3ed547806ac7db65c50d7f5a04a42e2c9e336cbdcce
MD5 2d8295a354c7236a1d3993e327c6b425
BLAKE2b-256 a7fca3638ec4fb30f93ac750a87370cf779a4edd18f185864b83ea2634f75048

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qmap-1.9.1-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 fa70d730d195c397581715dba66606b6a0694fac57a01706698990106d69f004
MD5 6216f20a003d412c7a0464e6e77198b5
BLAKE2b-256 4e8904a31364604f2151008200846f5e3f503575ba5940b7108371ff82c59ed8

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