poulpy/base2k/src/ffi/vec_znx.rs
base2k/src/ffi/vec_znx.rsRaw
1use crate::ffi::module::MODULE;
2
3unsafe extern "C" {
4 pub unsafe fn vec_znx_add(
5 module: *const MODULE,
6 res: *mut i64,
7 res_size: u64,
8 res_sl: u64,
9 a: *const i64,
10 a_size: u64,
11 a_sl: u64,
12 b: *const i64,
13 b_size: u64,
14 b_sl: u64,
15 );
16}
17
18unsafe extern "C" {
19 pub unsafe fn vec_znx_automorphism(
20 module: *const MODULE,
21 p: i64,
22 res: *mut i64,
23 res_size: u64,
24 res_sl: u64,
25 a: *const i64,
26 a_size: u64,
27 a_sl: u64,
28 );
29}
30
31unsafe extern "C" {
32 pub unsafe fn vec_znx_negate(
33 module: *const MODULE,
34 res: *mut i64,
35 res_size: u64,
36 res_sl: u64,
37 a: *const i64,
38 a_size: u64,
39 a_sl: u64,
40 );
41}
42
43unsafe extern "C" {
44 pub unsafe fn vec_znx_rotate(
45 module: *const MODULE,
46 p: i64,
47 res: *mut i64,
48 res_size: u64,
49 res_sl: u64,
50 a: *const i64,
51 a_size: u64,
52 a_sl: u64,
53 );
54}
55
56unsafe extern "C" {
57 pub unsafe fn vec_znx_sub(
58 module: *const MODULE,
59 res: *mut i64,
60 res_size: u64,
61 res_sl: u64,
62 a: *const i64,
63 a_size: u64,
64 a_sl: u64,
65 b: *const i64,
66 b_size: u64,
67 b_sl: u64,
68 );
69}
70
71unsafe extern "C" {
72 pub fn vec_znx_zero(module: *const MODULE, res: *mut i64, res_size: u64, res_sl: u64);
73}
74unsafe extern "C" {
75 pub fn vec_znx_copy(
76 module: *const MODULE,
77 res: *mut i64,
78 res_size: u64,
79 res_sl: u64,
80 a: *const i64,
81 a_size: u64,
82 a_sl: u64,
83 );
84}
85
86unsafe extern "C" {
87 pub fn vec_znx_normalize_base2k(
88 module: *const MODULE,
89 log2_base2k: u64,
90 res: *mut i64,
91 res_size: u64,
92 res_sl: u64,
93 a: *const i64,
94 a_size: u64,
95 a_sl: u64,
96 tmp_space: *mut u8,
97 );
98}
99unsafe extern "C" {
100 pub fn vec_znx_normalize_base2k_tmp_bytes(module: *const MODULE) -> u64;
101}