aboutsummaryrefslogtreecommitdiff
path: root/tester
diff options
context:
space:
mode:
Diffstat (limited to 'tester')
-rw-r--r--tester/main.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/tester/main.c b/tester/main.c
index 334291f..cba5d28 100644
--- a/tester/main.c
+++ b/tester/main.c
@@ -1,5 +1,6 @@
#include <stdio.h>
+#include "core/quantum_components.h"
#include "maths/complex.h"
#include "maths/matrix.h"
#include "maths/vector.h"
@@ -60,5 +61,21 @@ int main(void)
psi_free_matrix(&m);
psi_free_matrix(&mm);
+ double inv_sqrt2 = 0.7071067811865475;
+ struct PsiMatrix h = psi_matrix(2, 2,
+ psi_new_complex(inv_sqrt2, 0.0), psi_new_complex(inv_sqrt2, 0.0),
+ psi_new_complex(inv_sqrt2, 0.0), psi_new_complex(-inv_sqrt2, 0.0));
+ struct PsiQuantumGate gate = psi_new_quantum_gate_from_matrix("H", h);
+
+ struct PsiVector s0 = psi_new_state_0();
+ struct PsiVector hs0 = psi_mul_vector_matrix(s0, gate.matrix);
+
+ printf("gate = %s (%zu qubit)\n", gate.name, gate.num_qubits);
+ printf("H|0> = [%g, %g]\n", hs0.data[0].real, hs0.data[1].real);
+
+ psi_free_vector(&s0);
+ psi_free_vector(&hs0);
+ psi_free_quantum_gate(&gate);
+
return 0;
}