poulpy/base2k/src/ffi/reim.rs
base2k/src/ffi/reim.rsRaw
1#[repr(C)]
2#[derive(Debug, Copy, Clone)]
3pub struct reim_fft_precomp {
4 _unused: [u8; 0],
5}
6pub type REIM_FFT_PRECOMP = reim_fft_precomp;
7#[repr(C)]
8#[derive(Debug, Copy, Clone)]
9pub struct reim_ifft_precomp {
10 _unused: [u8; 0],
11}
12pub type REIM_IFFT_PRECOMP = reim_ifft_precomp;
13#[repr(C)]
14#[derive(Debug, Copy, Clone)]
15pub struct reim_mul_precomp {
16 _unused: [u8; 0],
17}
18pub type REIM_FFTVEC_MUL_PRECOMP = reim_mul_precomp;
19#[repr(C)]
20#[derive(Debug, Copy, Clone)]
21pub struct reim_addmul_precomp {
22 _unused: [u8; 0],
23}
24pub type REIM_FFTVEC_ADDMUL_PRECOMP = reim_addmul_precomp;
25#[repr(C)]
26#[derive(Debug, Copy, Clone)]
27pub struct reim_from_znx32_precomp {
28 _unused: [u8; 0],
29}
30pub type REIM_FROM_ZNX32_PRECOMP = reim_from_znx32_precomp;
31#[repr(C)]
32#[derive(Debug, Copy, Clone)]
33pub struct reim_from_znx64_precomp {
34 _unused: [u8; 0],
35}
36pub type REIM_FROM_ZNX64_PRECOMP = reim_from_znx64_precomp;
37#[repr(C)]
38#[derive(Debug, Copy, Clone)]
39pub struct reim_from_tnx32_precomp {
40 _unused: [u8; 0],
41}
42pub type REIM_FROM_TNX32_PRECOMP = reim_from_tnx32_precomp;
43#[repr(C)]
44#[derive(Debug, Copy, Clone)]
45pub struct reim_to_tnx32_precomp {
46 _unused: [u8; 0],
47}
48pub type REIM_TO_TNX32_PRECOMP = reim_to_tnx32_precomp;
49#[repr(C)]
50#[derive(Debug, Copy, Clone)]
51pub struct reim_to_tnx_precomp {
52 _unused: [u8; 0],
53}
54pub type REIM_TO_TNX_PRECOMP = reim_to_tnx_precomp;
55#[repr(C)]
56#[derive(Debug, Copy, Clone)]
57pub struct reim_to_znx64_precomp {
58 _unused: [u8; 0],
59}
60pub type REIM_TO_ZNX64_PRECOMP = reim_to_znx64_precomp;
61unsafe extern "C" {
62 pub unsafe fn new_reim_fft_precomp(m: u32, num_buffers: u32) -> *mut REIM_FFT_PRECOMP;
63}
64unsafe extern "C" {
65 pub unsafe fn reim_fft_precomp_get_buffer(
66 tables: *const REIM_FFT_PRECOMP,
67 buffer_index: u32,
68 ) -> *mut f64;
69}
70unsafe extern "C" {
71 pub unsafe fn new_reim_fft_buffer(m: u32) -> *mut f64;
72}
73unsafe extern "C" {
74 pub unsafe fn delete_reim_fft_buffer(buffer: *mut f64);
75}
76unsafe extern "C" {
77 pub unsafe fn reim_fft(tables: *const REIM_FFT_PRECOMP, data: *mut f64);
78}
79unsafe extern "C" {
80 pub unsafe fn new_reim_ifft_precomp(m: u32, num_buffers: u32) -> *mut REIM_IFFT_PRECOMP;
81}
82unsafe extern "C" {
83 pub unsafe fn reim_ifft_precomp_get_buffer(
84 tables: *const REIM_IFFT_PRECOMP,
85 buffer_index: u32,
86 ) -> *mut f64;
87}
88unsafe extern "C" {
89 pub unsafe fn reim_ifft(tables: *const REIM_IFFT_PRECOMP, data: *mut f64);
90}
91unsafe extern "C" {
92 pub unsafe fn new_reim_fftvec_mul_precomp(m: u32) -> *mut REIM_FFTVEC_MUL_PRECOMP;
93}
94unsafe extern "C" {
95 pub unsafe fn reim_fftvec_mul(
96 tables: *const REIM_FFTVEC_MUL_PRECOMP,
97 r: *mut f64,
98 a: *const f64,
99 b: *const f64,
100 );
101}
102unsafe extern "C" {
103 pub unsafe fn new_reim_fftvec_addmul_precomp(m: u32) -> *mut REIM_FFTVEC_ADDMUL_PRECOMP;
104}
105unsafe extern "C" {
106 pub unsafe fn reim_fftvec_addmul(
107 tables: *const REIM_FFTVEC_ADDMUL_PRECOMP,
108 r: *mut f64,
109 a: *const f64,
110 b: *const f64,
111 );
112}
113unsafe extern "C" {
114 pub unsafe fn new_reim_from_znx32_precomp(
115 m: u32,
116 log2bound: u32,
117 ) -> *mut REIM_FROM_ZNX32_PRECOMP;
118}
119unsafe extern "C" {
120 pub unsafe fn reim_from_znx32(
121 tables: *const REIM_FROM_ZNX32_PRECOMP,
122 r: *mut ::std::os::raw::c_void,
123 a: *const i32,
124 );
125}
126unsafe extern "C" {
127 pub unsafe fn reim_from_znx64(
128 tables: *const REIM_FROM_ZNX64_PRECOMP,
129 r: *mut ::std::os::raw::c_void,
130 a: *const i64,
131 );
132}
133unsafe extern "C" {
134 pub unsafe fn new_reim_from_znx64_precomp(m: u32, maxbnd: u32) -> *mut REIM_FROM_ZNX64_PRECOMP;
135}
136unsafe extern "C" {
137 pub unsafe fn reim_from_znx64_simple(
138 m: u32,
139 log2bound: u32,
140 r: *mut ::std::os::raw::c_void,
141 a: *const i64,
142 );
143}
144unsafe extern "C" {
145 pub unsafe fn new_reim_from_tnx32_precomp(m: u32) -> *mut REIM_FROM_TNX32_PRECOMP;
146}
147unsafe extern "C" {
148 pub unsafe fn reim_from_tnx32(
149 tables: *const REIM_FROM_TNX32_PRECOMP,
150 r: *mut ::std::os::raw::c_void,
151 a: *const i32,
152 );
153}
154unsafe extern "C" {
155 pub unsafe fn new_reim_to_tnx32_precomp(
156 m: u32,
157 divisor: f64,
158 log2overhead: u32,
159 ) -> *mut REIM_TO_TNX32_PRECOMP;
160}
161unsafe extern "C" {
162 pub unsafe fn reim_to_tnx32(
163 tables: *const REIM_TO_TNX32_PRECOMP,
164 r: *mut i32,
165 a: *const ::std::os::raw::c_void,
166 );
167}
168unsafe extern "C" {
169 pub unsafe fn new_reim_to_tnx_precomp(
170 m: u32,
171 divisor: f64,
172 log2overhead: u32,
173 ) -> *mut REIM_TO_TNX_PRECOMP;
174}
175unsafe extern "C" {
176 pub unsafe fn reim_to_tnx(tables: *const REIM_TO_TNX_PRECOMP, r: *mut f64, a: *const f64);
177}
178unsafe extern "C" {
179 pub unsafe fn reim_to_tnx_simple(
180 m: u32,
181 divisor: f64,
182 log2overhead: u32,
183 r: *mut f64,
184 a: *const f64,
185 );
186}
187unsafe extern "C" {
188 pub unsafe fn new_reim_to_znx64_precomp(
189 m: u32,
190 divisor: f64,
191 log2bound: u32,
192 ) -> *mut REIM_TO_ZNX64_PRECOMP;
193}
194unsafe extern "C" {
195 pub unsafe fn reim_to_znx64(
196 precomp: *const REIM_TO_ZNX64_PRECOMP,
197 r: *mut i64,
198 a: *const ::std::os::raw::c_void,
199 );
200}
201unsafe extern "C" {
202 pub unsafe fn reim_to_znx64_simple(
203 m: u32,
204 divisor: f64,
205 log2bound: u32,
206 r: *mut i64,
207 a: *const ::std::os::raw::c_void,
208 );
209}
210unsafe extern "C" {
211 pub unsafe fn reim_fft_simple(m: u32, data: *mut ::std::os::raw::c_void);
212}
213unsafe extern "C" {
214 pub unsafe fn reim_ifft_simple(m: u32, data: *mut ::std::os::raw::c_void);
215}
216unsafe extern "C" {
217 pub unsafe fn reim_fftvec_mul_simple(
218 m: u32,
219 r: *mut ::std::os::raw::c_void,
220 a: *const ::std::os::raw::c_void,
221 b: *const ::std::os::raw::c_void,
222 );
223}
224unsafe extern "C" {
225 pub unsafe fn reim_fftvec_addmul_simple(
226 m: u32,
227 r: *mut ::std::os::raw::c_void,
228 a: *const ::std::os::raw::c_void,
229 b: *const ::std::os::raw::c_void,
230 );
231}
232unsafe extern "C" {
233 pub unsafe fn reim_from_znx32_simple(
234 m: u32,
235 log2bound: u32,
236 r: *mut ::std::os::raw::c_void,
237 x: *const i32,
238 );
239}
240unsafe extern "C" {
241 pub unsafe fn reim_from_tnx32_simple(m: u32, r: *mut ::std::os::raw::c_void, x: *const i32);
242}
243unsafe extern "C" {
244 pub unsafe fn reim_to_tnx32_simple(
245 m: u32,
246 divisor: f64,
247 log2overhead: u32,
248 r: *mut i32,
249 x: *const ::std::os::raw::c_void,
250 );
251}