DeviceNoiseModel

Trait DeviceNoiseModel 

Source
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§

Source

fn device_type(&self) -> DeviceType

Get the device type

Source

fn apply_single_qubit_noise( &self, qubit: usize, gate_time: f64, state: &mut Array1<Complex64>, ) -> Result<()>

Apply single-qubit gate noise

Source

fn apply_two_qubit_noise( &self, qubit1: usize, qubit2: usize, gate_time: f64, state: &mut Array1<Complex64>, ) -> Result<()>

Apply two-qubit gate noise

Source

fn apply_measurement_noise( &self, qubit: usize, measurement_result: bool, ) -> Result<bool>

Apply measurement noise

Source

fn apply_idle_noise( &self, qubit: usize, idle_time: f64, state: &mut Array1<Complex64>, ) -> Result<()>

Apply idle noise (during gates on other qubits)

Source

fn update_time_dependent_parameters(&mut self, current_time: f64) -> Result<()>

Update time-dependent parameters

Implementors§