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, 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}