Skip to main content

A quantum computing simulator for Python

Project description

PyPI PyPI - License PyPI - Python Version Doc

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:

circ

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

Bitwise representation

The current release has three distinct ways to represent the quantum state: vector, matrix, and the proposed bitwise. The latter is a new way to store and manipulate both states and operations which shows an exponential advantage with the amount of superposition in the systems state.

For more information see our paper arXiv:2004.03560.

@article{qsystem,
    title={QSystem: bitwise representation for quantum circuit simulations},
    author={Evandro Chagas Ribeiro da Rosa and Bruno G. Taketani},
    year={2020},
    eprint={2004.03560},
    archivePrefix={arXiv},
    primaryClass={quant-ph}
}

Seed the API documentation.


This software is supported by FEPESC

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

QSystem-1.2.0.post1.tar.gz (644.6 kB view details)

Uploaded Source

File details

Details for the file QSystem-1.2.0.post1.tar.gz.

File metadata

  • Download URL: QSystem-1.2.0.post1.tar.gz
  • Upload date:
  • Size: 644.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.3

File hashes

Hashes for QSystem-1.2.0.post1.tar.gz
Algorithm Hash digest
SHA256 0bfca7400a6cd881f7961091272d7978e2818ef7cf55333f9786b8610ba22c1e
MD5 096fc9246b0d1d91b6714e289a9c9dbc
BLAKE2b-256 c505ca5407339ee0a49a097d223fd5f36192cc14873e3d3f91f5f78b1831dafc

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