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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 40e99d7410ebc03133acb14331f8d35d49598b46b57241610b407641b11c889c |
|
MD5 | 99a9b748e760cbc35e3c6b0e0b8a0e64 |
|
BLAKE2b-256 | 0bd21ffef8a298099d9d647e38d5ba7f87296901787bae32d9dcd56aa321bdd2 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1523f29047bfe1f13dca44b59b464d465251d0a69a0417f3d865c18d65bde7f9 |
|
MD5 | a462c5d616f578f36b57ba43e82161b0 |
|
BLAKE2b-256 | f22d4d1851522a370d81060c5da26ff2c2e58c33c9aea9b64ff4a95c4209ee09 |