LibSWIFFT  1.2.0
swifft_object.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2021 Yaron Gvili and Gvili Tech Ltd.
3  *
4  * See the accompanying LICENSE.txt file for licensing information.
5  */
13 #ifndef __LIBSWIFFT_SWIFFT_OBJECT_H__
14 #define __LIBSWIFFT_SWIFFT_OBJECT_H__
15 
17 #include "libswifft/swifft_ver.h"
18 
20 
21 #undef LIBSWIFFT_API
22 #define LIBSWIFFT_API(name) (*name)
23 
24 typedef struct {
27 
28 typedef struct {
31 
32 typedef struct {
35 
36 typedef struct {
41 
42 #undef LIBSWIFFT_API
43 
44 #undef SWIFFT_ISET
46 
47 #if defined(__AVX__)
48  #include "libswifft/swifft_avx.h"
49  #undef SWIFFT_ISET
50  #define SWIFFT_ISET() AVX
52 #else
53  #pragma message "LibSWIFFT API for AVX is disabled"
54 #endif
55 
56 #if defined(__AVX2__)
57  #include "libswifft/swifft_avx2.h"
58  #undef SWIFFT_ISET
59  #define SWIFFT_ISET() AVX2
61 #else
62  #pragma message "LibSWIFFT API for AVX2 is disabled"
63 #endif
64 
65 #if defined(__AVX512F__)
66  #include "libswifft/swifft_avx512.h"
67  #undef SWIFFT_ISET
68  #define SWIFFT_ISET() AVX512
70 #else
71  #pragma message "LibSWIFFT API for AVX512 is disabled"
72 #endif
73 
75 
76 #endif /* __LIBSWIFFT_SWIFFT_OBJECT_H__ */
LibSWIFFT internal C arithmetic API.
Definition: swifft_object.h:32
LibSWIFFT object public C API expansion for instruction-sets.
swifft_hash_object_t hash
Definition: swifft_object.h:39
LibSWIFFT public C API for AVX512.
LibSWIFFT internal C FFT API.
#define LIBSWIFFT_END_EXTERN_C
Definition: common.h:26
LibSWIFFT public C API for AVX.
Definition: swifft_object.h:28
#define LIBSWIFFT_BEGIN_EXTERN_C
Definition: common.h:25
LibSWIFFT internal C hash API.
LibSWIFFT public C API.
Definition: swifft_object.h:36
LibSWIFFT public C definitions.
swifft_fft_object_t fft
Definition: swifft_object.h:37
swifft_arith_object_t arith
Definition: swifft_object.h:38
LibSWIFFT public C API for AVX2.
Definition: swifft_object.h:24