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