arnaucube
arnaucube/poulpyPublic Self-hosted repository
poulpy/poulpy-backend/src/implementation/cpu_spqlios/ffi/vec_znx_dft.rs
poulpy-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, n: u64) -> 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}