#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);