pub trait DeviceNoiseModel: Send + Sync {
// Required methods
fn device_type(&self) -> DeviceType;
fn apply_single_qubit_noise(
&self,
qubit: usize,
gate_time: f64,
state: &mut Array1<Complex64>,
) -> Result<()>;
fn apply_two_qubit_noise(
&self,
qubit1: usize,
qubit2: usize,
gate_time: f64,
state: &mut Array1<Complex64>,
) -> Result<()>;
fn apply_measurement_noise(
&self,
qubit: usize,
measurement_result: bool,
) -> Result<bool>;
fn apply_idle_noise(
&self,
qubit: usize,
idle_time: f64,
state: &mut Array1<Complex64>,
) -> Result<()>;
fn update_time_dependent_parameters(
&mut self,
current_time: f64,
) -> Result<()>;
}
Expand description
Device-specific noise models
Required Methods§
Sourcefn device_type(&self) -> DeviceType
fn device_type(&self) -> DeviceType
Get the device type
Sourcefn apply_single_qubit_noise(
&self,
qubit: usize,
gate_time: f64,
state: &mut Array1<Complex64>,
) -> Result<()>
fn apply_single_qubit_noise( &self, qubit: usize, gate_time: f64, state: &mut Array1<Complex64>, ) -> Result<()>
Apply single-qubit gate noise
Sourcefn apply_two_qubit_noise(
&self,
qubit1: usize,
qubit2: usize,
gate_time: f64,
state: &mut Array1<Complex64>,
) -> Result<()>
fn apply_two_qubit_noise( &self, qubit1: usize, qubit2: usize, gate_time: f64, state: &mut Array1<Complex64>, ) -> Result<()>
Apply two-qubit gate noise
Sourcefn apply_measurement_noise(
&self,
qubit: usize,
measurement_result: bool,
) -> Result<bool>
fn apply_measurement_noise( &self, qubit: usize, measurement_result: bool, ) -> Result<bool>
Apply measurement noise
Sourcefn apply_idle_noise(
&self,
qubit: usize,
idle_time: f64,
state: &mut Array1<Complex64>,
) -> Result<()>
fn apply_idle_noise( &self, qubit: usize, idle_time: f64, state: &mut Array1<Complex64>, ) -> Result<()>
Apply idle noise (during gates on other qubits)
Sourcefn update_time_dependent_parameters(&mut self, current_time: f64) -> Result<()>
fn update_time_dependent_parameters(&mut self, current_time: f64) -> Result<()>
Update time-dependent parameters