diff options
| author | hachem <im@hachem.wtf> | 2026-09-06 19:12:05 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2026-09-06 19:12:05 +0200 |
| commit | b2a5d3d5a2faac05b1b722d96d11d9b191c7cffc (patch) | |
| tree | ac7712ead7cea6e9b90de62b2520d04d98ce6c42 /include/core | |
| parent | ab08fa6065b5b08627b51203eb92ef65ed7b5ea2 (diff) | |
add: quantum bit and register with gate application
Diffstat (limited to 'include/core')
| -rw-r--r-- | include/core/quantum_components.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/include/core/quantum_components.h b/include/core/quantum_components.h index b0acabc..b238b5a 100644 --- a/include/core/quantum_components.h +++ b/include/core/quantum_components.h @@ -18,3 +18,26 @@ struct PsiQuantumGate 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); + +struct PsiQuantumBit +{ + const char *name; + struct PsiVector state; +}; + +struct PsiQuantumBit psi_new_quantum_bit(const char *name, struct PsiVector state); +void psi_free_quantum_bit(struct PsiQuantumBit *bit); + +struct PsiQuantumRegister +{ + const char *name; + struct PsiVector state_vector; + struct PsiQuantumBit *qubits; + size_t num_qubits; +}; + +struct PsiQuantumRegister psi_new_quantum_register(const char *name, const char **names, size_t count); +struct PsiQuantumRegister psi_new_quantum_register_from(const char *name, const struct PsiQuantumBit *bits, size_t count); +void psi_free_quantum_register(struct PsiQuantumRegister *reg); + +void psi_apply_gate(struct PsiQuantumRegister *reg, struct PsiQuantumGate gate, const size_t *targets, size_t target_count); |
