quantrs2_ml/utils/
types.rs1#[derive(Debug, Clone)]
8pub struct VariationalCircuit {
9 pub num_qubits: usize,
11 pub gates: Vec<(String, Vec<usize>, Vec<String>)>,
13}
14impl VariationalCircuit {
15 pub fn new(num_qubits: usize) -> Self {
17 Self {
18 num_qubits,
19 gates: Vec::new(),
20 }
21 }
22 pub fn add_gate(&mut self, gate_name: &str, qubits: Vec<usize>, params: Vec<String>) {
24 self.gates.push((gate_name.to_string(), qubits, params));
25 }
26 pub fn num_parameters(&self) -> usize {
28 self.gates.iter().map(|(_, _, params)| params.len()).sum()
29 }
30}