Metadata-Version: 2.4
Name: arvak
Version: 1.9.1
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Dist: arvak[qiskit,qrisp,cirq,pennylane,chemistry,notebook,nathan,optimize-sklearn] ; extra == 'all'
Requires-Dist: pyscf>=2.4.0 ; extra == 'chemistry'
Requires-Dist: pennylane>=0.32.0 ; extra == 'chemistry'
Requires-Dist: cirq>=1.0.0 ; extra == 'cirq'
Requires-Dist: cirq-core>=1.0.0 ; extra == 'cirq'
Requires-Dist: ply>=3.11 ; extra == 'cirq'
Requires-Dist: pytest>=7.0 ; extra == 'dev'
Requires-Dist: pytest-cov ; extra == 'dev'
Requires-Dist: httpx>=0.27 ; extra == 'nathan'
Requires-Dist: jupyter>=1.0.0 ; extra == 'notebook'
Requires-Dist: matplotlib>=3.5.0 ; extra == 'notebook'
Requires-Dist: numpy>=1.24 ; extra == 'optimize'
Requires-Dist: scipy>=1.10 ; extra == 'optimize'
Requires-Dist: arvak[optimize] ; extra == 'optimize-sklearn'
Requires-Dist: scikit-learn>=1.3 ; extra == 'optimize-sklearn'
Requires-Dist: pennylane>=0.32.0 ; extra == 'pennylane'
Requires-Dist: qiskit>=1.0.0 ; extra == 'qiskit'
Requires-Dist: qiskit-aer>=0.13.0 ; extra == 'qiskit'
Requires-Dist: qiskit-qasm3-import>=0.5.0 ; extra == 'qiskit'
Requires-Dist: qrisp>=0.4.0 ; extra == 'qrisp'
Provides-Extra: all
Provides-Extra: chemistry
Provides-Extra: cirq
Provides-Extra: dev
Provides-Extra: nathan
Provides-Extra: notebook
Provides-Extra: optimize
Provides-Extra: optimize-sklearn
Provides-Extra: pennylane
Provides-Extra: qiskit
Provides-Extra: qrisp
Summary: Arvak - Rust-native quantum compilation and orchestration platform for HPC with CUDA-Q, neutral-atom, and dynamic plugin support. Developed by The HAL Contract.
Keywords: quantum,compiler,qasm,circuit,hpc,orchestration,cuda-q,neutral-atom
Author-email: Daniel Hinderink <daniel@hal-contract.org>
License: Apache-2.0
Requires-Python: >=3.9
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Documentation, https://arvak.io
Project-URL: Funding, https://www.hal-contract.org
Project-URL: Homepage, https://arvak.io
Project-URL: Issues, https://github.com/hiq-lab/arvak/issues
Project-URL: Repository, https://github.com/hiq-lab/arvak

# Arvak Python Bindings

Python bindings for the Arvak quantum compilation platform.

## Installation

```bash
pip install arvak
```

## Quick Start

```python
import arvak

# Create a Bell state circuit
qc = arvak.Circuit("bell", num_qubits=2)
qc.h(0).cx(0, 1).measure_all()

# Check circuit properties
print(f"Depth: {qc.depth()}")
print(f"Qubits: {qc.num_qubits}")

# Convert to QASM
qasm = arvak.to_qasm(qc)
print(qasm)

# Parse QASM
qc2 = arvak.from_qasm("""
OPENQASM 3.0;
qubit[2] q;
h q[0];
cx q[0], q[1];
""")
```

## Features

- **Circuit Building**: Fluent API for building quantum circuits
- **Standard Gates**: H, X, Y, Z, S, T, CX, CZ, and many more
- **IQM Native Gates**: PRX gate support
- **QASM3 I/O**: Parse and emit OpenQASM 3.0
- **Compilation Types**: Layout, CouplingMap, BasisGates for compilation
- **Hamiltonian Simulation** (`arvak.sim`): Trotter-Suzuki and QDrift time-evolution synthesis
- **Variational Solvers** (`arvak.optimize`): VQE, QAOA, PCE QUBO solver, spectral partition
- **Noise Threading**: `NoisyBackend` wraps any backend with a Qiskit noise model

## Pre-built Circuits

```python
# Bell state
bell = arvak.Circuit.bell()

# GHZ state
ghz = arvak.Circuit.ghz(5)

# Quantum Fourier Transform
qft = arvak.Circuit.qft(4)
```

## Hamiltonian Simulation

```python
from arvak.sim import PauliOp, HamiltonianTerm, Hamiltonian, TrotterEvolution

h = Hamiltonian.from_terms([
    HamiltonianTerm.zz(0, 1, -1.0),
    HamiltonianTerm.x(0, -0.5),
])
circuit = TrotterEvolution.new(h, t=1.0, n_steps=4).first_order()
counts = arvak.run_sim(circuit, shots=1024)
```

## Variational Algorithms

```python
from arvak.optimize import VQESolver, SparsePauliOp, QAOASolver, BinaryQubo

# VQE
h = SparsePauliOp([(-1.0, {0: "Z", 1: "Z"}), (-0.5, {0: "X", 1: "X"})])
result = VQESolver(h, n_qubits=2, n_layers=2, seed=0).solve()
print(result.energy)

# QAOA
qubo = BinaryQubo.from_dict(n=4, quadratic={(0,1):-1,(1,2):-1,(2,3):-1,(0,3):-1})
result = QAOASolver(qubo, p=2, seed=0).solve()
print(result.solution, result.cost)
```

## Install Extras

```bash
pip install arvak[optimize]         # VQE, QAOA, PCE (numpy + scipy)
pip install arvak[optimize-sklearn] # + scikit-learn k-means
pip install arvak[qiskit]           # Qiskit backend integration
pip install arvak[all]              # Everything
```

## License

Apache-2.0

