A quantum computing simulator for Python
Project description
QSystem
A quantum computing simulator for Python.
The QSystem simulator is inspired in the quantum circuit model, so it's easy to convert any quantum circuit to Python.
Like the follow example:
from qsystem import QSystem
from cmath import exp, pi
q = QSystem(3, 24) # init q0, q1, q2
q.evol(gate='H', qbit=0, count=3) # H q0; H q1; H q2
q.add_ancillas(4) # init a0, a1, a2, a3
q.evol(gate='X', qbit=6) # X a3
q.cnot(target=4, control=[2]) # CNOT a1, q2
q.cnot(5, [2]) # CNOT a2, q2
q.cnot(5, [3]) # CNOT a2, a0
q.cnot(3, [1, 5]) # Toffoli a1, q1, a2
q.cnot(5, [3]) # CNOT a2, a0
q.cnot(4, [6]) # CNOT a1, a3
q.cnot(6, [1, 4]) # Toffoli a3, q1, a1
q.cnot(4, [6]) # CNOT a1, a3
q.measure(qbit=3, count=4) # measure a0, a1, a2, a3
print('ancillas measurement =', q.bits()[3:])
# ancillas measurement = [0, 1, 0, 0]
q.rm_ancillas() # rm a0, a1, a2, a3
q.evol('H', 0) # H q0 ┐
q.cphase(phase=1j, target=1, control=[0]) # Controlled S q1, q0 │
q.evol('H', 1) # H q1 │
q.cphase(exp(pi*1j/4), 2, [0]) # Controlled T q2, q0 │ = q.qft(0, 3)
q.cphase(1j, 2, [1]) # Controlled S q2, q1 │
q.evol('H', 2) # H q1 │
q.swap(0, 2) # SWAP q0, q2 ┘
q.measure(0, 3) # measure q0, q1, q2
print('final measurement =', q.bits())
# final measurement = [1, 0, 0]
Installation
QSystem depends on Boost C++ Libraries and requires a C/C++ compiler.
To install use the follow command:
pip install QSystem
Seed the wiki and the documentation.
This software is supported by
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
QSystem-1.2.0b1.tar.gz
(622.4 kB
view details)
File details
Details for the file QSystem-1.2.0b1.tar.gz
.
File metadata
- Download URL: QSystem-1.2.0b1.tar.gz
- Upload date:
- Size: 622.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb37a2aa5efd96ad6a8ae8498334bd8ea2148a68002e19b300365d7bd9975499 |
|
MD5 | 88bf8830c8cf7aea871c355ec2826b33 |
|
BLAKE2b-256 | 3d00d927c94c7d4947e016b13ccfe1b6f444b2458f8204a7a11b18adbb46abb4 |