poulpy/poulpy-backend/src/cpu_spqlios/ffi/svp.rs
poulpy-backend/src/cpu_spqlios/ffi/svp.rsRaw
1use crate::cpu_spqlios::ffi::{module::MODULE, vec_znx_dft::VEC_ZNX_DFT};
2
3#[repr(C)]
4#[derive(Debug, Copy, Clone)]
5pub struct svp_ppol_t {
6 _unused: [u8; 0],
7}
8pub type SVP_PPOL = svp_ppol_t;
9
10unsafe extern "C" {
11 pub unsafe fn svp_prepare(module: *const MODULE, ppol: *mut SVP_PPOL, pol: *const i64);
12}
13
14#[allow(dead_code)]
15unsafe extern "C" {
16 pub unsafe fn svp_apply_dft(
17 module: *const MODULE,
18 res: *const VEC_ZNX_DFT,
19 res_size: u64,
20 ppol: *const SVP_PPOL,
21 a: *const i64,
22 a_size: u64,
23 a_sl: u64,
24 );
25}
26
27unsafe extern "C" {
28 pub unsafe fn svp_apply_dft_to_dft(
29 module: *const MODULE,
30 res: *const VEC_ZNX_DFT,
31 res_size: u64,
32 res_cols: u64,
33 ppol: *const SVP_PPOL,
34 a: *const VEC_ZNX_DFT,
35 a_size: u64,
36 a_cols: u64,
37 );
38}