Struct roqoqo::operations::PragmaRandomNoise
source · pub struct PragmaRandomNoise {
qubit: usize,
gate_time: CalculatorFloat,
depolarising_rate: CalculatorFloat,
dephasing_rate: CalculatorFloat,
}
Expand description
The random noise PRAGMA operation.
This PRAGMA Operation applies a stochastically unravelled combination of dephasing and depolarising.
Fields§
§qubit: usize
The qubit the PRAGMA Operation is applied to.
gate_time: CalculatorFloat
The time (in seconds) the gate takes to be applied to the qubit on the (simulated) hardware
depolarising_rate: CalculatorFloat
The error rate of the depolarisation (in 1/second).
dephasing_rate: CalculatorFloat
The error rate of the dephasing (in 1/second).
Implementations§
source§impl PragmaRandomNoise
impl PragmaRandomNoise
sourcepub fn gate_time(&self) -> &CalculatorFloat
pub fn gate_time(&self) -> &CalculatorFloat
Returns the value of the field gate_time
.
sourcepub fn depolarising_rate(&self) -> &CalculatorFloat
pub fn depolarising_rate(&self) -> &CalculatorFloat
Returns the value of the field depolarising_rate
.
sourcepub fn dephasing_rate(&self) -> &CalculatorFloat
pub fn dephasing_rate(&self) -> &CalculatorFloat
Returns the value of the field dephasing_rate
.
sourcepub fn new(
qubit: usize,
gate_time: CalculatorFloat,
depolarising_rate: CalculatorFloat,
dephasing_rate: CalculatorFloat
) -> Self
pub fn new( qubit: usize, gate_time: CalculatorFloat, depolarising_rate: CalculatorFloat, dephasing_rate: CalculatorFloat ) -> Self
Creates a new instance of PragmaRandomNoise
.
Trait Implementations§
source§impl Clone for PragmaRandomNoise
impl Clone for PragmaRandomNoise
source§fn clone(&self) -> PragmaRandomNoise
fn clone(&self) -> PragmaRandomNoise
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for PragmaRandomNoise
impl Debug for PragmaRandomNoise
source§impl<'de> Deserialize<'de> for PragmaRandomNoise
impl<'de> Deserialize<'de> for PragmaRandomNoise
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl From<PragmaRandomNoise> for Operation
impl From<PragmaRandomNoise> for Operation
Implements the From trait from this Operation.
source§fn from(v: PragmaRandomNoise) -> Self
fn from(v: PragmaRandomNoise) -> Self
Performs the conversion.
source§impl From<PragmaRandomNoise> for PragmaNoiseOperation
impl From<PragmaRandomNoise> for PragmaNoiseOperation
Implements the From trait from this Operation.
source§fn from(v: PragmaRandomNoise) -> Self
fn from(v: PragmaRandomNoise) -> Self
Performs the conversion.
source§impl From<PragmaRandomNoise> for PragmaNoiseProbaOperation
impl From<PragmaRandomNoise> for PragmaNoiseProbaOperation
Implements the From trait from this Operation.
source§fn from(v: PragmaRandomNoise) -> Self
fn from(v: PragmaRandomNoise) -> Self
Performs the conversion.
source§impl From<PragmaRandomNoise> for PragmaOperation
impl From<PragmaRandomNoise> for PragmaOperation
Implements the From trait from this Operation.
source§fn from(v: PragmaRandomNoise) -> Self
fn from(v: PragmaRandomNoise) -> Self
Performs the conversion.
source§impl From<PragmaRandomNoise> for SingleQubitOperation
impl From<PragmaRandomNoise> for SingleQubitOperation
Implements the From trait from this Operation.
source§fn from(v: PragmaRandomNoise) -> Self
fn from(v: PragmaRandomNoise) -> Self
Performs the conversion.
source§impl InvolveQubits for PragmaRandomNoise
impl InvolveQubits for PragmaRandomNoise
Implements InvolveQubits trait for the qubits involved in this Operation.
source§fn involved_qubits(&self) -> InvolvedQubits
fn involved_qubits(&self) -> InvolvedQubits
Returns a list of all involved qubits.
source§fn involved_classical(&self) -> InvolvedClassical
fn involved_classical(&self) -> InvolvedClassical
source§impl Operate for PragmaRandomNoise
impl Operate for PragmaRandomNoise
Implements the universal basic trait Operate for this Operation.
source§impl OperatePragmaNoise for PragmaRandomNoise
impl OperatePragmaNoise for PragmaRandomNoise
OperatePragmaNoise trait creating necessary functions for a PRAGMA noise Operation.
source§fn superoperator(&self) -> Result<Array2<f64>, RoqoqoError>
fn superoperator(&self) -> Result<Array2<f64>, RoqoqoError>
Returns the superoperator matrix of the operation. For the RandomNoise pragma, the superoperator is the effective superoperator after averaging over many trajectories: the dephasing superoperator.
source§fn powercf(&self, power: CalculatorFloat) -> Self
fn powercf(&self, power: CalculatorFloat) -> Self
Returns the gate to the power of power
.
source§impl OperatePragmaNoiseProba for PragmaRandomNoise
impl OperatePragmaNoiseProba for PragmaRandomNoise
OperatePragmaNoiseProba trait creating necessary functions for a PRAGMA noise Operation.
source§fn probability(&self) -> CalculatorFloat
fn probability(&self) -> CalculatorFloat
Returns the probability of the noise gate affecting the qubit, based on its gate_time
, depolarising_rate
and dephasing_rate
.
source§impl OperateSingleQubit for PragmaRandomNoise
impl OperateSingleQubit for PragmaRandomNoise
Implements OperateSingleQubit trait for this Operation acting on exactly one qubit.
source§impl PartialEq for PragmaRandomNoise
impl PartialEq for PragmaRandomNoise
source§fn eq(&self, other: &PragmaRandomNoise) -> bool
fn eq(&self, other: &PragmaRandomNoise) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl Serialize for PragmaRandomNoise
impl Serialize for PragmaRandomNoise
source§impl Substitute for PragmaRandomNoise
impl Substitute for PragmaRandomNoise
Implements Substitute trait allowing to replace symbolic parameters and to perform qubit mappings.
source§fn substitute_parameters(
&self,
calculator: &Calculator
) -> Result<Self, RoqoqoError>
fn substitute_parameters( &self, calculator: &Calculator ) -> Result<Self, RoqoqoError>
Substitutes symbolic parameters in clone of the operation.
source§fn remap_qubits(
&self,
mapping: &HashMap<usize, usize>
) -> Result<Self, RoqoqoError>
fn remap_qubits( &self, mapping: &HashMap<usize, usize> ) -> Result<Self, RoqoqoError>
Remaps the qubits in clone of the operation.
source§impl SupportedVersion for PragmaRandomNoise
impl SupportedVersion for PragmaRandomNoise
source§impl TryFrom<Operation> for PragmaRandomNoise
impl TryFrom<Operation> for PragmaRandomNoise
Implements the core::convert::TryFrom trait into this Operation.
source§impl TryFrom<PragmaNoiseOperation> for PragmaRandomNoise
impl TryFrom<PragmaNoiseOperation> for PragmaRandomNoise
Implements the core::convert::TryFrom trait into this Operation.
source§impl TryFrom<PragmaNoiseProbaOperation> for PragmaRandomNoise
impl TryFrom<PragmaNoiseProbaOperation> for PragmaRandomNoise
Implements the core::convert::TryFrom trait into this Operation.
source§impl TryFrom<PragmaOperation> for PragmaRandomNoise
impl TryFrom<PragmaOperation> for PragmaRandomNoise
Implements the core::convert::TryFrom trait into this Operation.
source§impl TryFrom<SingleQubitOperation> for PragmaRandomNoise
impl TryFrom<SingleQubitOperation> for PragmaRandomNoise
Implements the core::convert::TryFrom trait into this Operation.
impl OperatePragma for PragmaRandomNoise
impl StructuralPartialEq for PragmaRandomNoise
Auto Trait Implementations§
impl Freeze for PragmaRandomNoise
impl RefUnwindSafe for PragmaRandomNoise
impl Send for PragmaRandomNoise
impl Sync for PragmaRandomNoise
impl Unpin for PragmaRandomNoise
impl UnwindSafe for PragmaRandomNoise
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
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>
self
from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
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
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.