arnaucube
arnaucube/poulpyPublic Self-hosted repository
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 fn vec_dft_zero(module: *const MODULE, res: *mut VEC_ZNX_DFT, res_size: u64);
23}
24unsafe extern "C" {
25    pub 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 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 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 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 fn vec_znx_idft_tmp_bytes(module: *const MODULE) -> u64;
68}
69unsafe extern "C" {
70    pub 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}