pub enum NoiseModel {
Depolarizing {
probability: f64,
},
AmplitudeDamping {
gamma: f64,
},
PhaseDamping {
lambda: f64,
},
BitFlip {
probability: f64,
},
PhaseFlip {
probability: f64,
},
BitPhaseFlip {
probability: f64,
},
Pauli {
p_x: f64,
p_y: f64,
p_z: f64,
},
ThermalRelaxation {
t1: f64,
t2: f64,
time: f64,
},
}Expand description
Noise model types for quantum systems
Variants§
Depolarizing
Depolarizing channel: ρ → (1-p)ρ + p(I/d)
AmplitudeDamping
Amplitude damping: models energy dissipation
PhaseDamping
Phase damping: models loss of quantum coherence
BitFlip
Bit flip channel: X error with probability p
PhaseFlip
Phase flip channel: Z error with probability p
BitPhaseFlip
Bit-phase flip channel: Y error with probability p
Pauli
Pauli channel: general combination of X, Y, Z errors
ThermalRelaxation
Thermal relaxation (T1 and T2 processes)
Implementations§
Source§impl NoiseModel
impl NoiseModel
Sourcepub fn kraus_operators(&self) -> Vec<Array2<Complex>> ⓘ
pub fn kraus_operators(&self) -> Vec<Array2<Complex>> ⓘ
Get Kraus operators for this noise model
Sourcepub fn apply_to_density_matrix(
&self,
rho: &Array2<Complex>,
) -> QuantRS2Result<Array2<Complex>>
pub fn apply_to_density_matrix( &self, rho: &Array2<Complex>, ) -> QuantRS2Result<Array2<Complex>>
Apply noise model to a density matrix
Trait Implementations§
Source§impl Clone for NoiseModel
impl Clone for NoiseModel
Source§fn clone(&self) -> NoiseModel
fn clone(&self) -> NoiseModel
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for NoiseModel
impl Debug for NoiseModel
Source§impl PartialEq for NoiseModel
impl PartialEq for NoiseModel
impl Copy for NoiseModel
impl StructuralPartialEq for NoiseModel
Auto Trait Implementations§
impl Freeze for NoiseModel
impl RefUnwindSafe for NoiseModel
impl Send for NoiseModel
impl Sync for NoiseModel
impl Unpin for NoiseModel
impl UnwindSafe for NoiseModel
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> 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>
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.