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. 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 -DBUILD_DDSIM_TESTS=ON -DCMAKE_BUILD_TYPE=Release -S . -B build
$ 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.

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

Uploaded Source

Built Distributions

jkq.ddsim-1.9.1-cp310-cp310-win_amd64.whl (447.7 kB view details)

Uploaded CPython 3.10 Windows x86-64

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

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

jkq.ddsim-1.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (652.6 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

jkq.ddsim-1.9.1-cp310-cp310-macosx_10_15_x86_64.whl (729.5 kB view details)

Uploaded CPython 3.10 macOS 10.15+ x86-64

jkq.ddsim-1.9.1-cp39-cp39-win_amd64.whl (447.8 kB view details)

Uploaded CPython 3.9 Windows x86-64

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

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

jkq.ddsim-1.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (653.1 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

jkq.ddsim-1.9.1-cp39-cp39-macosx_10_15_x86_64.whl (729.5 kB view details)

Uploaded CPython 3.9 macOS 10.15+ x86-64

jkq.ddsim-1.9.1-cp38-cp38-win_amd64.whl (447.8 kB view details)

Uploaded CPython 3.8 Windows x86-64

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

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

jkq.ddsim-1.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (652.5 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

jkq.ddsim-1.9.1-cp38-cp38-macosx_10_15_x86_64.whl (729.6 kB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

jkq.ddsim-1.9.1-cp37-cp37m-win_amd64.whl (455.8 kB view details)

Uploaded CPython 3.7m Windows x86-64

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

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

jkq.ddsim-1.9.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (658.3 kB view details)

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

jkq.ddsim-1.9.1-cp37-cp37m-macosx_10_15_x86_64.whl (726.0 kB view details)

Uploaded CPython 3.7m macOS 10.15+ x86-64

jkq.ddsim-1.9.1-cp36-cp36m-win_amd64.whl (455.8 kB view details)

Uploaded CPython 3.6m Windows x86-64

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

Uploaded CPython 3.6m musllinux: musl 1.1+ x86-64

jkq.ddsim-1.9.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (658.2 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64

jkq.ddsim-1.9.1-cp36-cp36m-macosx_10_15_x86_64.whl (726.0 kB view details)

Uploaded CPython 3.6m macOS 10.15+ x86-64

File details

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

File metadata

  • Download URL: jkq.ddsim-1.9.1.tar.gz
  • Upload date:
  • Size: 914.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for jkq.ddsim-1.9.1.tar.gz
Algorithm Hash digest
SHA256 4fd7e1e0b34acfa03302bc33ba3551dde4dd498e66bc04c041b1b4641b608754
MD5 3de0a914632b73f1ef737c56d263fc24
BLAKE2b-256 1074aeb9e0d7aee3ee9e08181b976cba08a943f4e695588fc684acea9c3f14ae

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: jkq.ddsim-1.9.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 447.7 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for jkq.ddsim-1.9.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 17a631cdfc7e4b621d89df54bbd37a098e902c1a38235656dfbca8d739c4737c
MD5 83421c6093325f4aa47bc653fc4238b3
BLAKE2b-256 b94ded7c8a96d78de2b7388a5f9d2d23891fd5c3a883153140279c748aec7c9a

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: jkq.ddsim-1.9.1-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.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for jkq.ddsim-1.9.1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 972883e0dac909d304d483e2a318611046e0d358e07d94632438b619f13eacb7
MD5 3cd69a6b284c5812a412f346cbe23c0a
BLAKE2b-256 8bae970485ebe1f80bc3810fa8c329a3297dcf5cd1b4f8186ca39c694837ac6f

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for jkq.ddsim-1.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8378250b58cabda018c829e071d9ab2436911f4c6865f9bdea13c7b5bd39d101
MD5 c2e7a40630cdbe80c2bfd551e8362c12
BLAKE2b-256 47542f2ee77a784da5a3175f26bf4fb99e11329be058f7c819993cd9fb9ced60

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: jkq.ddsim-1.9.1-cp310-cp310-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 729.5 kB
  • Tags: CPython 3.10, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for jkq.ddsim-1.9.1-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 6b41e805e6403687e11940b9a43637c00d1c080342f18487612499063b87d7de
MD5 51c574814f090d8c6103584d214497ac
BLAKE2b-256 ea7011ab100a3235c4188451a7ab6b521911b46c5fed188f35f159960a32cca5

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: jkq.ddsim-1.9.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 447.8 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for jkq.ddsim-1.9.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 9a6a6db7c56e15c6226d24ba2ebf85de0640df7a99bf6047bc2ca88f0ac9c631
MD5 c1b933d35a7b183b6cb0e8340198dd8e
BLAKE2b-256 17289230cb00740ad34afbf737244abc2ffc595a81e8c208877249b96c1bd4e6

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: jkq.ddsim-1.9.1-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.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for jkq.ddsim-1.9.1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 78a0d70f1110b006e9a36e1828eecdab9d1ff26ae7f09048a6cb0754e73e3bee
MD5 3e85a36777a9792ab91dab5f948daa04
BLAKE2b-256 2e8c59c1c860ffb5d26f3955f8c9b9e191d7b930a08e5ce86b229650e154e336

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for jkq.ddsim-1.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f99946a7666d5e78f309d6dfdb89d331655c3af6bef967d8130ff246757efab8
MD5 13bddba911671710e1d93ab0b2b0ba32
BLAKE2b-256 1bea4468e8e9d4ab37736b823138981cca2ab82a48a07db1d2dce77d50d787c1

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: jkq.ddsim-1.9.1-cp39-cp39-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 729.5 kB
  • Tags: CPython 3.9, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for jkq.ddsim-1.9.1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 def2492efe5bdf56fd9082f42e68a02c7cce7a67639f232c497040b929cb035b
MD5 4b9a276823ac81cec9e9d24e7efba990
BLAKE2b-256 5666ccbf8faf75f08fafec8bc6a17096bfa44431544f81fdae05f32b607fd013

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: jkq.ddsim-1.9.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 447.8 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for jkq.ddsim-1.9.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 cef59bfc76c06e974f2cf2fa786c05bcaf03ead289201a58d4d46eb390897d6e
MD5 72b44d6f6f52e1445230201523234931
BLAKE2b-256 6da3ba002ec1b7309db2aeb6b0501879ba4d5e1cb81afec3cdd8b0ab0bd59075

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: jkq.ddsim-1.9.1-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.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for jkq.ddsim-1.9.1-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 d9a81c7e3680ff1f192b2a3cd9cbed78b22e597be83f759f17c24cba246b768c
MD5 cef1c0dbd604d180c563b0f8f51f2858
BLAKE2b-256 1c4e7abec61c593de76f0c292ed2e123e3b8b472461fd007b33b2de33c33d0eb

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for jkq.ddsim-1.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 81cdc95b167414ad306a8dec8dc2d9b9f792c7a74c5d95acadff7430eaab36ea
MD5 e551e9b12932bd636d4c709dc9ae4a09
BLAKE2b-256 a192e68d474cc9ca83f07875c176f2236d990dcb7098f9b54e663d6a901122f9

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: jkq.ddsim-1.9.1-cp38-cp38-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 729.6 kB
  • Tags: CPython 3.8, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for jkq.ddsim-1.9.1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 00603cef4f89c292bc28d6a90e75672fb76ef355af5ad0b0b785be9c89ce3400
MD5 713b9a8eedc1aaf239c474759f5cd2e8
BLAKE2b-256 106c4871e78a57364867a49a0d022db85f0347690e2e9b2c28872844ae5625f0

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: jkq.ddsim-1.9.1-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 455.8 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for jkq.ddsim-1.9.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 ec091ec555084230079e1b4dca69a07661d0e64c1174625e01c1107b9c5e2652
MD5 74a6fe211f86d1ec691227712eee0658
BLAKE2b-256 86310bd5506459cb477a547491b7d0ddc9c1350cb0a553b5db5e5294de49968f

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: jkq.ddsim-1.9.1-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.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for jkq.ddsim-1.9.1-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 aa3a7ad7f2e66996c3fc42fdaa1a5da003f00190065625f198c22b3f96538034
MD5 506840b410beb1d8d322debd9271223f
BLAKE2b-256 eedb1a55104a020bee6eb22ca1db49dd20daaa5ee7f016deba0b0838ef48c716

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for jkq.ddsim-1.9.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 69de1231e37e6c4b8513a0def7bfe781d3d82220a0f5d7a594aa132f8826ac08
MD5 23e21a9b908c7d00fed33f9f56d74bb2
BLAKE2b-256 120514925384573bb58af6e47926916426415332d5ed297f429f8055c0b0da43

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: jkq.ddsim-1.9.1-cp37-cp37m-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 726.0 kB
  • Tags: CPython 3.7m, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for jkq.ddsim-1.9.1-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 ad317f237caad7d98a514052b59113106bccf08f026c75f98f617f8fd7e78847
MD5 644cbfcc7356515180c7c0f9ad434700
BLAKE2b-256 51ce78dfaa5e6519aad532bb6f8b732012659116a08633ae2a1ff69d273f0022

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: jkq.ddsim-1.9.1-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 455.8 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for jkq.ddsim-1.9.1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 cf3546c1491f2ba0d20689817fcac9391ea1c69e6c982d291643eb35e081c047
MD5 04008a3727344df069ae4edd114f2a19
BLAKE2b-256 5e06644f6e67d51451d2244c7e54b38e3ac1458602ee9d9ac770f6a94dd93711

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: jkq.ddsim-1.9.1-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.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for jkq.ddsim-1.9.1-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 661ce5e76fdacdca393d26d7ee0d5714929e98755a37aa571950fc50adae8190
MD5 a59575f8b8172624dc21e80ec4b31b4b
BLAKE2b-256 dc1e0e4a1d7d51e36aceae2091f1228d5aeb5c301e0f17f2e9756a447908410a

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for jkq.ddsim-1.9.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 48d701322d406aede134f5315f9212b591a69c497d2ba8f2b5d99a457fc858e0
MD5 f127d836c16a036b4c147598c38f9671
BLAKE2b-256 2b9507d31313c9636e4fb823356025b1e293fa231766fb85ec4c06fc31decd68

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: jkq.ddsim-1.9.1-cp36-cp36m-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 726.0 kB
  • Tags: CPython 3.6m, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for jkq.ddsim-1.9.1-cp36-cp36m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 cac693fd2d1dae37da810c33237073ea7decafaf3d90391f24d17df50924973c
MD5 243bc5e3c87d0e24d8d1a0baa5801c62
BLAKE2b-256 1c1569dda2f4fc97d5bef47ba6da155da3d014a4929226b29cc5199dc7a576a7

See more details on using hashes here.

Provenance

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