poulpy/backend/src/implementation/cpu_spqlios/ffi/vec_znx.rs
backend/src/implementation/cpu_spqlios/ffi/vec_znx.rsRaw
1use crate::implementation::cpu_spqlios::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_mul_xp_minus_one(
33 module: *const MODULE,
34 p: i64,
35 res: *mut i64,
36 res_size: u64,
37 res_sl: u64,
38 a: *const i64,
39 a_size: u64,
40 a_sl: u64,
41 );
42}
43
44unsafe extern "C" {
45 pub unsafe fn vec_znx_negate(
46 module: *const MODULE,
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_rotate(
58 module: *const MODULE,
59 p: i64,
60 res: *mut i64,
61 res_size: u64,
62 res_sl: u64,
63 a: *const i64,
64 a_size: u64,
65 a_sl: u64,
66 );
67}
68
69unsafe extern "C" {
70 pub unsafe fn vec_znx_sub(
71 module: *const MODULE,
72 res: *mut i64,
73 res_size: u64,
74 res_sl: u64,
75 a: *const i64,
76 a_size: u64,
77 a_sl: u64,
78 b: *const i64,
79 b_size: u64,
80 b_sl: u64,
81 );
82}
83
84unsafe extern "C" {
85 pub unsafe fn vec_znx_zero(module: *const MODULE, res: *mut i64, res_size: u64, res_sl: u64);
86}
87unsafe extern "C" {
88 pub unsafe fn vec_znx_copy(
89 module: *const MODULE,
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 );
97}
98
99unsafe extern "C" {
100 pub unsafe fn vec_znx_normalize_base2k(
101 module: *const MODULE,
102 n: u64,
103 base2k: u64,
104 res: *mut i64,
105 res_size: u64,
106 res_sl: u64,
107 a: *const i64,
108 a_size: u64,
109 a_sl: u64,
110 tmp_space: *mut u8,
111 );
112}
113unsafe extern "C" {
114 pub unsafe fn vec_znx_normalize_base2k_tmp_bytes(module: *const MODULE, n: u64) -> u64;
115}