pub enum QuantumExecution {
Live {
qpu: Box<dyn LiveExecution>,
decompose: bool,
native_gate_set: Option<Box<dyn NativeGateSet>>,
},
Batch {
qpu: Box<dyn BatchExecution>,
native_gate_set: Option<Box<dyn NativeGateSet>>,
gradient: GradientStrategy,
exp_value: ExpValueStrategy,
coupling_graph: Option<Vec<(usize, usize)>>,
decompose: bool,
},
}Expand description
The execution target attached to a crate::process::Process.
Variants§
Live
Mid-circuit (live) execution: gates are dispatched to the QPU immediately as they are appended. Measurement results are available inline, enabling adaptive circuits.
Fields
qpu: Box<dyn LiveExecution>The live-mode QPU backend.
decompose: boolWhen true, multi-qubit gate instructions are decomposed into
primitive CNOT + single-qubit gates before dispatch.
native_gate_set: Option<Box<dyn NativeGateSet>>An optional translation layer for hardware-specific gate vocabularies.
Batch
Deferred (batch) execution: the full compiled circuit is sent at once
after Process::execute is called.
Fields
qpu: Box<dyn BatchExecution>The batch execution backend.
native_gate_set: Option<Box<dyn NativeGateSet>>An optional translation layer for hardware-specific gate vocabularies.
When None, the built-in RzRyCX identity set is used.
gradient: GradientStrategyThe gradient computation strategy for variational circuits.
exp_value: ExpValueStrategyThe expectation-value estimation strategy.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for QuantumExecution
impl !Send for QuantumExecution
impl !Sync for QuantumExecution
impl !UnwindSafe for QuantumExecution
impl Freeze for QuantumExecution
impl Unpin for QuantumExecution
impl UnsafeUnpin for QuantumExecution
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more