#pragma once #include #include "maths/matrix.h" #include "maths/vector.h" struct PsiVector psi_new_state_0(void); struct PsiVector psi_new_state_1(void); struct PsiQuantumGate { const char *name; struct PsiMatrix matrix; size_t num_qubits; }; struct PsiQuantumGate psi_new_quantum_gate(const char *name, struct PsiMatrix matrix, size_t num_qubits); struct PsiQuantumGate psi_new_quantum_gate_from_matrix(const char *name, struct PsiMatrix matrix); void psi_free_quantum_gate(struct PsiQuantumGate *gate);