diff options
| author | hachem <im@hachem.wtf> | 2026-09-07 00:41:20 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2026-09-07 00:41:20 +0200 |
| commit | e75de99a233f446d7ee1d80d5b2af24e9edf822e (patch) | |
| tree | 24e0501eab7c73a156a777a83f52e72a2a96dc7e /include | |
| parent | aaea07b252f3a668d2b321765770f09759365356 (diff) | |
add: structure-aware kernel batch
Diffstat (limited to 'include')
| -rw-r--r-- | include/core/kernel.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/include/core/kernel.h b/include/core/kernel.h index f827731..1bd2d7e 100644 --- a/include/core/kernel.h +++ b/include/core/kernel.h @@ -44,3 +44,40 @@ void psi_free_kernel_batch(struct PsiKernelBatch *batch); void psi_add_kernel(struct PsiKernelBatch *batch, struct PsiKernel kernel); void psi_optimize_kernel_batch(struct PsiKernelBatch *batch); void psi_execute_kernel_batch(struct PsiKernelBatch batch, struct PsiVector *state); + +struct PsiExecutionLayer +{ + struct PsiKernel *kernels; + size_t count; + size_t capacity; +}; + +struct PsiKernelStats +{ + size_t total_kernels; + size_t single_qubit; + size_t two_qubit; + size_t multi_qubit; + size_t diagonal; + size_t execution_layers; +}; + +struct PsiStructureAwareBatch +{ + struct PsiKernel *kernels; + size_t count; + size_t capacity; + struct PsiExecutionLayer *layers; + size_t layer_count; + size_t layer_capacity; + size_t num_qubits; + bool optimised; +}; + +struct PsiStructureAwareBatch psi_new_structure_aware_batch(size_t num_qubits); +void psi_free_structure_aware_batch(struct PsiStructureAwareBatch *batch); +void psi_add_structure_aware_kernel(struct PsiStructureAwareBatch *batch, struct PsiKernel kernel); +void psi_optimize_structure_aware_batch(struct PsiStructureAwareBatch *batch); +void psi_execute_structure_aware_batch(struct PsiStructureAwareBatch batch, struct PsiVector *state); +void psi_execute_structure_aware_batch_layered(struct PsiStructureAwareBatch batch, struct PsiVector *state); +struct PsiKernelStats psi_structure_aware_batch_stats(struct PsiStructureAwareBatch batch); |
