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}