aboutsummaryrefslogtreecommitdiff
path: root/libpsi-tester/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'libpsi-tester/src/main.rs')
-rw-r--r--libpsi-tester/src/main.rs37
1 files changed, 7 insertions, 30 deletions
diff --git a/libpsi-tester/src/main.rs b/libpsi-tester/src/main.rs
index 180df98..7941935 100644
--- a/libpsi-tester/src/main.rs
+++ b/libpsi-tester/src/main.rs
@@ -1,37 +1,14 @@
use libpsi_core::*;
-
-fn count_qubit_states(measurements: &[Vec<i32>], num_qubits: usize) -> Vec<i32> {
- let mut counts = vec![0; num_qubits * 2];
- for measurement in measurements {
- for (i, &state) in measurement.iter().enumerate() {
- if state == 0 {
- counts[i] += 1;
- } else {
- counts[num_qubits + i] += 1;
- }
- }
- }
- counts
-}
+use libpsi_visualizer::*;
fn main() {
- let mut circuit = QuantumCircuit::new(1, 1);
+ let mut circuit = QuantumCircuit::new(2, 2);
circuit.apply(&gates::HADAMARD, &[], &[0]);
+ circuit.apply(&gates::CNOT, &[0], &[1]);
- let runtime = BasicRT::new(circuit);
- let execution_count = 1024;
- let executions = runtime.execute(execution_count);
-
- let mut measurements = Vec::new();
- for execution in executions {
- let bits = execution.classical_states.get_bits();
- measurements.push(bits.clone());
- }
+ let visualizer = HorizontalCLIVisualizer::new(&circuit);
+ visualizer.render();
- let counts = count_qubit_states(&measurements, 1);
- println!(
- "{:.2} * |0> + {:.2} * |1>",
- (counts[0] as f32) / execution_count as f32,
- (counts[1] as f32) / execution_count as f32
- );
+ let runtime = BasicRT::new(&circuit);
+ runtime.execute(1024);
}