diff options
| author | hachem <im@hachem.wtf> | 2024-09-24 21:44:48 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2024-09-24 21:44:48 +0200 |
| commit | d65b1c55782f6a9d89cd5bc7c7337397dcf4b85c (patch) | |
| tree | a27167d79d18e4a9681dbdc75d5704c4d6fa9fd7 /libpsi-core/src/core | |
| parent | c07ab7911bd50d0060841690a863333a9a3f226d (diff) | |
Prepare for quantum circuit
Diffstat (limited to 'libpsi-core/src/core')
| -rw-r--r-- | libpsi-core/src/core/circuit.rs | 25 | ||||
| -rw-r--r-- | libpsi-core/src/core/component.rs | 2 | ||||
| -rw-r--r-- | libpsi-core/src/core/mod.rs | 3 |
3 files changed, 29 insertions, 1 deletions
diff --git a/libpsi-core/src/core/circuit.rs b/libpsi-core/src/core/circuit.rs new file mode 100644 index 0000000..65e359a --- /dev/null +++ b/libpsi-core/src/core/circuit.rs @@ -0,0 +1,25 @@ +use super::{ClassicalRegister, QuantumBit, QuantumGate}; + +#[allow(dead_code)] +struct QuantumCircuitInstruction { + target_indices: Vec<i32>, + control_indices: Vec<i32>, + gate: QuantumGate, +} + +#[allow(dead_code)] +pub struct QuantumCircuit { + quantum_bits: Vec<QuantumBit>, + classical_register: ClassicalRegister, + instructions: Vec<QuantumCircuitInstruction>, +} + +impl QuantumCircuit { + pub fn new(quantum_bit_count: usize, classical_bit_count: usize) -> QuantumCircuit { + QuantumCircuit { + quantum_bits: Vec::with_capacity(quantum_bit_count), + classical_register: ClassicalRegister::new(classical_bit_count), + instructions: Vec::new(), + } + } +} diff --git a/libpsi-core/src/core/component.rs b/libpsi-core/src/core/component.rs index 41b7cc7..00462e5 100644 --- a/libpsi-core/src/core/component.rs +++ b/libpsi-core/src/core/component.rs @@ -1,5 +1,5 @@ use crate::{complex, ColumnVector, Complex, Matrix, Vector, VectorMatrix}; -use core::{fmt, ops}; +use core::ops; pub type QuantumBit = ColumnVector<Complex<f64>>; pub type QuantumGate = Matrix<Complex<f64>>; diff --git a/libpsi-core/src/core/mod.rs b/libpsi-core/src/core/mod.rs index 374c555..2f42682 100644 --- a/libpsi-core/src/core/mod.rs +++ b/libpsi-core/src/core/mod.rs @@ -1,4 +1,7 @@ +pub mod circuit; pub mod component; pub mod gates; +pub use circuit::*; +pub use component::*; pub use gates::*; |
