Qubit Simulator
A simple yet flexible statevector-based quantum circuit simulator for Python. It supports common single-, two-, and three-qubit gates (including parameterized gates), measurement (shot-based sampling), state resetting, and basic circuit visualization.
Features
- Statevector Simulation: Maintains a complex-valued statevector of size ( 2^n ).
- Common Gates: X, Y, Z, H, S, T, plus multi-qubit gates like CNOT, SWAP, Toffoli, Fredkin, etc.
- Parameterized Gates: General single-qubit rotation ( U(θ, φ, λ) ).
- Controlled Gates: Automatically construct controlled versions of single-qubit gates.
- Circuit Visualization: Generate a diagram of applied operations with
.draw(). - Measurement: Returns shot-based measurement outcomes from the final state.
- Lightweight: Only requires NumPy. For plotting, install optional matplotlib.
Installation
Install Qubit Simulator via pip:
pip install qubit-simulator[visualization]
Usage
Initializing the Simulator
Create a simulator with a specified number of qubits:
from qubit_simulator import QubitSimulator
sim = QubitSimulator(num_qubits=2)
Applying Gates
Apply various quantum gates to the qubits:
sim.h(0) # Hadamard gate
sim.t(0) # π/8 gate
sim.cx(0, 1) # Controlled-Not gate
Custom Gates
Define and apply custom gates using angles:
sim.u(1.05, 1.57, 3.14, 1) # Arbitrary single-qubit gate
Circuit Drawing
Get a drawing of the circuit:
sim.draw()
Measurements
Measure the state of the qubits:
print(sim.run(shots=100))
{'000': 49, '001': 1, '100': 1, '101': 49}
Statevector Plot
Show the amplitude and phase of all quantum states:
sim.state()
Testing
Tests are included in the package to verify its functionality and provide more advanced examples:
python3 -m pytest tests/
License
This project is licensed under the MIT License.
Release files for qubit-simulator 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| qubit_simulator-0.1.1.tar.gz | 11.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| qubit_simulator-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.8 kB
Release files / qubit_simulator-0.1.1.tar.gz
| Download URL | qubit_simulator-0.1.1.tar.gz |
|---|---|
| Size | 11.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
24f5dbdb0e3f1c4e2cbf0b6ead936cb7909f372c430316d902e002eaf5dc4b9f
|
|
BLAKE2b-256 checksum How to use checksums |
f9ba8ef5146d7f8e8c3f244ca6ed4c7393b4217a61ed567cb817f21648c47a8d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Release files / qubit_simulator-0.1.1-py3-none-any.whl
| Download URL | qubit_simulator-0.1.1-py3-none-any.whl |
|---|---|
| Size | 9.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8f02621165ac61c65b3f5deb106eecafa0258b19f041ce97da9b59cb4850578d
|
|
BLAKE2b-256 checksum How to use checksums |
5371070fc9ee2985e5527057c2aab08547f4ce4c3cf925c9bda78ea1b8eb13b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|