diff options
| author | hachem <im@hachem.wtf> | 2026-09-14 12:20:52 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2026-09-14 12:20:52 +0200 |
| commit | ee14ad272e68d9363202d7f668e0b20302827209 (patch) | |
| tree | 88dd1012ad7f9d6ac7abeb7562dac2194794b823 /include/maths/simd.h | |
| parent | ae07aab1442a45bbddb79e066f15eaf252a4254a (diff) | |
feat: simd + testing + formatting
Diffstat (limited to 'include/maths/simd.h')
| -rw-r--r-- | include/maths/simd.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/include/maths/simd.h b/include/maths/simd.h new file mode 100644 index 0000000..38d0171 --- /dev/null +++ b/include/maths/simd.h @@ -0,0 +1,22 @@ +#pragma once + +#include <stddef.h> + +#include "maths/complex.h" + +enum PsiSimdCapability +{ + PSI_SIMD_NONE, + PSI_SIMD_AVX2, + PSI_SIMD_AVX512, + PSI_SIMD_NEON, +}; + +enum PsiSimdCapability psi_detect_simd(void); +const char* psi_simd_name(enum PsiSimdCapability cap); + +void psi_apply_single_qubit_gate_simd(struct PsiComplex* state, const struct PsiComplex gate[2][2], + size_t target, size_t num_qubits); +void psi_apply_single_qubit_gate_simd_parallel(struct PsiComplex* state, + const struct PsiComplex gate[2][2], size_t target, + size_t num_qubits); |
