aboutsummaryrefslogtreecommitdiff
path: root/include/core/gates.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/core/gates.h')
-rw-r--r--include/core/gates.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/include/core/gates.h b/include/core/gates.h
new file mode 100644
index 0000000..9ce521f
--- /dev/null
+++ b/include/core/gates.h
@@ -0,0 +1,35 @@
+#pragma once
+
+#include "core/quantum_components.h"
+#include "maths/matrix.h"
+
+struct PsiMatrix psi_rx_matrix(double theta);
+struct PsiMatrix psi_ry_matrix(double theta);
+struct PsiMatrix psi_rz_matrix(double theta);
+struct PsiMatrix psi_p_matrix(double theta);
+struct PsiMatrix psi_u1_matrix(double lambda);
+struct PsiMatrix psi_u2_matrix(double phi, double lambda);
+struct PsiMatrix psi_u3_matrix(double theta, double phi, double lambda);
+struct PsiMatrix psi_crx_matrix(double theta);
+struct PsiMatrix psi_cry_matrix(double theta);
+struct PsiMatrix psi_crz_matrix(double theta);
+struct PsiMatrix psi_cp_matrix(double theta);
+
+struct PsiQuantumGate psi_hadamard_gate(void);
+struct PsiQuantumGate psi_pauli_x_gate(void);
+struct PsiQuantumGate psi_pauli_y_gate(void);
+struct PsiQuantumGate psi_pauli_z_gate(void);
+struct PsiQuantumGate psi_s_gate(void);
+struct PsiQuantumGate psi_t_gate(void);
+struct PsiQuantumGate psi_sdg_gate(void);
+struct PsiQuantumGate psi_tdg_gate(void);
+struct PsiQuantumGate psi_sx_gate(void);
+struct PsiQuantumGate psi_sxdg_gate(void);
+struct PsiQuantumGate psi_identity_gate(void);
+struct PsiQuantumGate psi_cnot_gate(void);
+struct PsiQuantumGate psi_cz_gate(void);
+struct PsiQuantumGate psi_swap_gate(void);
+struct PsiQuantumGate psi_iswap_gate(void);
+struct PsiQuantumGate psi_sqrt_swap_gate(void);
+struct PsiQuantumGate psi_toffoli_gate(void);
+struct PsiQuantumGate psi_fredkin_gate(void);