pub struct HolonomicQuantumComputer {
pub gates: Vec<HolonomicGateOp>,
pub error_correction: GeometricErrorCorrection,
pub total_geometric_phase: f64,
}
Expand description
High-level holonomic quantum computing interface
Fields§
§gates: Vec<HolonomicGateOp>
§error_correction: GeometricErrorCorrection
§total_geometric_phase: f64
Implementations§
Source§impl HolonomicQuantumComputer
impl HolonomicQuantumComputer
Sourcepub fn add_gate(&mut self, gate: HolonomicGateOp)
pub fn add_gate(&mut self, gate: HolonomicGateOp)
Add a holonomic gate to the computation
Sourcepub fn execute(
&self,
initial_state: &Array1<Complex64>,
) -> Result<Array1<Complex64>, QuantRS2Error>
pub fn execute( &self, initial_state: &Array1<Complex64>, ) -> Result<Array1<Complex64>, QuantRS2Error>
Execute the holonomic computation
Sourcepub fn total_berry_phase(&self) -> f64
pub fn total_berry_phase(&self) -> f64
Get the total Berry phase of the computation
Sourcepub fn is_topologically_protected(&self) -> bool
pub fn is_topologically_protected(&self) -> bool
Check if the computation is topologically protected
Trait Implementations§
Auto Trait Implementations§
impl Freeze for HolonomicQuantumComputer
impl RefUnwindSafe for HolonomicQuantumComputer
impl Send for HolonomicQuantumComputer
impl Sync for HolonomicQuantumComputer
impl Unpin for HolonomicQuantumComputer
impl UnwindSafe for HolonomicQuantumComputer
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> 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.