oxirs_stream/quantum_processing/
variational_processor.rs

1//! Variational quantum algorithms processor
2
3use super::QuantumConfig;
4
5/// Variational processor for VQAs
6pub struct VariationalProcessor {
7    config: QuantumConfig,
8    ansatz_types: Vec<VariationalAnsatz>,
9}
10
11impl VariationalProcessor {
12    pub fn new(config: QuantumConfig) -> Self {
13        Self {
14            config,
15            ansatz_types: vec![
16                VariationalAnsatz::HardwareEfficient,
17                VariationalAnsatz::UCCSD,
18            ],
19        }
20    }
21}
22
23/// Variational ansatz types
24#[derive(Debug, Clone)]
25pub enum VariationalAnsatz {
26    HardwareEfficient,
27    UCCSD,
28    RealAmplitudes,
29    EfficientSU2,
30    Custom,
31}