diff options
| author | hachem <im@hachem.wtf> | 2024-09-28 23:58:13 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2024-09-28 23:58:13 +0200 |
| commit | 2770097e25e7fb5090efe0f85340f0c638f9dd71 (patch) | |
| tree | 591323ea709e14c0b6d8e5d0c396d51b59db5659 /libpsi-tester/src/main.rs | |
| parent | ce0a2aa7fe9fe3a6b638c39078c8b77ac912b860 (diff) | |
Prep for first CLI visualizer
Diffstat (limited to 'libpsi-tester/src/main.rs')
| -rw-r--r-- | libpsi-tester/src/main.rs | 37 |
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); } |
