aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2026-09-06 19:30:28 +0200
committerhachem <im@hachem.wtf>2026-09-06 19:30:28 +0200
commit597c959053fe8861538513663d3ca04ff8f5356b (patch)
treeb0ac8f7fb5648237eb3be0a099dd76a757cb102b /include
parentb2a5d3d5a2faac05b1b722d96d11d9b191c7cffc (diff)
add: standard gate library
Diffstat (limited to 'include')
-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);