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: f64Implementations§
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 more