Skip to main content

JKQ DDSIM - A quantum simulator based on decision diagrams written in C++

Project description

>> Quickstart Guide

Build Status codecov License: MIT toolset: JKQ

JKQ DDSIM - A quantum simulator based on decision diagrams written in C++

A tool for quantum circuit simulation by the Institute for Integrated Circuits at the Johannes Kepler University Linz and a part of the JKQ toolset.

The tool builds upon our quantum functionality representation (QFR) which in turns builds on our decision diagram (DD) package.

For more information, on our work on quantum circuit simulation please visit iic.jku.at/eda/research/quantum_simulation or, for more information on our work on noise-aware quantum circuit simulation, please visit iic.jku.at/eda/research/noise_aware_simulation.

If you have any questions, feel free to contact us via iic-quantum@jku.at or by creating an issue on GitHub.

Table of contents

Usage

This tool can be used for simulating quantum circuits provided in any of the following formats:

The format is automatically detected through the file extension.

The following additional algorithms are integrated in QFR and hence available in the simulator as well:

  • Quantum Fourier Transformation
  • Bernstein-Vazirani
  • GHZ / Entanglement
  • Grover's search (see --help for different call options)

For details on the available methods we refer to iic.jku.at/eda/research/quantum_simulation.

The simulator is based on the references listed below and can either be used as a standalone executable with command-line interface, or as a library for the incorporation in other projects.

Using the Python Bindings / Backend for Qiskit

The backend for Qiskit is available via PyPi. The following code gives an example on the usage:

from qiskit import *
from jkq import ddsim

circ = QuantumCircuit(3)
circ.h(0)
circ.cx(0, 1)
circ.cx(0, 2)

print(circ.draw(fold=-1))

provider = ddsim.JKQProvider()

backend = provider.get_backend('qasm_simulator')

job = execute(circ, backend, shots=10000)
result = job.result()

counts = result.get_counts(circ)
print(counts)

The simulator may be used in a more stand-alone fashion:

...
sim = ddsim.CircuitSimulator(circ)
print(sim.simulate(1000))

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.

OpenMP >= 4.0 is required for building the ddsim library. Additionally, boost/program_options >= 1.50 is required for building the commandline interface for ddsim_simple and ddsim_noise_aware. The ddsim_noise_aware further requires Threads::Threads.

Clone, Build, and Run

The code uses quite a few submodules, which have to be initialized. There are two ways to do this:

  1. While cloning the repository with the --recurse-submodules option to git clone. For HTTPS access: git clone --recurse-submodules https://github.com/iic-jku/ddsim/.
  2. After cloning with git submodule update --init --recursive.

Library

For building the library alone the CMake target ddsim is available. In CMake from version 3.13 you can use the following commands:

$ cmake -DCMAKE_BUILD_TYPE=Release -S . -B build
$ cmake --build build --config Release --target ddsim

Windows users need to configure CMake by calling

$ cmake -A x64 -DCMAKE_BUILD_TYPE=Release -S . -B build
$ cmake --build build --config Release --target ddsim

instead.

The library can be used by including, for example, the QFRSimulator.hpp header file and

std::string file1 = "PATH_TO_FILE_1.EXT";
qc::QuantumComputation qc1(file1);

qc::SimpleSimulator sim(qc1);
sim.Simulate();
auto samples = sim.MeasureAllNonCollapsing(1000);
/* Use the results */

Executable Simulator

To build the executable simulator, build the ddsim_simple CMake target (which requires boost/program_options) and run the resulting executable with options according to your needs.

The standalone executable is launched in the following way, showing available options:

$ ./ddsim_simple --help
JKQ DDSIM by https://iic.jku.at/eda/ -- Allowed options:
-h [ --help ]                         produce help message
--seed arg (=0)                       seed for random number generator (default zero is possibly directly used as seed!)
--shots arg (=0)                      number of measurements (if the algorithm does not contain non-unitary gates, weak simulation is used)
--pv                                  display the state vector as list of pairs (real and imaginary parts)
--ps                                  print simulation stats (applied gates, sim. time, and maximal size of the DD)
--pm                                  print measurement results
--verbose                             Causes some simulators to print additional information to STDERR
--simulate_file arg                   simulate a quantum circuit given by file (detection by the file extension)
--simulate_file_hybrid arg            simulate a quantum circuit given by file (detection by the file extension) using the hybrid Schrodinger-Feynman simulator
--hybrid_mode arg                     mode used for hybrid Schrodinger-Feynman simulation (*amplitude*, dd)
--nthreads arg (=2)                   #threads used for hybrid simulation
--simulate_qft arg                    simulate Quantum Fourier Transform for given number of qubits
--simulate_ghz arg                    simulate state preparation of GHZ state for given number of qubits
--step_fidelity arg (=1)              target fidelity for each approximation run (>=1 = disable approximation)
--steps arg (=1)                      number of approximation steps
--simulate_grover arg                 simulate Grover's search for given number of qubits with random oracle
--simulate_grover_emulated arg        simulate Grover's search for given number of qubits with random oracle and emulation
--simulate_grover_oracle_emulated arg simulate Grover's search for given number of qubits with given oracle and emulation
--simulate_shor arg                   simulate Shor's algorithm factoring this number
--simulate_shor_coprime arg (=0)      coprime number to use with Shor's algorithm (zero randomly generates a coprime)
--simulate_shor_no_emulation          Force Shor simulator to do modular exponentiation instead of using emulation (you'll usually want emulation)
--simulate_fast_shor arg              simulate Shor's algorithm factoring this number with intermediate measurements
--simulate_fast_shor_coprime arg (=0) coprime number to use with Shor's algorithm (zero randomly generates a coprime)

The output is JSON-formatted as shown below (with hopefully intuitive naming).

$ cmake -DCMAKE_BUILD_TYPE=Release -S . -B build
$ cmake --build build --config Release --target ddsim_simple
$ ./build/ddsim_simple --simulate_ghz 4 --shots 1000 --ps --pm
{
  "measurement_results": {
    "0000": 484,
    "1111": 516
  },
  "statistics": {
    "applied_gates": 4,
    "approximation_runs": "0",
    "benchmark": "entanglement_4",
    "distinct_results": 2,
    "final_fidelity": "1.000000",
    "max_nodes": 9,
    "n_qubits": 4,
    "seed": "0",
    "shots": 1000,
    "simulation_time": 0.00013726699398830533,
    "single_shots": "1",
    "step_fidelity": "1.000000"
  }
}

Quickstart Guide

Execute the following lines to get the simulator running in no time:

$ git clone --recurse-submodules https://github.com/iic-jku/ddsim/
[...]

$ cd ddsim

ddsim/ $ cmake -S . -B build
-- Build files have been written to: /.../build

ddsim/ $ cmake --build build --config Release --target ddsim_simple
[...]
[100%] Built target ddsim_simple

ddsim/ $ build/ddsim_simple --help                            
JKQ DDSIM by https://iic.jku.at/eda/ -- Allowed options:
  -h [ --help ]                         produce help message
[...]

From here on you can start simulating quantum circuits or run the integrated algorithms.

Note that you have to have the Boost program_options library installed.

Executable Noise-aware Simulator

The tool also supports noise-aware quantum circuit simulation, based on a stochastic approach. It currently supports global decoherence and gate error noise effects. A detailed summary of the simulator is presented in [2]. Note that the simulator currently does not support simulating the integrated algorithms.

Building the simulator requires boost/program_options and Threads::Threads. It can be built by executing

$ cmake -DCMAKE_BUILD_TYPE=Release -S . -B build
$ cmake --build build --config Release --target ddsim_noise_aware

The simulator provides a help function which is called in the following way:

$ ./build/ddsim_noise_aware -h
JKQ DDSIM by https://iic.jku.at/eda/ -- Allowed options:
  -h [ --help ]                         produce help message
  --seed arg (=0)                       seed for random number generator (default zero is possibly directly used as seed!)
  --pm                                  print measurements
  --ps                                  print simulation stats (applied gates, sim. time, and maximal size of the DD)
  --verbose                             Causes some simulators to print additional information to STDERR
  --simulate_file arg                   simulate a quantum circuit given by file (detection by the file extension)
  --step_fidelity arg (=1)              target fidelity for each approximation run (>=1 = disable approximation)
  --steps arg (=1)                      number of approximation steps
  --noise_effects arg (=APD)            Noise effects (A (=amplitude damping),D (=depolarization),P (=phase flip)) in the form of a character string describing the noise effects
  --noise_prob arg (=0.001)             Probability for applying noise
  --confidence arg (=0.05)              Confidence in the error bound of the stochastic simulation
  --error_bound arg (=0.1)              Error bound of the stochastic simulation
  --stoch_runs arg (=0)                 Number of stochastic runs. When the value is 0 the value is calculated using the confidence, error_bound and number of tracked properties.
  --properties arg (=-3-1000)           Comma separated list of tracked properties. Note that -1 is the fidelity and "-" can be used to specify a range.

Process finished with exit code 0

An example run, with amplitude damping, phase flip, and depolarization error (each with a probability of 0.1% whenever a gate is applied) looks like this:

$ ./build/ddsim_noise_aware --ps --noise_effects APD --stoch_runs 10000 --noise_prob 0.001 --simulate_file adder4.qasm
{
  "statistics": {
    "applied_gates": 23,
    "approximation_runs": "0.000000",
    "benchmark": "stoch_APD_adder_n4",
    "final_fidelity": "0.937343",
    "max_nodes": 10,
    "mean_stoch_run_time": "0.015796",
    "n_qubits": 4,
    "parallel_instances": "28",
    "perfect_run_time": "0.000066",
    "seed": "0",
    "simulation_time": 5.911194324493408,
    "step_fidelity": "1.000000",
    "stoch_runs": 10000,
    "stoch_wall_time": "5.911118",
    "threads": 28
  }
}

Running Tests

The repository also includes some (rudimentary) unit tests (using GoogleTest), which aim to ensure the correct behavior of the tool. They can be built and executed in the following way:

$ cmake --build build/ --config Release
$ ./build/test/ddsim_test
[...]

Frequently Asked Questions

Why is target ddsim_simple unavailable when I try to build it?

To build the commandline interfaces such as ddsim_simple you require the Boost program_options library. If it is missing, you will see the following message in the CMake generation step

-- Did not find Boost! Commandline interface will not be an available target!

Under Ubuntu you can simply install libboost-program-options-dev.

Why does generation step of CMake fail?

If you see the following error message

$ cmake -S . -B <build target directory>
CMake Error at CMakeLists.txt:27 (message):
qfr was not found.  Please init/update submodules (git submodule update --init --recursive) and try again.

Please run git submodule update --init --recursive and try again.

References

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

[1] A. Zulehner and R. Wille, “Advanced Simulation of Quantum Computations,” Transactions on CAD of Integrated Circuits and Systems (TCAD), vol. 38, no. 5, pp. 848–859, 2019
@article{zulehner2019advanced,
    title = {Advanced Simulation of Quantum Computations},
    author = {Zulehner, Alwin and Wille, Robert},
    journal = {Transactions on {CAD} of Integrated Circuits and Systems},
    volume = {38},
    number = {5},
    pages = {848--859},
    year = {2019},
    doi = {10.1109/TCAD.2018.2834427}
}
[2] S. Hillmich, I. L. Markov, and R. Wille, “Just Like the Real Thing: Fast Weak Simulation of Quantum Computation,” in Design Automation Conference (DAC), 2020
@inproceedings{DBLP:conf/dac/HillmichMW20,
  author    = {Stefan Hillmich and
               Igor L. Markov and
               Robert Wille},
  title     = {Just Like the Real Thing: {F}ast Weak Simulation of Quantum Computation},
  booktitle = {Design Automation Conference},
  publisher = {{IEEE}},
  year      = {2020}
}
[3] T. Grurl, R. Kueng, J. Fuß, and R. Wille, “Stochastic Quantum Circuit Simulation Using Decision Diagrams,” in Design, Automation and Test in Europe (DATE), 2021
@inproceedings{Grurl2020,
    author = {Grurl, Thomas and Kueng, Richard and Fu{\ss}, J{\"{u}}rgen and Wille, Robert},
    booktitle = {Design, Automation and Test in Europe (DATE)},
    title = {{Stochastic Quantum Circuit Simulation Using Decision Diagrams}},
    url = {http://arxiv.org/abs/2012.05620},
    year = {2021}
}
[4] S. Hillmich, R. Kueng, I. L. Markov, and R. Wille, "As Accurate as Needed, as Efficient as Possible: Approximations in DD-based Quantum Circuit Simulation," in Design, Automation and Test in Europe (DATE), 2021
@inproceedings{DBLP:conf/date/HillmichKMW21,
  author    = {Stefan Hillmich and
               Richard Kueng and
               Igor L. Markov and
               Robert Wille},
  title     = {As Accurate as Needed, as Efficient as Possible: Approximations in DD-based Quantum Circuit Simulation},
  booktitle = {Design, Automation and Test in Europe},
  year      = {2021}
}
[5] L. Burgholzer, H. Bauer, and R. Wille, "Hybrid Schrödinger-Feynman Simulation of Quantum Circuits With Decision Diagrams," arXiv:2105.07045, 2021
@misc{burgholzer2021hybrid,
      author={Lukas Burgholzer and
               Hartwig Bauer and
               Robert Wille},
      title={Hybrid Schrödinger-Feynman Simulation of Quantum Circuits With Decision Diagrams},
      year={2021},
      eprint={2105.07045},
      archivePrefix={arXiv},
      primaryClass={quant-ph}
}

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

jkq.ddsim-1.6.0.tar.gz (856.3 kB view details)

Uploaded Source

Built Distributions

jkq.ddsim-1.6.0-cp39-cp39-win_amd64.whl (334.8 kB view details)

Uploaded CPython 3.9 Windows x86-64

jkq.ddsim-1.6.0-cp39-cp39-manylinux2014_x86_64.whl (492.6 kB view details)

Uploaded CPython 3.9

jkq.ddsim-1.6.0-cp39-cp39-macosx_10_9_x86_64.whl (348.5 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

jkq.ddsim-1.6.0-cp38-cp38-win_amd64.whl (334.8 kB view details)

Uploaded CPython 3.8 Windows x86-64

jkq.ddsim-1.6.0-cp38-cp38-manylinux2014_x86_64.whl (492.2 kB view details)

Uploaded CPython 3.8

jkq.ddsim-1.6.0-cp38-cp38-macosx_10_9_x86_64.whl (348.6 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

jkq.ddsim-1.6.0-cp37-cp37m-win_amd64.whl (339.0 kB view details)

Uploaded CPython 3.7m Windows x86-64

jkq.ddsim-1.6.0-cp37-cp37m-manylinux2014_x86_64.whl (495.9 kB view details)

Uploaded CPython 3.7m

jkq.ddsim-1.6.0-cp37-cp37m-macosx_10_9_x86_64.whl (347.5 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

jkq.ddsim-1.6.0-cp36-cp36m-win_amd64.whl (339.0 kB view details)

Uploaded CPython 3.6m Windows x86-64

jkq.ddsim-1.6.0-cp36-cp36m-manylinux2014_x86_64.whl (496.1 kB view details)

Uploaded CPython 3.6m

jkq.ddsim-1.6.0-cp36-cp36m-macosx_10_9_x86_64.whl (347.5 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

Details for the file jkq.ddsim-1.6.0.tar.gz.

File metadata

  • Download URL: jkq.ddsim-1.6.0.tar.gz
  • Upload date:
  • Size: 856.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for jkq.ddsim-1.6.0.tar.gz
Algorithm Hash digest
SHA256 68d4346fd41afacdf6dac5cc8614728fe99d09e028e75e90f9e7d4305b632839
MD5 372ac79bda133b907cf45a4d9c69adbf
BLAKE2b-256 c12ebbd712603d1545ff9e81975a7ccdf46b48368ed2a80117629f22763bf6fd

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.6.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: jkq.ddsim-1.6.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 334.8 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for jkq.ddsim-1.6.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 156df879dcea288f28d7623151ddbb79bde0ff2a77d6717f7c1523dc2b885edf
MD5 4a6808973ef500f2b707ad828a2c22aa
BLAKE2b-256 27b49f854854635623b26382a1a120f9ea5548ba0443e764f312b5a144e62406

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.6.0-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

  • Download URL: jkq.ddsim-1.6.0-cp39-cp39-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 492.6 kB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for jkq.ddsim-1.6.0-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cae6bf2842ffe1bfb157b705fee8320502c090082b30a46a476c5a7c8b51e404
MD5 693359565efb6c715a43471456686f94
BLAKE2b-256 b9a00006b1b028a77d8d1464c88cc12354f5266750d72ff8b6968dbccfea179c

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.6.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: jkq.ddsim-1.6.0-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 348.5 kB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for jkq.ddsim-1.6.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7b86cef3c1ee9e5dd33bee29ade68d20a14d6e70188304f3831ff467651cbdd0
MD5 36c1ac86c33842bd1a45f45c3c6e6a85
BLAKE2b-256 cd556a3b07c1e84c48b4fde3f206ddf853c9d2f0dae1f6e3c0f02064c3eb7442

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.6.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: jkq.ddsim-1.6.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 334.8 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for jkq.ddsim-1.6.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 db6761a2de5a8523a8903eabb0d4db7b281b5cab2448204aada4bd523b81fa1e
MD5 04ee440ceb86928ceea61f82a0ba25f7
BLAKE2b-256 89f7ca07a6f411be1161f0c196669063c8be9abc0d5ad43845a6c7e3a0a7d53c

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.6.0-cp38-cp38-manylinux2014_x86_64.whl.

File metadata

  • Download URL: jkq.ddsim-1.6.0-cp38-cp38-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 492.2 kB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for jkq.ddsim-1.6.0-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ec127a8695bc8f0f772697a35fd35e8e487a67e3d28ab7fb423cf92689773cd7
MD5 12e711f02ce84ec343c6fc35ed74406c
BLAKE2b-256 d9ae21a63155637828f6a13050993331fe31b5be38b30cbace55048b0380c40d

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.6.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: jkq.ddsim-1.6.0-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 348.6 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for jkq.ddsim-1.6.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8b9cf5d7e98380ed94a871b6b10f9c6a09d7454da42ebd2def0c1a9321a161bb
MD5 14761e2b78260c729d4029891c261f99
BLAKE2b-256 cdc577600e89f100c65f2172f500de316c58957f4e1a04bbd73ec4be70f61d44

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.6.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: jkq.ddsim-1.6.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 339.0 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for jkq.ddsim-1.6.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 6fbd8188d11919aa1823543e3a8499e93f47328d0edb0e8e0ca4c9af54898d0c
MD5 bd2c7afdb6e1a0ae524d38997f5b28ad
BLAKE2b-256 cef242651d585827128d07b3b4c8d09a24fcc35da1bf065e499d1403cc3538b0

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.6.0-cp37-cp37m-manylinux2014_x86_64.whl.

File metadata

  • Download URL: jkq.ddsim-1.6.0-cp37-cp37m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 495.9 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for jkq.ddsim-1.6.0-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 86a6ec2306d2d3f9f956316c09c1ab74e656d547f56db73e9b268d346cd1f70c
MD5 664df42547a666d7cbaab5cb89570112
BLAKE2b-256 d10caef38f41cf53972536b29305005ba03996a61229a642432a0b9d56d5bcd7

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.6.0-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: jkq.ddsim-1.6.0-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 347.5 kB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for jkq.ddsim-1.6.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 047bda37a6af5b85b8f0fc329a6f227a071bbaa663ae22fa0ffdf911aa853900
MD5 f5e71211c2cfc4440f45c32e06ca0868
BLAKE2b-256 7ed818838c57d443002682a3c548b12dd45b0febc7bdd31f8bb7486cf96e35f8

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.6.0-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: jkq.ddsim-1.6.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 339.0 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for jkq.ddsim-1.6.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 5309d855cd0968530a00a2aea6ac4a7071b098a634ff3e0c90a56c412cbfeb7c
MD5 d93b7ea115f29f582eae71626545b14a
BLAKE2b-256 c5ee5b28f1a9392161cea42440fdf13ca7579e9f805b3dd6c5a4a8680e5ee0dc

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.6.0-cp36-cp36m-manylinux2014_x86_64.whl.

File metadata

  • Download URL: jkq.ddsim-1.6.0-cp36-cp36m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 496.1 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for jkq.ddsim-1.6.0-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 685dc1082cf3b9857206b0bb189d5e3b796fdf5abededfa958f36b1eb064b288
MD5 3ce0944503901c6d4a40e6c93918469d
BLAKE2b-256 bcb38e3be06f16826947c159e2186d3b3007caa33241560bf886235b68508798

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.6.0-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: jkq.ddsim-1.6.0-cp36-cp36m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 347.5 kB
  • Tags: CPython 3.6m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.5

File hashes

Hashes for jkq.ddsim-1.6.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0b374001565e2ffeaa7633e37f00b7eb965a37f9a6a5675d83b3f7865a176ac1
MD5 02045827ebe59420e8e136d00c4d4f23
BLAKE2b-256 249e2704cabf24a674106a49b4e0f133ae770ee83d524b3eaa2628638e05f5d5

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