SimulatorBackend

Trait SimulatorBackend 

Source
pub trait SimulatorBackend: Send + Sync {
    // Required methods
    fn execute_circuit(
        &self,
        circuit: &DynamicCircuit,
        parameters: &[f64],
        shots: Option<usize>,
    ) -> Result<SimulationResult>;
    fn expectation_value(
        &self,
        circuit: &DynamicCircuit,
        parameters: &[f64],
        observable: &Observable,
    ) -> Result<f64>;
    fn compute_gradients(
        &self,
        circuit: &DynamicCircuit,
        parameters: &[f64],
        observable: &Observable,
        gradient_method: GradientMethod,
    ) -> Result<Array1<f64>>;
    fn capabilities(&self) -> BackendCapabilities;
    fn name(&self) -> &str;
    fn max_qubits(&self) -> usize;
    fn supports_noise(&self) -> bool;
}
Expand description

Unified simulator backend interface

Required Methods§

Source

fn execute_circuit( &self, circuit: &DynamicCircuit, parameters: &[f64], shots: Option<usize>, ) -> Result<SimulationResult>

Execute a quantum circuit

Source

fn expectation_value( &self, circuit: &DynamicCircuit, parameters: &[f64], observable: &Observable, ) -> Result<f64>

Compute expectation value

Source

fn compute_gradients( &self, circuit: &DynamicCircuit, parameters: &[f64], observable: &Observable, gradient_method: GradientMethod, ) -> Result<Array1<f64>>

Compute gradients using backend-specific methods

Source

fn capabilities(&self) -> BackendCapabilities

Get backend capabilities

Source

fn name(&self) -> &str

Get backend name

Source

fn max_qubits(&self) -> usize

Maximum number of qubits supported

Source

fn supports_noise(&self) -> bool

Check if backend supports noise simulation

Implementors§