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§
Sourcefn execute_circuit(
&self,
circuit: &DynamicCircuit,
parameters: &[f64],
shots: Option<usize>,
) -> Result<SimulationResult>
fn execute_circuit( &self, circuit: &DynamicCircuit, parameters: &[f64], shots: Option<usize>, ) -> Result<SimulationResult>
Execute a quantum circuit
Sourcefn expectation_value(
&self,
circuit: &DynamicCircuit,
parameters: &[f64],
observable: &Observable,
) -> Result<f64>
fn expectation_value( &self, circuit: &DynamicCircuit, parameters: &[f64], observable: &Observable, ) -> Result<f64>
Compute expectation value
Sourcefn compute_gradients(
&self,
circuit: &DynamicCircuit,
parameters: &[f64],
observable: &Observable,
gradient_method: GradientMethod,
) -> Result<Array1<f64>>
fn compute_gradients( &self, circuit: &DynamicCircuit, parameters: &[f64], observable: &Observable, gradient_method: GradientMethod, ) -> Result<Array1<f64>>
Compute gradients using backend-specific methods
Sourcefn capabilities(&self) -> BackendCapabilities
fn capabilities(&self) -> BackendCapabilities
Get backend capabilities
Sourcefn max_qubits(&self) -> usize
fn max_qubits(&self) -> usize
Maximum number of qubits supported
Sourcefn supports_noise(&self) -> bool
fn supports_noise(&self) -> bool
Check if backend supports noise simulation