Skip to main content

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

Project description

>> Quickstart Guide

Build Status codecov License: MIT toolset: JKQ

JKQ DDSIM - A quantum 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. 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)

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

Uploaded Source

Built Distributions

jkq.ddsim-1.6.1-cp39-cp39-win_amd64.whl (335.0 kB view details)

Uploaded CPython 3.9 Windows x86-64

jkq.ddsim-1.6.1-cp39-cp39-manylinux2014_x86_64.whl (492.9 kB view details)

Uploaded CPython 3.9

jkq.ddsim-1.6.1-cp39-cp39-macosx_10_9_x86_64.whl (348.9 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

jkq.ddsim-1.6.1-cp38-cp38-win_amd64.whl (335.0 kB view details)

Uploaded CPython 3.8 Windows x86-64

jkq.ddsim-1.6.1-cp38-cp38-manylinux2014_x86_64.whl (492.6 kB view details)

Uploaded CPython 3.8

jkq.ddsim-1.6.1-cp38-cp38-macosx_10_9_x86_64.whl (349.0 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

jkq.ddsim-1.6.1-cp37-cp37m-win_amd64.whl (339.2 kB view details)

Uploaded CPython 3.7m Windows x86-64

jkq.ddsim-1.6.1-cp37-cp37m-manylinux2014_x86_64.whl (496.8 kB view details)

Uploaded CPython 3.7m

jkq.ddsim-1.6.1-cp37-cp37m-macosx_10_9_x86_64.whl (347.8 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

jkq.ddsim-1.6.1-cp36-cp36m-win_amd64.whl (339.2 kB view details)

Uploaded CPython 3.6m Windows x86-64

jkq.ddsim-1.6.1-cp36-cp36m-manylinux2014_x86_64.whl (496.7 kB view details)

Uploaded CPython 3.6m

jkq.ddsim-1.6.1-cp36-cp36m-macosx_10_9_x86_64.whl (347.9 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for jkq.ddsim-1.6.1.tar.gz
Algorithm Hash digest
SHA256 ffbaacc9413d1045f9abbf17c4c399c29c4bb2ffa99037e52b306ba60681e05b
MD5 de4a32cbabb71314936b8b4f423c72f2
BLAKE2b-256 0ec9315eeaac21a052051a61aeeab574d59590a096ac8bc2288455ebc007ee28

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jkq.ddsim-1.6.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 6f5651ca9375eb817e26d4344fd0c4fedef56761d23e50835155cdce11b4d5b3
MD5 62b3ae851bf1a010895bad4195e52137
BLAKE2b-256 acc0c7b6bc08aea77f41c5f237a55f15b4f43380b04efb1f3b87cae7ce12dde0

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jkq.ddsim-1.6.1-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 130f8a6b2c993b7b5777d3ca9caa03dda72e4417fe3e19da83bf463c312741d3
MD5 67bc7bbc77c1a27c44a1599a4bb5bff4
BLAKE2b-256 a36f2b7dbc0be7d8a7aa61d1655c4011bdcb2311f2dc3e2a762f829d6281407c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jkq.ddsim-1.6.1-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 348.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.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.0 CPython/3.9.5

File hashes

Hashes for jkq.ddsim-1.6.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 20e98240ac6df61a1d0c615f49cb528e9073dd9536bc379c5005b5ffacedfa2a
MD5 680671143c6bc5f1d874bae1d55062ed
BLAKE2b-256 84a7f49e8d45c9680296975c5844e35f8c1da45730282872e2db0962184639e3

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jkq.ddsim-1.6.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 809a3d1bbb33774840edbee79f350f7e255ce56b6f912d734c32f99e70aacd73
MD5 f2e01aa30792ffe9c2158c2a50637356
BLAKE2b-256 aeb052433976b40c762c34105c1b97bc7ff6dcaab652bc3202ce10907e13681c

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jkq.ddsim-1.6.1-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e9e90f317d1ee04b3326126d2b34393f040f252315aa53ff7d0a38bbc6829de4
MD5 e472ef64422fb226e0e6cbbfa272eb9a
BLAKE2b-256 226142c198ac591bbd500450e56224aa6e7b413949341a21eddaf8082b29cf8e

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jkq.ddsim-1.6.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 976d8a29950b11f587d7ebe4497b235cb4275a55521a9ed26fd96347bdae9490
MD5 bf0552c249311e1479adc705c233158c
BLAKE2b-256 f0cdb2508a39f646c0f3765da77393da2dc25ca4abdcae8679b701a4e8418fd1

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jkq.ddsim-1.6.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 e86fc8d224d1c21729f84312f7829e588d545e47d4518ea49ff702cca82b1d82
MD5 83528c43866fcebe519e4b0ac264f1e5
BLAKE2b-256 e06e3be73af01e1c81ed0419f1ac0210a296b871eac695eea8bf57c1222f66fd

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jkq.ddsim-1.6.1-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 28ce3b7bc3ce3d07d56e65260d9e7069583ae20697c8c7e9af4e7d813102be22
MD5 b41fa8a5b84010c33957e3aefaf78452
BLAKE2b-256 edcc0b073bfd57216d4a16c2dc3993b9744d96a156709525daec2999df142914

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jkq.ddsim-1.6.1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f2e07328e7c0c0196d3c7ce45d52a403aaf3dcd50a8ff9828cee3406721f77bb
MD5 a36e2aaa4bc3d255b33e60734b6cbfc3
BLAKE2b-256 ba9329e290d047d9d825bc7a423684524a941993ea77c225ee83b049f9b06ff4

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jkq.ddsim-1.6.1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 cb1c3e44c9b12627cbe070210b08a41fcdeb479fae89d5b53139cade814cd10d
MD5 7bcf32bba0f04b81432d8a1b6af00852
BLAKE2b-256 9af0d2a8e9f25400e65f7f2aea30b6e4fdb71c92dd15e1e12ea95dce30a3d0d8

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jkq.ddsim-1.6.1-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 05b055dcca8cb6329f994cd0934f3cbea29862e5e38ba14553e167a39f5837d1
MD5 79197668321e17881169c72841d042f0
BLAKE2b-256 3b25b9280ce735d8781f106a14f24bb39909468c9342165b6f250b72c162905c

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for jkq.ddsim-1.6.1-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 55fa2f8f84ba5ec0c142add8a526197f8d57c06b2afc63631b73c52821e900a2
MD5 7d87a4b616d263abe57adc8192105a8b
BLAKE2b-256 0755715d9712062054fff1ac84d2e19198cb7ab53b1ed94b5a077af4582635c0

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