Expand description
Logical-to-physical qubit layout management for circuit routing.
Layout tracks where circuit logical qubits are placed on a quantum
device. Physical qubits that do not carry a logical qubit remain vacant and
may be used by routing or by a later compiler step that explicitly activates
an auxiliary logical qubit.
Layout does not allocate auxiliary qubits. Algorithm auxiliary qubits are logical circuit resources and must be managed by the compiler resource manager before they are bound to physical qubits.
§Example
use cqlib_core::device::{Layout, LogicalQubit, PhysicalQubit};
let logical = vec![LogicalQubit::new(0), LogicalQubit::new(1)];
let physical = vec![
PhysicalQubit::new(100),
PhysicalQubit::new(101),
PhysicalQubit::new(102),
];
let mut layout = Layout::new(logical, physical, None).unwrap();
assert_eq!(layout.num_vacant_physical(), 1);
layout
.bind(LogicalQubit::new(2), PhysicalQubit::new(102))
.unwrap();
assert_eq!(layout.num_vacant_physical(), 0);Structs§
- Layout
- Maps circuit logical qubits to physical qubits on a quantum device.