arnaucube
arnaucube/poulpyPublic Self-hosted repository
poulpy/poulpy-backend/src/cpu_spqlios/ffi/vec_znx_dft.rs
poulpy-backend/src/cpu_spqlios/ffi/vec_znx_dft.rsRaw
 1use crate::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 vec_dft_add(
12        module: *const MODULE,
13        res: *mut VEC_ZNX_DFT,
14        res_size: u64,
15        a: *const VEC_ZNX_DFT,
16        a_size: u64,
17        b: *const VEC_ZNX_DFT,
18        b_size: u64,
19    );
20}
21unsafe extern "C" {
22    pub unsafe fn vec_dft_sub(
23        module: *const MODULE,
24        res: *mut VEC_ZNX_DFT,
25        res_size: u64,
26        a: *const VEC_ZNX_DFT,
27        a_size: u64,
28        b: *const VEC_ZNX_DFT,
29        b_size: u64,
30    );
31}
32unsafe extern "C" {
33    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);
34}
35unsafe extern "C" {
36    pub unsafe fn vec_znx_idft(
37        module: *const MODULE,
38        res: *mut VEC_ZNX_BIG,
39        res_size: u64,
40        a_dft: *const VEC_ZNX_DFT,
41        a_size: u64,
42        tmp: *mut u8,
43    );
44}
45unsafe extern "C" {
46    pub unsafe fn vec_znx_idft_tmp_bytes(module: *const MODULE, n: u64) -> u64;
47}
48unsafe extern "C" {
49    pub unsafe fn vec_znx_idft_tmp_a(
50        module: *const MODULE,
51        res: *mut VEC_ZNX_BIG,
52        res_size: u64,
53        a_dft: *mut VEC_ZNX_DFT,
54        a_size: u64,
55    );
56}