Skip to main content

Module layout

Module layout 

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