arnaucube
arnaucube/poulpyPublic Self-hosted repository
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}