qtypi
qtypi is a Python library for performing quantum computations using linear algebra. It provides tools to create and manipulate quantum states and apply quantum gates.
Table of Contents
- Installation
- Creating Quantum States
- Applying Quantum Gates
- Available Quantum Gates
- Example Usage
- License
Installation
You can install qtypi using pip:
pip install qtypi
Creating Quantum States
To create a quantum state, instantiate the QuantumState class by passing a state vector (as a list or numpy array).
from qtypi.quantum_state import QuantumState
# Create the |0> state
state_zero = QuantumState([1, 0])
# Create the |1> state
state_one = QuantumState([0, 1])
Applying Quantum Gates
Quantum gates can be applied to quantum states using the apply_gate method of the QuantumState class. The library includes commonly used gates, such as Hadamard, Pauli-X, Pauli-Y, Pauli-Z, Phase, and CNOT gates.
from qtypi.quantum_gates import QuantumGate
# Create a Hadamard gate
hadamard_gate = QuantumGate.hadamard()
# Apply the Hadamard gate to the |0> state
new_state = state_zero.apply_gate(hadamard_gate)
print(new_state)
Available Quantum Gates
The following gates are available as static methods in the QuantumGate class:
- Hadamard Gate:
QuantumGate.hadamard() - Pauli-X Gate:
QuantumGate.pauli_x() - Pauli-Y Gate:
QuantumGate.pauli_y() - Pauli-Z Gate:
QuantumGate.pauli_z() - Phase Gate:
QuantumGate.phase(theta) - CNOT Gate:
QuantumGate.cnot() - Custom Gate:
QuantumGate.custom_gate(matrix)
Example Usage
Creating and Applying Gates
Here’s a complete example of creating a quantum state, applying a Hadamard gate, and printing the result:
from qtypi.quantum_state import QuantumState
from qtypi.quantum_gates import QuantumGate
# Initialize the |0> state
state = QuantumState([1, 0])
# Create a Hadamard gate
hadamard_gate = QuantumGate.hadamard()
# Apply the Hadamard gate to the |0> state
new_state = state.apply_gate(hadamard_gate)
# Print the resulting quantum state
print("New State after applying Hadamard:", new_state)
Custom Quantum Gates
You can create and apply custom quantum gates using a matrix of your choice. For example:
import numpy as np
from qtypi.quantum_state import QuantumState
from qtypi.quantum_gates import QuantumGate
# Define a custom matrix
custom_matrix = np.array([[0, 1], [1, 0]]) # Equivalent to Pauli-X gate
# Create the custom gate
custom_gate = QuantumGate.custom_gate(custom_matrix)
# Apply it to a |0> state
state = QuantumState([1, 0])
new_state = state.apply_gate(custom_gate)
print("New State after applying custom gate:", new_state)
License
This project is licensed under the MIT License. See the LICENSE file for more details.
Metadata
Release files for qtypi 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| qtypi-0.1.0.tar.gz | 4.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| qtypi-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.8 kB
Release files / qtypi-0.1.0.tar.gz
| Download URL | qtypi-0.1.0.tar.gz |
|---|---|
| Size | 4.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
eb0514048a0ffb652636adcb8ab716117369cba7f0c5688ed52f86e5a0dfd7ad
|
|
BLAKE2b-256 checksum How to use checksums |
268b6d27c32fe267d70c613e8a098f4930f2c44ea1b4ad591be34b2e4dd6e472
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.3
|
Release files / qtypi-0.1.0-py3-none-any.whl
| Download URL | qtypi-0.1.0-py3-none-any.whl |
|---|---|
| Size | 4.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
af833815c6b60c3162716f2d7a0b1a33982be8ad78c4b4f3d5ed4c2e5a37067b
|
|
BLAKE2b-256 checksum How to use checksums |
e3028750ff2ea4c08b8e59b951cb30a2d69d628caae5212ee4d81c8dc90c8011
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.3
|