Metadata-Version: 2.1
Name: qiskit-quimb
Version: 0.0.1.dev0
Summary: Simulate Qiskit circuits using quimb
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: qiskit
Requires-Dist: quimb
Requires-Dist: coverage ; extra == "dev"
Requires-Dist: mypy ; extra == "dev"
Requires-Dist: pytest ; extra == "dev"
Requires-Dist: qiskit[visualization] ; extra == "dev"
Requires-Dist: ruff ; extra == "dev"
Project-URL: Homepage, https://github.com/qiskit-community/qiskit-quimb
Provides-Extra: dev

# qiskit-quimb

Simulate [Qiskit](https://www.ibm.com/quantum/qiskit) circuits using [quimb](https://quimb.readthedocs.io/en/latest/).

## Installation

```bash
pip install qiskit-quimb
```

## Usage

The `qiskit_quimb` module exposes two functions:

- `quimb_circuit`: Converts a Qiskit circuit to a quimb circuit. This is probably the function you want to use.
- `quimb_gates`: Converts a Qiskit circuit to a list of quimb gates, which is a bit more flexible.

## Example code

```python
import quimb.tensor
from qiskit.circuit import QuantumCircuit, QuantumRegister
from qiskit_quimb import quimb_circuit

# Build a Qiskit circuit
qubits = QuantumRegister(2)
circuit = QuantumCircuit(qubits)
a, b = qubits
circuit.h(a)
circuit.cx(a, b)

# Convert it to a quimb circuit
quimb_circ = quimb_circuit(circuit)

# Sample 10 bitstrings
samples = list(quimb_circ.sample(10, seed=1234))
print(samples)

# You can specify the quimb Circuit subclass and keyword arguments for the constructor
quimb_circ = quimb_circuit(
    circuit, quimb_circuit_class=quimb.tensor.CircuitMPS, max_bond=20
)
samples = list(quimb_circ.sample(10, seed=1234))
print(samples)
```

```text
['00', '00', '11', '00', '11', '00', '11', '00', '11', '11']
['11', '11', '00', '00', '11', '00', '11', '11', '11', '00']
```

