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. 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). (We strongly recommend using a virtual environment.)

(venv) $ pip install jkq.ddsim

However, in order to get the best performance out of DDSIM, it is recommended to build it locally from the source distribution via

pip install --no-binary 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. 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 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.

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 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 -DBUILD_DDSIM_TESTS=ON -DCMAKE_BUILD_TYPE=Release -S . -B build
$ cmake --build build/ --config Release
$ ./build/test/ddsim_test
[...]

Frequently Asked Questions

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.

Why do I get a linking error at the end of the build process?

If you are using gcc for building, and you get the error message

lto1: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-9/README.Bugs> for instructions.
lto-wrapper: fatal error: /usr/bin/c++ returned 1 exit status
compilation terminated.
/usr/bin/ld: error: lto-wrapper failed
collect2: error: ld returned 1 exit status
make[2]: *** [test/CMakeFiles/ddsim_test.dir/build.make:166: test/ddsim_test] Error 1
make[1]: *** [CMakeFiles/Makefile2:464: test/CMakeFiles/ddsim_test.dir/all] Error 2

Configure the simulator again and add the parameter -DBINDINGS=ON

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.10.0.tar.gz (950.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

jkq.ddsim-1.10.0-cp310-cp310-win_amd64.whl (450.3 kB view details)

Uploaded CPython 3.10Windows x86-64

jkq.ddsim-1.10.0-cp310-cp310-musllinux_1_1_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

jkq.ddsim-1.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (662.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

jkq.ddsim-1.10.0-cp310-cp310-macosx_10_15_x86_64.whl (740.4 kB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

jkq.ddsim-1.10.0-cp39-cp39-win_amd64.whl (450.5 kB view details)

Uploaded CPython 3.9Windows x86-64

jkq.ddsim-1.10.0-cp39-cp39-musllinux_1_1_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

jkq.ddsim-1.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (662.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

jkq.ddsim-1.10.0-cp39-cp39-macosx_10_15_x86_64.whl (740.5 kB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

jkq.ddsim-1.10.0-cp38-cp38-win_amd64.whl (450.4 kB view details)

Uploaded CPython 3.8Windows x86-64

jkq.ddsim-1.10.0-cp38-cp38-musllinux_1_1_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

jkq.ddsim-1.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (662.7 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

jkq.ddsim-1.10.0-cp38-cp38-macosx_10_15_x86_64.whl (740.6 kB view details)

Uploaded CPython 3.8macOS 10.15+ x86-64

jkq.ddsim-1.10.0-cp37-cp37m-win_amd64.whl (458.7 kB view details)

Uploaded CPython 3.7mWindows x86-64

jkq.ddsim-1.10.0-cp37-cp37m-musllinux_1_1_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ x86-64

jkq.ddsim-1.10.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (669.5 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

jkq.ddsim-1.10.0-cp37-cp37m-macosx_10_15_x86_64.whl (737.5 kB view details)

Uploaded CPython 3.7mmacOS 10.15+ x86-64

jkq.ddsim-1.10.0-cp36-cp36m-win_amd64.whl (458.7 kB view details)

Uploaded CPython 3.6mWindows x86-64

jkq.ddsim-1.10.0-cp36-cp36m-musllinux_1_1_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.6mmusllinux: musl 1.1+ x86-64

jkq.ddsim-1.10.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (669.5 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ x86-64

jkq.ddsim-1.10.0-cp36-cp36m-macosx_10_15_x86_64.whl (737.6 kB view details)

Uploaded CPython 3.6mmacOS 10.15+ x86-64

File details

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

File metadata

  • Download URL: jkq.ddsim-1.10.0.tar.gz
  • Upload date:
  • Size: 950.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for jkq.ddsim-1.10.0.tar.gz
Algorithm Hash digest
SHA256 dde378433322208586a89bdc461dbf99366baf64ecbadafd44858b1b45a50aea
MD5 889f7988029ecad66f24c2c2b6071151
BLAKE2b-256 9fc784cb76867c1b82553a39a281e625db1f4126fe18f6d76cdce0df65a29e29

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.10.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: jkq.ddsim-1.10.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 450.3 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for jkq.ddsim-1.10.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b50c5765a729960ca344b20419059f8bf36275198757b7fff8a594bc37176cb5
MD5 94d47bd9055a27a2e0471ebd83512869
BLAKE2b-256 ee54ff6c6736315cf78bfa5eada94a8e348feb4956aa3793ea30ae9d32afb14c

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.10.0-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

  • Download URL: jkq.ddsim-1.10.0-cp310-cp310-musllinux_1_1_x86_64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.10, musllinux: musl 1.1+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for jkq.ddsim-1.10.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 e9800e3ca79d0163a19f2de050909a9477c70e714d45e41c17559b0cb4a0b844
MD5 5d37e00d7ea914b763887bd23973d8c0
BLAKE2b-256 7bf2ff1ee932de18b803f6acc2a8cf1779e988b606ae6167ad65ad4e59aa4d8d

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: jkq.ddsim-1.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 662.7 kB
  • Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for jkq.ddsim-1.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 80f51ff87ec1f508838fe5280bdd9514b555a00fbe8e9b0b0ffabeb85eba347d
MD5 82f35a44d0fd547b6a607a7504c8aff5
BLAKE2b-256 5dcc3e07b939389b14c94312fdd86199e2b6b356ee2242e81b96c3a5978a4d3d

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.10.0-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: jkq.ddsim-1.10.0-cp310-cp310-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 740.4 kB
  • Tags: CPython 3.10, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for jkq.ddsim-1.10.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 33be04712c7120d8fa42bae372e7c21a5d027ea6e6c7c46739b2148a218c9f7e
MD5 d91b4282ecf58e956e19a98bfdecbff2
BLAKE2b-256 c21ef2ff8a4550f10bbe87fb66fa553679956332862bdda0c2e3400f70b37ab3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jkq.ddsim-1.10.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 450.5 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for jkq.ddsim-1.10.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 7b2cfbebecb97964d280553ed796d7bb3f15c77a7df61d6ad3c2002f27507bc8
MD5 4c021a66e3ae6d309cde6df0c6f60b0b
BLAKE2b-256 323632f87b5c713b360078db7cf09609e8fb13ea225ae6ca878958168c288980

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.10.0-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

  • Download URL: jkq.ddsim-1.10.0-cp39-cp39-musllinux_1_1_x86_64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.9, musllinux: musl 1.1+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for jkq.ddsim-1.10.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 10b6e2d1f04c73f106f4c777bde3105848b860632a5d84605995d2b98321ea66
MD5 61da9fb8ce7944cb3eeefc8f1a1486e3
BLAKE2b-256 af5d92dbf39a3dc79efacf9c8edc8c2a88bdfc5cc454dcab938dc03f67af0464

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: jkq.ddsim-1.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 662.8 kB
  • Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for jkq.ddsim-1.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 633f10521f78d1c8db98232bfcd71396e5e2d76b4f721789780b6f5239580509
MD5 efc89329c00fb345701a07065ac96f3e
BLAKE2b-256 d41770cf8326a08ab36e7288c90534e065e3719967b78bd9d7af8132b049d45e

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.10.0-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: jkq.ddsim-1.10.0-cp39-cp39-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 740.5 kB
  • Tags: CPython 3.9, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for jkq.ddsim-1.10.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 3c501921f03f3cdced6148d36766d612cb199871fda3e2ed59addb4305930752
MD5 53cc2a61833b7442900b352051cedf44
BLAKE2b-256 92dfa3a1673accd781ca45d853483781d16ae01fea81cad0dfdbd1b0b346ebba

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jkq.ddsim-1.10.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 450.4 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for jkq.ddsim-1.10.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 23a3326c4ea81cf2e26cf53a0a28dd51b63615e50b2b8f3374daea0241c5a9ba
MD5 5924b17c3e1979a75c13d0cefcbf4452
BLAKE2b-256 96118af76cda052895e980b528990cae0979c2294b19480cc1d878c038030aa0

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.10.0-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

  • Download URL: jkq.ddsim-1.10.0-cp38-cp38-musllinux_1_1_x86_64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.8, musllinux: musl 1.1+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for jkq.ddsim-1.10.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 f0ab7767083871a3a59d64dc176d1b942e086351d52be11e3d82f9cfa0c974c5
MD5 84c8445921262318e062ec1cd514772c
BLAKE2b-256 7bac7f69f4403cf451e9b4a76cf259a7f997133ac351db68b4fa55e7e503ddf3

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: jkq.ddsim-1.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 662.7 kB
  • Tags: CPython 3.8, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for jkq.ddsim-1.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b60265c66418da2fc619154367a223d212fecf34fe7933ba9e8b468b62b1d139
MD5 4198c6a49bf82cb8b97ad54ddbe499f4
BLAKE2b-256 5f38d677dcac88ed12de141af8015d91afffba38177b43caddfd762b33dcaadb

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.10.0-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: jkq.ddsim-1.10.0-cp38-cp38-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 740.6 kB
  • Tags: CPython 3.8, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for jkq.ddsim-1.10.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 1399920cb8d752421481a96dc99436cc522332501975c1d84f8a47b2cd9569eb
MD5 2400a6101f6d9b42fb8916d0a7966983
BLAKE2b-256 356e1a0b7e5d7f15c7140977c4d7afac07cef9d593fc5199ed3489d30543e414

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jkq.ddsim-1.10.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 458.7 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for jkq.ddsim-1.10.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 54715249d88b846d4b486a8873f783a53d39968a1de94a1bd5a6520e20c60e0f
MD5 36441505530859f8d0eafa92b53baf76
BLAKE2b-256 5080bbd52defbf2645f1cb4931c27fcf5af9be3b3353267bebfb484f25550f1a

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.10.0-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

  • Download URL: jkq.ddsim-1.10.0-cp37-cp37m-musllinux_1_1_x86_64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.7m, musllinux: musl 1.1+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for jkq.ddsim-1.10.0-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 89ed68f94ce3264c6c8960e2933509fb5eb64ce8f59f1dafc69ea0deaee6a673
MD5 9023c188466c758f3c97498e3a3b90a2
BLAKE2b-256 bf752247cc5cab6dd7317688ddc9db3d0b3fef9f286690bc7490b3c884e8dcbd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jkq.ddsim-1.10.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 669.5 kB
  • Tags: CPython 3.7m, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for jkq.ddsim-1.10.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 66f3ab3e8eb0821dec82fade54ae4e89add443024a960251c665c133022319dc
MD5 747a7cbeccd607266141598391fe8c42
BLAKE2b-256 ed2c7c06bbf9a535a5e011dc929e8c01d25f3e6eea2e7422476bbaabbe66f460

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.10.0-cp37-cp37m-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: jkq.ddsim-1.10.0-cp37-cp37m-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 737.5 kB
  • Tags: CPython 3.7m, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for jkq.ddsim-1.10.0-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 cf0ecbddc94760e9d81a9bf5a9deb8fbb9e23ca332e3cf2ccfdd1bc2ba832575
MD5 80c4075d0b1699278ae585417acf7feb
BLAKE2b-256 0e5cd3e0d0baea00dbd78cf0979c3f50fbe500aa96d3cd6b3993ec1d1dd6e646

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jkq.ddsim-1.10.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 458.7 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for jkq.ddsim-1.10.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 8aac8a293382a30962afa5053b1691fa0b06367cd56d7e3c208242dc9b352245
MD5 1870268284c01142e9e5740c4478ebb7
BLAKE2b-256 7829ce017fccb71f19fadee53783d2517ec33002157f954f9bda0f983be6d6df

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.10.0-cp36-cp36m-musllinux_1_1_x86_64.whl.

File metadata

  • Download URL: jkq.ddsim-1.10.0-cp36-cp36m-musllinux_1_1_x86_64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.6m, musllinux: musl 1.1+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for jkq.ddsim-1.10.0-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 3ce8dd766df687ff5000cbefa7f6948423fd1aaa2c31d7c3621f37b42269fe79
MD5 fede9115d2e36021906658ac9dbd57a8
BLAKE2b-256 d51778ecc7f85c1040ea803cc607319d57d22c6b9b5c3c9296673feed5971604

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jkq.ddsim-1.10.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 669.5 kB
  • Tags: CPython 3.6m, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for jkq.ddsim-1.10.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 07b42809129f634a6ee80863f86b6a61439aa5d38d5187fd401666199b352040
MD5 60c51ebedb4862d1799322fcecfa0534
BLAKE2b-256 626bcfcc3d8a027b88f1287362ab740b2adc35c0a589a7d7454b636e927e6566

See more details on using hashes here.

File details

Details for the file jkq.ddsim-1.10.0-cp36-cp36m-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: jkq.ddsim-1.10.0-cp36-cp36m-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 737.6 kB
  • Tags: CPython 3.6m, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for jkq.ddsim-1.10.0-cp36-cp36m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 40215716dd0eb90601725ff75d31b37de7fb52a6c1be5318927f77a92b527ba7
MD5 d2dbb00f66ce34c80898c52357e84fa9
BLAKE2b-256 78c271e450462a519b912484cb3e879cc734eeb5681b62fbc4d217292a37b645

See more details on using hashes here.

Supported by

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