diff options
| author | hachem <im@hachem.wtf> | 2025-12-06 20:59:32 +0100 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2025-12-06 20:59:32 +0100 |
| commit | 1fef726728a14cc923c7cbaf80d337b4eb35db3c (patch) | |
| tree | be65614b80e566196beb2ed74d679ac2d51d78c5 /tester | |
| parent | c7f082381606700ed49c1d57f85aa4d38a9380e7 (diff) | |
[fix]: rounding errors and fancy printing
Diffstat (limited to 'tester')
| -rw-r--r-- | tester/src/main.rs | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/tester/src/main.rs b/tester/src/main.rs index 96fc86f..4bab72d 100644 --- a/tester/src/main.rs +++ b/tester/src/main.rs @@ -7,7 +7,7 @@ fn main() { bell.h(0).cnot(0, 1); println!("{}", bell); - print!("\n------\n\n"); + print!("------\n\n"); println!("GHZ State (3-qubit entanglement): |GHZ> = (|000⟩ + |111⟩)/√2"); println!(" Circuit: H(q0) → CNOT(q0, q1) → CNOT(q0, q2)"); @@ -15,7 +15,7 @@ fn main() { ghz.h(0).cnot(0, 1).cnot(0, 2); println!("{}", ghz); - print!("\n------\n\n"); + print!("------\n\n"); println!("SWAP via 3 CNOTs"); println!(" Start with |10>, apply CNOT chain"); @@ -27,7 +27,7 @@ fn main() { .cnot(0, 1); println!("{}", swap_circuit); - print!("\n------\n\n"); + print!("------\n\n"); println!("Toffoli Gate (Reversible AND)"); println!(" CCNOT flips q2 only when q0=1 AND q1=1"); @@ -38,7 +38,7 @@ fn main() { .toffoli(0, 1, 2); println!("{}", toffoli_circuit); - print!("\n------\n\n"); + print!("------\n\n"); println!("Fredkin Gate (Controlled SWAP)"); println!(" CSWAP swaps q1 and q2 only when q0=1"); @@ -49,7 +49,7 @@ fn main() { .fredkin(0, 1, 2); println!("{}", fredkin_circuit); - print!("\n------\n\n"); + print!("------\n\n"); println!("6. Non-contiguous CNOT (q0 controls q2, skipping q1)"); let mut nc_circuit = QuantumCircuit::new(3); @@ -58,28 +58,22 @@ fn main() { .cnot(0, 2); // CNOT with control=q0, target=q2 println!("{}", nc_circuit); - print!("\n------\n\n"); + print!("------\n\n"); println!("Full Superposition (H on all qubits)"); let mut super_circuit = QuantumCircuit::new(3); super_circuit.h(0).h(1).h(2); println!("{}", super_circuit); - print!("\n------\n\n"); + print!("------\n\n"); println!("Probability Test"); let mut prob_circuit = QuantumCircuit::new(2); prob_circuit.h(0).cnot(0, 1); - println!(" Bell state probabilities:"); - let probs = prob_circuit.probabilities(); - for (i, p) in probs.iter().enumerate() { - if *p > 1e-10 { - println!(" |{:02b}⟩: {:.4}", i, p); - } - } + prob_circuit.print_probabilities(); println!(); - print!("\n------\n\n"); + print!("------\n\n"); println!("Complex Circuit with Method Chaining"); let mut complex = QuantumCircuit::new(4); |
