poulpy/poulpy-backend/src/cpu_spqlios/ffi/vec_znx.rs
poulpy-backend/src/cpu_spqlios/ffi/vec_znx.rsRaw
1use crate::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
56#[allow(dead_code)]
57unsafe extern "C" {
58 pub unsafe fn vec_znx_rotate(
59 module: *const MODULE,
60 p: i64,
61 res: *mut i64,
62 res_size: u64,
63 res_sl: u64,
64 a: *const i64,
65 a_size: u64,
66 a_sl: u64,
67 );
68}
69
70unsafe extern "C" {
71 pub unsafe fn vec_znx_sub(
72 module: *const MODULE,
73 res: *mut i64,
74 res_size: u64,
75 res_sl: u64,
76 a: *const i64,
77 a_size: u64,
78 a_sl: u64,
79 b: *const i64,
80 b_size: u64,
81 b_sl: u64,
82 );
83}
84
85#[allow(dead_code)]
86unsafe extern "C" {
87 pub unsafe fn vec_znx_zero(module: *const MODULE, res: *mut i64, res_size: u64, res_sl: u64);
88}
89
90#[allow(dead_code)]
91unsafe extern "C" {
92 pub unsafe fn vec_znx_copy(
93 module: *const MODULE,
94 res: *mut i64,
95 res_size: u64,
96 res_sl: u64,
97 a: *const i64,
98 a_size: u64,
99 a_sl: u64,
100 );
101}
102
103unsafe extern "C" {
104 pub unsafe fn vec_znx_normalize_base2k(
105 module: *const MODULE,
106 n: u64,
107 base2k: u64,
108 res: *mut i64,
109 res_size: u64,
110 res_sl: u64,
111 a: *const i64,
112 a_size: u64,
113 a_sl: u64,
114 tmp_space: *mut u8,
115 );
116}
117unsafe extern "C" {
118 pub unsafe fn vec_znx_normalize_base2k_tmp_bytes(module: *const MODULE, n: u64) -> u64;
119}