From e75de99a233f446d7ee1d80d5b2af24e9edf822e Mon Sep 17 00:00:00 2001 From: hachem Date: Mon, 7 Sep 2026 00:41:20 +0200 Subject: add: structure-aware kernel batch --- include/core/kernel.h | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'include') 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); -- cgit v1.3