Skip to main content

QSimov: A Quantum Computing Toolkit

Project description

QSimov

QSimov is a quantum computing toolkit developed in Python, initially as an End Degree Project at UCLM. It allows the user to work both at a low level using quantum gates and registers and at a higher level using the design tools. It has been created in such a way that it allows an almost immediate translation from the circuit diagram to the code necessary to execute it. From the moment of its creation, QSimov has been focused on being able to be used in learning and not on big computers and datacenters. For this reason, the simplicity of use and the low hardware requirements have always been what have guided its development. It is capable of running up to 29 entangled qubits on a laptop with 16 GB of RAM and several thousand non-entangled qubits under the same conditions.

Getting Started

By following this instructions you will have a working binary.

Prerequisites

CPython>=3.8 x64 is needed to run QSimov with its default core, Doki. You also need the following python libraries in order to use QSimov:

  • numpy>=1.21
  • matplotlib>=3.5.1
  • doki-Mowstyl>=1.5.2

Building from sources

You need the source code, either by cloning the project or by downloading it. You also need the "wheels" and the "build" python modules. Execute the following command while on the root directory of the project to generate the .whl file into the dist folder:

  • python -m build

Installing

You may install QSimov with pip by downloading the latest version from PyPI with

  • pip install qsimov You can also install the generated .whl package, in case you are building it from the source, with the following command.
  • pip install dist/qsimov-%QSimovVersion%-py3-none-any.whl

Testing

The full test suite can be run with:

python tests/qtest.py <min> <max> [seed] [verbose]
  • min: minimum number of qubits to use in the tests involving data structures with a variable number of qubits. min has to be at least 3.
  • max: minimum number of qubits to use in the tests involving data structures with a variable number of qubits. Don't use more than 8 since the simulator tests against operations made in numpy, which is not made for quantum computing simulation and therefore can be very slow with a number of qubits greater than 7.
  • seed (optional): the seed to use in random operations. If none specified, the used seed will be printed in console so you can always repeat a failed test.
  • verbose (optional): whether to print extra information.

Contributing

Feel free to create pull requests. Keep in mind that the requests must be synced to the main branch. If they have conflicts they'll be rejected. Also, the pull requests must have a brief explaination of the work done. They must be free of any binary file and the code has to be indented (plain code won't be accepted).

Versioning

We use SemVer for versioning. For the versions available, see the tags section on this repository.

Authors

  • Hernán Indíbil de la Cruz Calvo - Initial work - Mowstyl

See also the list of contributors who participated in this project.

License

When a project has no LICENSE.md file, it's licensed under the most restrictive license (that means copyright). This is always true, so keep it in mind when using someone else's code. At the moment, MIT License is being used.

Acknowledgments

  • Billie Thompson - This README.md was based on the one provided by this person. Great work! - PurpleBooth
  • StackEdit - Markdown editor used - StackEdit

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

qsimov-5.1.3.tar.gz (66.1 kB view details)

Uploaded Source

Built Distribution

qsimov-5.1.3-py3-none-any.whl (69.1 kB view details)

Uploaded Python 3

File details

Details for the file qsimov-5.1.3.tar.gz.

File metadata

  • Download URL: qsimov-5.1.3.tar.gz
  • Upload date:
  • Size: 66.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for qsimov-5.1.3.tar.gz
Algorithm Hash digest
SHA256 40e99d7410ebc03133acb14331f8d35d49598b46b57241610b407641b11c889c
MD5 99a9b748e760cbc35e3c6b0e0b8a0e64
BLAKE2b-256 0bd21ffef8a298099d9d647e38d5ba7f87296901787bae32d9dcd56aa321bdd2

See more details on using hashes here.

File details

Details for the file qsimov-5.1.3-py3-none-any.whl.

File metadata

  • Download URL: qsimov-5.1.3-py3-none-any.whl
  • Upload date:
  • Size: 69.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for qsimov-5.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 1523f29047bfe1f13dca44b59b464d465251d0a69a0417f3d865c18d65bde7f9
MD5 a462c5d616f578f36b57ba43e82161b0
BLAKE2b-256 f22d4d1851522a370d81060c5da26ff2c2e58c33c9aea9b64ff4a95c4209ee09

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