Skip to main content

A package for simulating small-scale quantum computing

Project description

Full documentation at www.awebb.info/qcircuits/index.html.

QCircuits is a Python package for the simulation and study of quantum computers based on the quantum circuit model. It has been designed to have a simple, lightweight interface and to be easy to use, particularly for those new to quantum computing.

Installation

Install with pip:

pip install qcircuits

or from the source available here.

Example usage: quantum teleportation

Quantum circuit:

http://www.awebb.info/qcircuits/_images/teleport.png

Code:

import qcircuits as qc

# Instantiating the operators we will need
CNOT = qc.CNOT()
H = qc.Hadamard()
X = qc.PauliX()
Z = qc.PauliZ()

# Alice's hidden state, that she wishes to transport to Bob.
alice = qc.qubit(theta=1, phi=1, global_phase=0.2)

# A previously prepared Bell state, with one qubit owned by
# alice, and another by Bob, now physically separated.
bell_state = qc.bell_state(0, 0)

# The state vector for the whole system.
phi = alice * bell_state

# Alice applies a CNOT gate to her two qubit, and then
# a Hadamard gate to her private qubit.
phi = CNOT(phi, qubit_indices=[0, 1])
phi = H(phi, qubit_indices=[0])

# Alice measures the first two bits, and transmits the classical
# bits to Bob.
# The only uncollapsed part of the state vector is Bob's.
M1, M2 = phi.measure(qubit_indices=[0, 1], remove=True)

# Apply X and/or Z gates to third qubit depending on measurements
if M2:
    print('First bit 1, applying X\n')
    phi = X(phi)
if M1:
    print('Second bit 1, applying Z\n')
    phi = Z(phi)

print('Original state:', alice)
print('\nTeleported state:', phi)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for QCircuits, version 0.5.0
Filename, size File type Python version Upload date Hashes
Filename, size QCircuits-0.5.0.tar.gz (23.4 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page