pub enum VariationalPattern {
SingleRotation {
axis: char,
param: Expression,
},
EntanglingLayer {
params: Vec<Expression>,
},
VqeAnsatz {
params: Vec<Expression>,
},
QaoaMixer {
beta: Expression,
},
QaoaCost {
gamma: Expression,
},
}Expand description
Recognize variational quantum circuit parameter patterns.
VariationalPattern::SingleRotation, VariationalPattern::QaoaMixer
and VariationalPattern::QaoaCost are constructible from a single gate
expression and are produced by recognize_variational_pattern.
VariationalPattern::EntanglingLayer and
VariationalPattern::VqeAnsatz are forward-declared scaffolding for a
future circuit-level pattern API: recognizing an entangling layer or a
full VQE ansatz genuinely requires looking at a sequence of gates (e.g.
the CNOT/CZ ladder plus the per-qubit rotations that make up one ansatz
layer), which cannot be read off a single Expression. No function in
this crate constructs these two variants today; they exist purely as
planned enum shape for when a multi-gate (&[Expression]-based)
recognizer is added.
Variants§
SingleRotation
Single parameter rotation
EntanglingLayer
Parametric entangling layer.
Not yet constructible: see the enum-level doc comment.
Fields
params: Vec<Expression>VqeAnsatz
VQE ansatz pattern.
Not yet constructible: see the enum-level doc comment.
Fields
params: Vec<Expression>QaoaMixer
QAOA mixer pattern
Fields
beta: ExpressionQaoaCost
QAOA cost pattern
Fields
gamma: ExpressionTrait Implementations§
Source§impl Clone for VariationalPattern
impl Clone for VariationalPattern
Source§fn clone(&self) -> VariationalPattern
fn clone(&self) -> VariationalPattern
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for VariationalPattern
impl RefUnwindSafe for VariationalPattern
impl Send for VariationalPattern
impl Sync for VariationalPattern
impl Unpin for VariationalPattern
impl UnsafeUnpin for VariationalPattern
impl UnwindSafe for VariationalPattern
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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