poulpy/base2k/src/ffi/vec_znx_dft.rs
base2k/src/ffi/vec_znx_dft.rsRaw
1use crate::ffi::module::MODULE;
2use crate::ffi::vec_znx_big::VEC_ZNX_BIG;
3
4#[repr(C)]
5#[derive(Debug, Copy, Clone)]
6pub struct vec_znx_dft_t {
7 _unused: [u8; 0],
8}
9pub type VEC_ZNX_DFT = vec_znx_dft_t;
10
11unsafe extern "C" {
12 pub unsafe fn bytes_of_vec_znx_dft(module: *const MODULE, size: u64) -> u64;
13}
14unsafe extern "C" {
15 pub unsafe fn new_vec_znx_dft(module: *const MODULE, size: u64) -> *mut VEC_ZNX_DFT;
16}
17unsafe extern "C" {
18 pub unsafe fn delete_vec_znx_dft(res: *mut VEC_ZNX_DFT);
19}
20
21unsafe extern "C" {
22 pub unsafe fn vec_dft_zero(module: *const MODULE, res: *mut VEC_ZNX_DFT, res_size: u64);
23}
24unsafe extern "C" {
25 pub unsafe fn vec_dft_add(
26 module: *const MODULE,
27 res: *mut VEC_ZNX_DFT,
28 res_size: u64,
29 a: *const VEC_ZNX_DFT,
30 a_size: u64,
31 b: *const VEC_ZNX_DFT,
32 b_size: u64,
33 );
34}
35unsafe extern "C" {
36 pub unsafe fn vec_dft_sub(
37 module: *const MODULE,
38 res: *mut VEC_ZNX_DFT,
39 res_size: u64,
40 a: *const VEC_ZNX_DFT,
41 a_size: u64,
42 b: *const VEC_ZNX_DFT,
43 b_size: u64,
44 );
45}
46unsafe extern "C" {
47 pub unsafe fn vec_znx_dft(
48 module: *const MODULE,
49 res: *mut VEC_ZNX_DFT,
50 res_size: u64,
51 a: *const i64,
52 a_size: u64,
53 a_sl: u64,
54 );
55}
56unsafe extern "C" {
57 pub unsafe fn vec_znx_idft(
58 module: *const MODULE,
59 res: *mut VEC_ZNX_BIG,
60 res_size: u64,
61 a_dft: *const VEC_ZNX_DFT,
62 a_size: u64,
63 tmp: *mut u8,
64 );
65}
66unsafe extern "C" {
67 pub unsafe fn vec_znx_idft_tmp_bytes(module: *const MODULE) -> u64;
68}
69unsafe extern "C" {
70 pub unsafe fn vec_znx_idft_tmp_a(
71 module: *const MODULE,
72 res: *mut VEC_ZNX_BIG,
73 res_size: u64,
74 a_dft: *mut VEC_ZNX_DFT,
75 a_size: u64,
76 );
77}