Skip to main content

Module quantum_register

Module quantum_register 

Source
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§

RegisterConstraints
Device-independent register constraints used during layout.

Enums§

LayoutMethod
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.