Expand description
Graph → 2D atom register layout, shared across quantum backends.
EXPERIMENTAL (0.6.x). Both Pasqal Fresnel and QuEra Aquila consume a list of named atoms at 2D coordinates in micrometers. This module produces a deterministic layout from an adjacency list so the same graph maps to the same register across backends and across runs.
§Layout backends (WEFT-129)
- Spectral embedding (default): places atoms using the 2nd and 3rd
eigenvectors of the (combinatorial) graph Laplacian. Preserves
Laplacian structure, which is the same operator used as the quantum
Hamiltonian in
crate::quantum_state. Dense Jacobi eigensolve is O(n³) — fine for device limits (≤100 atoms). Pure Rust; no Wasmtime. - Force-directed (Fruchterman–Reingold): retained as an explicit option and as an automatic fallback when spectral positions collapse (e.g. highly symmetric or degenerate graphs).
Note: the 0.7.0 audit row titled this “Wasmtime backend for spectral_embedding”. That was a misnomer — spectral embedding is classical linear algebra on n≤100, not a WASM sandbox concern. The production surface is this pure-Rust path.
Structs§
- Register
Constraints - Device-independent register constraints used during layout.
Enums§
- Layout
Method - Algorithm used to map a graph adjacency list to 2D atom positions.
Functions§
- build_
register - Build a named 2D register from a graph adjacency list.
- build_
register_ with - Build a named 2D register with an explicit
LayoutMethod.