pub struct CircuitExecutor { /* private fields */ }Expand description
Replays a flattened CoordCircuit against a Simulator.
Qubit coordinates are mapped to dense engine indices once (sorted by
(x, y), matching CoordCircuit::build_coord_to_index); measurement ids
are used as-is. For whole-program execution (global layout, per-instance
offsets and id remaps) see run_bloq.
Implementations§
Source§impl CircuitExecutor
impl CircuitExecutor
Sourcepub fn new(circuit: &CoordCircuit) -> Result<Self, ExecError>
pub fn new(circuit: &CoordCircuit) -> Result<Self, ExecError>
Build an executor over a flattened circuit (no Op::Repeat),
translating it to engine instructions up front.
§Errors
ExecError::UnflattenedRepeat if any repeat remains,
ExecError::InvalidCircuit if the circuit fails the same structural
preflight used by Bloq IR template emission, or any
circuit-preparation error.
§Panics
Panics only if a validated CoordCircuit lacks its required entry body.
Sourcepub fn qubit_count(&self) -> usize
pub fn qubit_count(&self) -> usize
Number of distinct qubits (engine width needed).
Sourcepub fn run_shot(&self, sim: &mut Simulator) -> Result<ShotRecord, ExecError>
pub fn run_shot(&self, sim: &mut Simulator) -> Result<ShotRecord, ExecError>
Run one shot on sim (which must have at least qubit_count qubits),
consuming classical inputs for Value-slot conditional corrections.
§Errors
See ExecError; propagates engine errors (e.g. rank overflow).