arnaucube
arnaucube/poulpyPublic Self-hosted repository
poulpy/backend/src/ffi/vec_znx_dft.rs
backend/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(module: *const MODULE, res: *mut VEC_ZNX_DFT, res_size: u64, a: *const i64, a_size: u64, a_sl: u64);
48}
49unsafe extern "C" {
50    pub unsafe fn vec_znx_idft(
51        module: *const MODULE,
52        res: *mut VEC_ZNX_BIG,
53        res_size: u64,
54        a_dft: *const VEC_ZNX_DFT,
55        a_size: u64,
56        tmp: *mut u8,
57    );
58}
59unsafe extern "C" {
60    pub unsafe fn vec_znx_idft_tmp_bytes(module: *const MODULE) -> u64;
61}
62unsafe extern "C" {
63    pub unsafe fn vec_znx_idft_tmp_a(
64        module: *const MODULE,
65        res: *mut VEC_ZNX_BIG,
66        res_size: u64,
67        a_dft: *mut VEC_ZNX_DFT,
68        a_size: u64,
69    );
70}
71
72unsafe extern "C" {
73    pub unsafe fn vec_znx_dft_automorphism(
74        module: *const MODULE,
75        d: i64,
76        res_dft: *mut VEC_ZNX_DFT,
77        res_size: u64,
78        a_dft: *const VEC_ZNX_DFT,
79        a_size: u64,
80        tmp: *mut u8,
81    );
82}
83
84unsafe extern "C" {
85    pub unsafe fn vec_znx_dft_automorphism_tmp_bytes(module: *const MODULE) -> u64;
86}