diff options
Diffstat (limited to 'tester/non_clifford.c')
| -rw-r--r-- | tester/non_clifford.c | 58 |
1 files changed, 29 insertions, 29 deletions
diff --git a/tester/non_clifford.c b/tester/non_clifford.c index c361fb5..e82c86d 100644 --- a/tester/non_clifford.c +++ b/tester/non_clifford.c @@ -5,38 +5,38 @@ static const double PI = 3.141592653589793; void run_non_clifford_tests(void) { - psi_test_section("Non-Clifford gates"); + psi_test_section("Non-Clifford gates"); - struct PsiQuantumCircuit t = psi_new_quantum_circuit(1); - psi_apply_x(&t, 0); - psi_apply_t(&t, 0); - struct PsiComplex t_exp[] = { psi_new_complex(0.0, 0.0), psi_new_complex(R2, R2) }; - psi_check_circuit("T|1> = e^{i pi/4}|1>", &t, t_exp, 2); - psi_free_quantum_circuit(&t); + struct PsiQuantumCircuit t = psi_new_quantum_circuit(1); + psi_apply_x(&t, 0); + psi_apply_t(&t, 0); + struct PsiComplex t_exp[] = { psi_new_complex(0.0, 0.0), psi_new_complex(R2, R2) }; + psi_check_circuit("T|1> = e^{i pi/4}|1>", &t, t_exp, 2); + psi_free_quantum_circuit(&t); - struct PsiQuantumCircuit rx = psi_new_quantum_circuit(1); - psi_apply_rx(&rx, 0, PI); - struct PsiComplex rx_exp[] = { psi_new_complex(0.0, 0.0), psi_new_complex(0.0, -1.0) }; - psi_check_circuit("Rx(pi)|0> = -i|1>", &rx, rx_exp, 2); - psi_free_quantum_circuit(&rx); + struct PsiQuantumCircuit rx = psi_new_quantum_circuit(1); + psi_apply_rx(&rx, 0, PI); + struct PsiComplex rx_exp[] = { psi_new_complex(0.0, 0.0), psi_new_complex(0.0, -1.0) }; + psi_check_circuit("Rx(pi)|0> = -i|1>", &rx, rx_exp, 2); + psi_free_quantum_circuit(&rx); - struct PsiQuantumCircuit ry = psi_new_quantum_circuit(1); - psi_apply_ry(&ry, 0, PI); - struct PsiComplex ry_exp[] = { psi_new_complex(0.0, 0.0), psi_new_complex(1.0, 0.0) }; - psi_check_circuit("Ry(pi)|0> = |1>", &ry, ry_exp, 2); - psi_free_quantum_circuit(&ry); + struct PsiQuantumCircuit ry = psi_new_quantum_circuit(1); + psi_apply_ry(&ry, 0, PI); + struct PsiComplex ry_exp[] = { psi_new_complex(0.0, 0.0), psi_new_complex(1.0, 0.0) }; + psi_check_circuit("Ry(pi)|0> = |1>", &ry, ry_exp, 2); + psi_free_quantum_circuit(&ry); - struct PsiQuantumCircuit p = psi_new_quantum_circuit(1); - psi_apply_x(&p, 0); - psi_apply_p(&p, 0, PI / 2.0); - struct PsiComplex p_exp[] = { psi_new_complex(0.0, 0.0), psi_new_complex(0.0, 1.0) }; - psi_check_circuit("P(pi/2)|1> = i|1>", &p, p_exp, 2); - psi_free_quantum_circuit(&p); + struct PsiQuantumCircuit p = psi_new_quantum_circuit(1); + psi_apply_x(&p, 0); + psi_apply_p(&p, 0, PI / 2.0); + struct PsiComplex p_exp[] = { psi_new_complex(0.0, 0.0), psi_new_complex(0.0, 1.0) }; + psi_check_circuit("P(pi/2)|1> = i|1>", &p, p_exp, 2); + psi_free_quantum_circuit(&p); - struct PsiQuantumCircuit sx = psi_new_quantum_circuit(1); - psi_apply_sx(&sx, 0); - psi_apply_sx(&sx, 0); - struct PsiComplex sx_exp[] = { psi_new_complex(0.0, 0.0), psi_new_complex(1.0, 0.0) }; - psi_check_circuit("sqrt(X) applied twice = X", &sx, sx_exp, 2); - psi_free_quantum_circuit(&sx); + struct PsiQuantumCircuit sx = psi_new_quantum_circuit(1); + psi_apply_sx(&sx, 0); + psi_apply_sx(&sx, 0); + struct PsiComplex sx_exp[] = { psi_new_complex(0.0, 0.0), psi_new_complex(1.0, 0.0) }; + psi_check_circuit("sqrt(X) applied twice = X", &sx, sx_exp, 2); + psi_free_quantum_circuit(&sx); } |
