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