# mehdibp/ariaquanta architecture

> Architecture diagram of the GitHub repository mehdibp/ariaquanta, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/mehdibp/ariaquanta
- Repository: https://github.com/mehdibp/ariaquanta

## Overview

AriaQuanta is a Python quantum-computing library spanning quantum algorithms, circuit construction and simulation, and a variational quantum machine-learning toolkit. Its QML capabilities cover data encodings, kernel feature maps, trainable ansätze, gradient estimation, losses and optimizers, VQC models with parameter persistence, and barren-plateau diagnostics. The excerpts show selected circuit construction and ansatz/gradient behavior, plus VQC parameter loading; most algorithm, backend, and training interactions are unsampled, so their connections are left out rather than inferred.

Main entry points: [`qml/ansatz`](https://github.com/mehdibp/ariaquanta/tree/main/qml/ansatz) (Variational ansätze), [`qml/encoding`](https://github.com/mehdibp/ariaquanta/tree/main/qml/encoding) (Data encodings), [`qml/ansatz/data_reuploading.py`](https://github.com/mehdibp/ariaquanta/blob/main/qml/ansatz/data_reuploading.py) (Data re-uploading), [`qml/ansatz/hardware_efficient.py`](https://github.com/mehdibp/ariaquanta/blob/main/qml/ansatz/hardware_efficient.py) (Hardware-efficient)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_algorithms["Quantum algorithms"]
  node_algorithm_suite["Algorithm suite"]
  node_eigen_solver["Eigen solver<br/>[eigen_solver.py]"]
end

subgraph group_circuits["Circuits and simulation"]
  node_aqc_circuit["Circuit engine<br/>[circuit.py]"]
  node_aqc_ansatz["Circuit ansatz<br/>[ansatz.py]"]
  node_gate_library["Gate library"]
  node_hamiltonian["Hamiltonians<br/>[hamiltonian.py]"]
  node_measurement_noise["Measurement and noise"]
  node_backend_sim["Simulator backend<br/>[simulator.py]"]
  node_backend_jobs["Jobs and results"]
end

subgraph group_qml["Quantum machine learning"]
  node_qml_encoding["Data encodings"]
  node_qml_features["Kernel feature maps"]
  node_qml_map_unit["Pauli map layers<br/>[unit.py]"]
  node_qml_ansatz["Variational ansätze"]
  node_data_reupload["Data re-uploading"]
  node_hardware_ansatz["Hardware-efficient"]
end

subgraph group_qmltraining["QML training"]
  node_vqc["VQC model<br/>[vqc.py]"]
  node_persistence["Parameter persistence<br/>[persistence.py]"]
  node_gradients["Gradient estimators"]
  node_parameter_shift["Parameter shift<br/>[parameter_shift.py]"]
  node_spsa_gradient["SPSA gradient<br/>[spsa.py]"]
  node_losses["Loss functions<br/>[loss.py]"]
  node_optimizers["Optimizers<br/>[optimizer.py]"]
  node_diagnostics["Plateau diagnostics<br/>[barren_plateau.py]"]
end

node_user(("Library user"))

node_user -.->|"selects algorithms"| node_algorithm_suite
node_user -.->|"encodes data"| node_qml_encoding
node_qml_encoding -->|"builds circuits"| node_aqc_circuit
node_qml_features -->|"applies layers"| node_qml_map_unit
node_qml_ansatz -.->|"provides template"| node_data_reupload
node_qml_ansatz -.->|"provides template"| node_hardware_ansatz
node_data_reupload -->|"adds gates"| node_gate_library
node_hardware_ansatz -->|"adds gates"| node_gate_library
node_parameter_shift -->|"perturbs parameters"| node_aqc_ansatz
node_spsa_gradient -->|"perturbs parameters"| node_aqc_ansatz
node_diagnostics -->|"runs circuit"| node_aqc_circuit
node_vqc -->|"loads parameters"| node_persistence

click node_algorithm_suite "https://github.com/mehdibp/ariaquanta/tree/main/algorithms"
click node_eigen_solver "https://github.com/mehdibp/ariaquanta/blob/main/algorithms/eigen_solver.py"
click node_aqc_circuit "https://github.com/mehdibp/ariaquanta/blob/main/aqc/circuit.py"
click node_aqc_ansatz "https://github.com/mehdibp/ariaquanta/blob/main/aqc/ansatz.py"
click node_gate_library "https://github.com/mehdibp/ariaquanta/tree/main/aqc/gatelibrary"
click node_hamiltonian "https://github.com/mehdibp/ariaquanta/blob/main/aqc/hamiltonian.py"
click node_measurement_noise "https://github.com/mehdibp/ariaquanta/tree/main/aqc"
click node_backend_sim "https://github.com/mehdibp/ariaquanta/blob/main/backend/simulator.py"
click node_backend_jobs "https://github.com/mehdibp/ariaquanta/tree/main/backend"
click node_qml_encoding "https://github.com/mehdibp/ariaquanta/tree/main/qml/encoding"
click node_qml_features "https://github.com/mehdibp/ariaquanta/tree/main/qml/feature_map"
click node_qml_map_unit "https://github.com/mehdibp/ariaquanta/blob/main/qml/feature_map/unit.py"
click node_qml_ansatz "https://github.com/mehdibp/ariaquanta/tree/main/qml/ansatz"
click node_data_reupload "https://github.com/mehdibp/ariaquanta/blob/main/qml/ansatz/data_reuploading.py"
click node_hardware_ansatz "https://github.com/mehdibp/ariaquanta/blob/main/qml/ansatz/hardware_efficient.py"
click node_vqc "https://github.com/mehdibp/ariaquanta/blob/main/qml/models/vqc.py"
click node_persistence "https://github.com/mehdibp/ariaquanta/blob/main/qml/models/persistence.py"
click node_gradients "https://github.com/mehdibp/ariaquanta/tree/main/qml/gradients"
click node_parameter_shift "https://github.com/mehdibp/ariaquanta/blob/main/qml/gradients/parameter_shift.py"
click node_spsa_gradient "https://github.com/mehdibp/ariaquanta/blob/main/qml/gradients/spsa.py"
click node_losses "https://github.com/mehdibp/ariaquanta/blob/main/qml/training/loss.py"
click node_optimizers "https://github.com/mehdibp/ariaquanta/blob/main/qml/training/optimizer.py"
click node_diagnostics "https://github.com/mehdibp/ariaquanta/blob/main/qml/diagnostics/barren_plateau.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_algorithm_suite,node_eigen_solver,node_user toneBlue
class node_aqc_circuit,node_aqc_ansatz,node_gate_library,node_hamiltonian,node_measurement_noise,node_backend_sim,node_backend_jobs toneAmber
class node_qml_encoding,node_qml_features,node_qml_map_unit,node_qml_ansatz,node_data_reupload,node_hardware_ansatz toneMint
class node_vqc,node_persistence,node_gradients,node_parameter_shift,node_spsa_gradient,node_losses,node_optimizers,node_diagnostics toneRose
```

## Components

### Quantum algorithms

- [Algorithm suite](https://github.com/mehdibp/ariaquanta/tree/main/algorithms): `algorithms`
- [Eigen solver](https://github.com/mehdibp/ariaquanta/blob/main/algorithms/eigen_solver.py): `algorithms/eigen_solver.py`

### Circuits and simulation

- [Circuit engine](https://github.com/mehdibp/ariaquanta/blob/main/aqc/circuit.py): `aqc/circuit.py`
- [Circuit ansatz](https://github.com/mehdibp/ariaquanta/blob/main/aqc/ansatz.py): `aqc/ansatz.py`
- [Gate library](https://github.com/mehdibp/ariaquanta/tree/main/aqc/gatelibrary): `aqc/gatelibrary`
- [Hamiltonians](https://github.com/mehdibp/ariaquanta/blob/main/aqc/hamiltonian.py): `aqc/hamiltonian.py`
- [Measurement and noise](https://github.com/mehdibp/ariaquanta/tree/main/aqc): `aqc`
- [Simulator backend](https://github.com/mehdibp/ariaquanta/blob/main/backend/simulator.py): `backend/simulator.py`
- [Jobs and results](https://github.com/mehdibp/ariaquanta/tree/main/backend): `backend`

### Quantum machine learning

- [Data encodings](https://github.com/mehdibp/ariaquanta/tree/main/qml/encoding): `qml/encoding`
- [Kernel feature maps](https://github.com/mehdibp/ariaquanta/tree/main/qml/feature_map): `qml/feature_map`
- [Pauli map layers](https://github.com/mehdibp/ariaquanta/blob/main/qml/feature_map/unit.py): `qml/feature_map/unit.py`
- [Variational ansätze](https://github.com/mehdibp/ariaquanta/tree/main/qml/ansatz): `qml/ansatz`
- [Data re-uploading](https://github.com/mehdibp/ariaquanta/blob/main/qml/ansatz/data_reuploading.py): `qml/ansatz/data_reuploading.py`
- [Hardware-efficient](https://github.com/mehdibp/ariaquanta/blob/main/qml/ansatz/hardware_efficient.py): `qml/ansatz/hardware_efficient.py`

### QML training

- [VQC model](https://github.com/mehdibp/ariaquanta/blob/main/qml/models/vqc.py): `qml/models/vqc.py`
- [Parameter persistence](https://github.com/mehdibp/ariaquanta/blob/main/qml/models/persistence.py): `qml/models/persistence.py`
- [Gradient estimators](https://github.com/mehdibp/ariaquanta/tree/main/qml/gradients): `qml/gradients`
- [Parameter shift](https://github.com/mehdibp/ariaquanta/blob/main/qml/gradients/parameter_shift.py): `qml/gradients/parameter_shift.py`
- [SPSA gradient](https://github.com/mehdibp/ariaquanta/blob/main/qml/gradients/spsa.py): `qml/gradients/spsa.py`
- [Loss functions](https://github.com/mehdibp/ariaquanta/blob/main/qml/training/loss.py): `qml/training/loss.py`
- [Optimizers](https://github.com/mehdibp/ariaquanta/blob/main/qml/training/optimizer.py): `qml/training/optimizer.py`
- [Plateau diagnostics](https://github.com/mehdibp/ariaquanta/blob/main/qml/diagnostics/barren_plateau.py): `qml/diagnostics/barren_plateau.py`

### Other components

- **Library user**

## Connections

- Library user → Algorithm suite: selects algorithms
- Library user → Data encodings: encodes data
- Data encodings → Circuit engine: builds circuits (evidence: `qml/encoding/qram.py`)
- Kernel feature maps → Pauli map layers: applies layers (evidence: `qml/feature_map/pauli.py`)
- Variational ansätze → Data re-uploading: provides template (evidence: `qml/ansatz/__init__.py`)
- Variational ansätze → Hardware-efficient: provides template (evidence: `qml/ansatz/__init__.py`)
- Data re-uploading → Gate library: adds gates (evidence: `qml/ansatz/data_reuploading.py`)
- Hardware-efficient → Gate library: adds gates (evidence: `qml/ansatz/hardware_efficient.py`)
- Parameter shift → Circuit ansatz: perturbs parameters (evidence: `qml/gradients/parameter_shift.py`)
- SPSA gradient → Circuit ansatz: perturbs parameters (evidence: `qml/gradients/spsa.py`)
- Plateau diagnostics → Circuit engine: runs circuit (evidence: `qml/diagnostics/barren_plateau.py`)
- VQC model → Parameter persistence: loads parameters (evidence: `qml/models/vqc.py`)
