arnaucube
arnaucube/poulpyPublic Self-hosted repository
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}