pub struct QubitGraph<'a> { /* private fields */ }
Expand description
QubitGraph is a logical execution/dependency graph of instructions. Pragma, RF Control, and Control Flow instructions are not supported. It is a directed graph from the first instructions (the set of instructions that do not depend on prior instructions) to the last instructions (the set of instructions that are not prerequisites for any later instructions).
Nodes are instructions; edges link subsequent instructions which use a shared qubit.
Implementations§
Source§impl<'a> QubitGraph<'a>
impl<'a> QubitGraph<'a>
Sourcepub fn gate_depth(&self, gate_minimum_qubit_count: usize) -> usize
pub fn gate_depth(&self, gate_minimum_qubit_count: usize) -> usize
Returns the length of the longest path from an initial instruction (one with no prerequisite instructions) to a final instruction (one with no dependent instructions), where the length of a path is the number of gate instructions in the path.
§Arguments
gate_minimum_qubit_count
- The minimum number of qubits in a gate for it to be counted in the depth.
Trait Implementations§
Source§impl<'a> Debug for QubitGraph<'a>
impl<'a> Debug for QubitGraph<'a>
Source§impl<'a> TryFrom<&BasicBlock<'a>> for QubitGraph<'a>
impl<'a> TryFrom<&BasicBlock<'a>> for QubitGraph<'a>
Source§type Error = QubitGraphError
type Error = QubitGraphError
The type returned in the event of a conversion error.
Auto Trait Implementations§
impl<'a> Freeze for QubitGraph<'a>
impl<'a> RefUnwindSafe for QubitGraph<'a>
impl<'a> Send for QubitGraph<'a>
impl<'a> Sync for QubitGraph<'a>
impl<'a> Unpin for QubitGraph<'a>
impl<'a> UnwindSafe for QubitGraph<'a>
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<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.