diff options
Diffstat (limited to 'libpsi-core/src/core/circuit.rs')
| -rw-r--r-- | libpsi-core/src/core/circuit.rs | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/libpsi-core/src/core/circuit.rs b/libpsi-core/src/core/circuit.rs index 183c4a2..635066a 100644 --- a/libpsi-core/src/core/circuit.rs +++ b/libpsi-core/src/core/circuit.rs @@ -1,14 +1,14 @@ -use super::{ClassicalRegister, QuantumBit, QuantumGate}; +use super::{ClassicalRegister, QuantumGate, QuantumRegister}; #[derive(Clone)] pub struct QuantumCircuitInstruction { - pub target_indices: Vec<usize>, + pub target_bit: usize, pub control_indices: Vec<usize>, pub gate: QuantumGate, } pub struct QuantumCircuit { - quantum_bits: Vec<QuantumBit>, + quantum_register: QuantumRegister, classical_register: ClassicalRegister, instructions: Vec<QuantumCircuitInstruction>, } @@ -16,22 +16,22 @@ pub struct QuantumCircuit { impl QuantumCircuit { pub fn new(quantum_bit_count: usize, classical_bit_count: usize) -> QuantumCircuit { QuantumCircuit { - quantum_bits: vec![QuantumBit::state_0(); quantum_bit_count], + quantum_register: QuantumRegister::new(quantum_bit_count), classical_register: ClassicalRegister::new(classical_bit_count), instructions: Vec::new(), } } - pub fn apply(&mut self, gate: &QuantumGate, control_bits: &[usize], target_bits: &[usize]) { + pub fn apply(&mut self, gate: &QuantumGate, control_bits: &[usize], target_bit: usize) { self.instructions.push(QuantumCircuitInstruction { gate: gate.clone(), - target_indices: target_bits.to_vec(), + target_bit, control_indices: control_bits.to_vec(), }); } - pub fn get_quantum_bits(&self) -> Vec<QuantumBit> { - self.quantum_bits.clone() + pub fn get_quantum_register(&self) -> QuantumRegister { + self.quantum_register.clone() } pub fn get_classical_registers(&self) -> ClassicalRegister { |
