Skip to main content

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

Project description

License: MIT toolset: JKQ PyPI CI codecov Language grade: Python Language grade: C/C++

JKQ DDSIM - A quantum circuit 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 as wheel for Linux, Windows and MacOS. Install with the following command. (We strongly recommend using a virtual environment.)

(venv) $ pip install jkq.ddsim

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 provider currently has five backends:

  • qasm_simulator which simulates the circuit and returns the requested number of shots
  • statevector_simulator which also simulates the circuit and returns the statevector along the requested number of shots
  • hybrid_qasm_simulator which simulates the circuit in parallel using a hybrid Schrodinger-Feynman technique and returns the requested number of shots
  • hybrid_statevector_simulator which also simulates the circuit in parallel using a hybrid Schrodinger-Feynman technique and returns the statevector
  • unitary_simulator which constructs the unitary functionality of a circuit and returns the corresponding unitary matrix

A slightly more elaborate example can be found in the notebook ddsim.ipynb.

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 simulator 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
--pcomplex                            print print additional statistics on complex numbers
--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.8.0.tar.gz (865.5 kB view details)

Uploaded Source

Built Distributions

jkq.ddsim-1.8.0-cp39-cp39-win_amd64.whl (431.5 kB view details)

Uploaded CPython 3.9 Windows x86-64

jkq.ddsim-1.8.0-cp39-cp39-manylinux2014_x86_64.whl (589.6 kB view details)

Uploaded CPython 3.9

jkq.ddsim-1.8.0-cp39-cp39-macosx_10_9_x86_64.whl (454.9 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

jkq.ddsim-1.8.0-cp38-cp38-win_amd64.whl (431.5 kB view details)

Uploaded CPython 3.8 Windows x86-64

jkq.ddsim-1.8.0-cp38-cp38-manylinux2014_x86_64.whl (589.5 kB view details)

Uploaded CPython 3.8

jkq.ddsim-1.8.0-cp38-cp38-macosx_10_9_x86_64.whl (454.9 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

jkq.ddsim-1.8.0-cp37-cp37m-win_amd64.whl (438.4 kB view details)

Uploaded CPython 3.7m Windows x86-64

jkq.ddsim-1.8.0-cp37-cp37m-manylinux2014_x86_64.whl (595.5 kB view details)

Uploaded CPython 3.7m

jkq.ddsim-1.8.0-cp37-cp37m-macosx_10_9_x86_64.whl (451.6 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

jkq.ddsim-1.8.0-cp36-cp36m-win_amd64.whl (438.4 kB view details)

Uploaded CPython 3.6m Windows x86-64

jkq.ddsim-1.8.0-cp36-cp36m-manylinux2014_x86_64.whl (595.8 kB view details)

Uploaded CPython 3.6m

jkq.ddsim-1.8.0-cp36-cp36m-macosx_10_9_x86_64.whl (451.6 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for jkq.ddsim-1.8.0.tar.gz
Algorithm Hash digest
SHA256 2b5c0bf64206cba007366a2e6b147826ca529d11f86002439774ecc91ef58999
MD5 6987f0352b21bf2c51c5ffeaec3a2a3c
BLAKE2b-256 cb032227152cf1f8e4a8998807a0926107a25bf2fbc58e4d2ff0057b304ee385

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jkq.ddsim-1.8.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 bdd8b0eac476c54b4ceed87da380272058a50099d24609e28b837ee0abf2951c
MD5 213f64d98c05dde5967aa92f3bd4c665
BLAKE2b-256 e202c80097b1a5788b274dbd149f8aa4256e28885cbdeb0f930e7dbdee17fbbc

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jkq.ddsim-1.8.0-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 50a30d051df846b9b314a90b7942e64dc54a727d266ce6f3cf5e5f8e0224690b
MD5 bb9660e7d2a658404e415005b8ec4746
BLAKE2b-256 1b4510fc357e5aea3e51c78d5d1b2066d8620f778354d56f0d20aeb7bacb6336

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jkq.ddsim-1.8.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 468bdf359e73fc5d4e55faba3329a5fa227cd7f21e7a244a6e6b16c0f92d13ce
MD5 16972dca4f314e030900760017bea164
BLAKE2b-256 d9160798adef0bf4800c54273affa4f6ecbdebeee84930c8bde43900f67fbfbf

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jkq.ddsim-1.8.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 edb09720df06894fa0707a4e2cfff0f691f362d4ab0f088284238829ae0b7b7d
MD5 14735e0f3e7d1589c24abbceec1e9447
BLAKE2b-256 cfedd98f49eff6293a6d3133d8b5fb57662e96e941a029e0c2e6c715d2049a1d

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jkq.ddsim-1.8.0-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b3dc552d581e0fb5b19b6f9e8dda707c7727329a69ace6e2d3c51fa9427d86ae
MD5 665fdcc491ac0eded048003e88ade709
BLAKE2b-256 b5c27d046b92e95899d45e7503d72a3ca8f4289665b055d65feea85566459e06

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jkq.ddsim-1.8.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4c774998b62bfa5b12f071c8675f5ea25ec861eb229747aceb1a6193ac29acd5
MD5 fdb3c4e031c56528a3e6376a6ce8b81b
BLAKE2b-256 3b7e5c6d57897bbca9af88b8dba565daff4a45763c9423d41ee2a21b1a2b70aa

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jkq.ddsim-1.8.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 4aeca64b0a3dc66e805f997ebcec093f1181648615b9ff4c6c32654bd6f111da
MD5 23c8c4ddd02a862b9980dcff1ddbc361
BLAKE2b-256 af11b3184a7ba77b44c868ea131dcd01281b34896cc23537f720905f1d523d89

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jkq.ddsim-1.8.0-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 72298b4c6f327886579de71a522c31ae37ebf2c8053bbd77fa9c177dae4df4ad
MD5 8d45b4537decc97b20208d21b227d2f1
BLAKE2b-256 bfda482010f3cd429bbe0f884e0f132fe3c156c29bea1cfac580bac5ac5f74e9

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jkq.ddsim-1.8.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b4cb2a65cf991383cc387c93b52641f8d5ea08e15c6aa35ee6352695475b4cad
MD5 8bdfd1982c45fe9cd8f57a3e353f9863
BLAKE2b-256 69bbfe4a70d098f8d637d7381d1026c575f7122d74955a8be1a228d8a72e45cc

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jkq.ddsim-1.8.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 66e1110a31e556e22abcbd1f1f1e59f3d5b68aa4d2ecd50bccefba5b9c96224d
MD5 72dd5e207ee1d5cff1045d8033eeafe7
BLAKE2b-256 6241c7996a4152a5adc2af60a2c1a2f5259c6d32ffa11ae335a68e20246ae40e

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jkq.ddsim-1.8.0-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a953fda3c9ab59a70ba07ae2a51abaab5883c925c2a75721c5eeead37300ca96
MD5 b66a3d52a69668bd61fdd634fba3defe
BLAKE2b-256 973d828e0e8a13378de4ace4081ac4fbaabe13ef8e4ec6c26fd5a0a7303becf8

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jkq.ddsim-1.8.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1247b6ff08ff7cc96f4f4cba9cb1ed7fff0ea6065d9ee6d84854a6678f4473fa
MD5 68a37d5cdc37b6af597ecfa44783814f
BLAKE2b-256 93fd0ed70efa113fa752443231da84e7191f4747daf48c3f098c717e650b28b1

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