aboutsummaryrefslogtreecommitdiff
path: root/libpsi-core/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'libpsi-core/src/core')
-rw-r--r--libpsi-core/src/core/circuit.rs25
-rw-r--r--libpsi-core/src/core/component.rs2
-rw-r--r--libpsi-core/src/core/mod.rs3
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::*;