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.
- Installation
- Creating Quantum States
- Applying Quantum Gates
- Available Quantum Gates
- Example Usage
- License
You can install qtypi
using pip:
pip install qtypi
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])
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)
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)
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)
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)
This project is licensed under the MIT License. See the LICENSE file for more details.