blob: 38d0171c413191d0753c3582304b27ea1b3f9dd3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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);
|