pub struct TemplateMatching { /* private fields */ }Expand description
Template matching optimization
Implementations§
Source§impl TemplateMatching
impl TemplateMatching
pub fn new() -> Self
pub const fn with_templates(templates: Vec<CircuitTemplate>) -> Self
Source§impl TemplateMatching
impl TemplateMatching
Sourcepub fn with_advanced_templates() -> Self
pub fn with_advanced_templates() -> Self
Create an advanced template matcher with more sophisticated patterns
Sourcepub fn for_hardware(hardware: &str) -> Self
pub fn for_hardware(hardware: &str) -> Self
Create a template matcher for specific hardware
Trait Implementations§
Source§impl Default for TemplateMatching
impl Default for TemplateMatching
Source§impl OptimizationPass for TemplateMatching
impl OptimizationPass for TemplateMatching
Source§fn apply_to_gates(
&self,
gates: Vec<Box<dyn GateOp>>,
cost_model: &dyn CostModel,
) -> QuantRS2Result<Vec<Box<dyn GateOp>>>
fn apply_to_gates( &self, gates: Vec<Box<dyn GateOp>>, cost_model: &dyn CostModel, ) -> QuantRS2Result<Vec<Box<dyn GateOp>>>
Apply the optimization pass to a gate list
Source§fn should_apply(&self) -> bool
fn should_apply(&self) -> bool
Check if this pass should be applied
Auto Trait Implementations§
impl Freeze for TemplateMatching
impl RefUnwindSafe for TemplateMatching
impl Send for TemplateMatching
impl Sync for TemplateMatching
impl Unpin for TemplateMatching
impl UnwindSafe for TemplateMatching
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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 moreSource§impl<T, const N: usize> OptimizationPassExt<N> for Twhere
T: OptimizationPass + ?Sized,
impl<T, const N: usize> OptimizationPassExt<N> for Twhere
T: OptimizationPass + ?Sized,
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.