poulpy/poulpy-backend/src/implementation/cpu_spqlios/ffi/vec_znx_big.rs
poulpy-backend/src/implementation/cpu_spqlios/ffi/vec_znx_big.rsRaw
1use crate::implementation::cpu_spqlios::ffi::module::MODULE;
2
3#[repr(C)]
4#[derive(Debug, Copy, Clone)]
5pub struct vec_znx_big_t {
6 _unused: [u8; 0],
7}
8pub type VEC_ZNX_BIG = vec_znx_big_t;
9
10unsafe extern "C" {
11 pub unsafe fn bytes_of_vec_znx_big(module: *const MODULE, size: u64) -> u64;
12}
13unsafe extern "C" {
14 pub unsafe fn new_vec_znx_big(module: *const MODULE, size: u64) -> *mut VEC_ZNX_BIG;
15}
16unsafe extern "C" {
17 pub unsafe fn delete_vec_znx_big(res: *mut VEC_ZNX_BIG);
18}
19
20unsafe extern "C" {
21 pub unsafe fn vec_znx_big_add(
22 module: *const MODULE,
23 res: *mut VEC_ZNX_BIG,
24 res_size: u64,
25 a: *const VEC_ZNX_BIG,
26 a_size: u64,
27 b: *const VEC_ZNX_BIG,
28 b_size: u64,
29 );
30}
31unsafe extern "C" {
32 pub unsafe fn vec_znx_big_add_small(
33 module: *const MODULE,
34 res: *mut VEC_ZNX_BIG,
35 res_size: u64,
36 a: *const VEC_ZNX_BIG,
37 a_size: u64,
38 b: *const i64,
39 b_size: u64,
40 b_sl: u64,
41 );
42}
43unsafe extern "C" {
44 pub unsafe fn vec_znx_big_add_small2(
45 module: *const MODULE,
46 res: *mut VEC_ZNX_BIG,
47 res_size: u64,
48 a: *const i64,
49 a_size: u64,
50 a_sl: u64,
51 b: *const i64,
52 b_size: u64,
53 b_sl: u64,
54 );
55}
56unsafe extern "C" {
57 pub unsafe fn vec_znx_big_sub(
58 module: *const MODULE,
59 res: *mut VEC_ZNX_BIG,
60 res_size: u64,
61 a: *const VEC_ZNX_BIG,
62 a_size: u64,
63 b: *const VEC_ZNX_BIG,
64 b_size: u64,
65 );
66}
67unsafe extern "C" {
68 pub unsafe fn vec_znx_big_sub_small_b(
69 module: *const MODULE,
70 res: *mut VEC_ZNX_BIG,
71 res_size: u64,
72 a: *const VEC_ZNX_BIG,
73 a_size: u64,
74 b: *const i64,
75 b_size: u64,
76 b_sl: u64,
77 );
78}
79unsafe extern "C" {
80 pub unsafe fn vec_znx_big_sub_small_a(
81 module: *const MODULE,
82 res: *mut VEC_ZNX_BIG,
83 res_size: u64,
84 a: *const i64,
85 a_size: u64,
86 a_sl: u64,
87 b: *const VEC_ZNX_BIG,
88 b_size: u64,
89 );
90}
91unsafe extern "C" {
92 pub unsafe fn vec_znx_big_sub_small2(
93 module: *const MODULE,
94 res: *mut VEC_ZNX_BIG,
95 res_size: u64,
96 a: *const i64,
97 a_size: u64,
98 a_sl: u64,
99 b: *const i64,
100 b_size: u64,
101 b_sl: u64,
102 );
103}
104
105unsafe extern "C" {
106 pub unsafe fn vec_znx_big_normalize_base2k_tmp_bytes(module: *const MODULE, n: u64) -> u64;
107}
108
109unsafe extern "C" {
110 pub unsafe fn vec_znx_big_normalize_base2k(
111 module: *const MODULE,
112 n: u64,
113 log2_base2k: u64,
114 res: *mut i64,
115 res_size: u64,
116 res_sl: u64,
117 a: *const VEC_ZNX_BIG,
118 a_size: u64,
119 tmp_space: *mut u8,
120 );
121}
122
123unsafe extern "C" {
124 pub unsafe fn vec_znx_big_range_normalize_base2k(
125 module: *const MODULE,
126 n: u64,
127 log2_base2k: u64,
128 res: *mut i64,
129 res_size: u64,
130 res_sl: u64,
131 a: *const VEC_ZNX_BIG,
132 a_range_begin: u64,
133 a_range_xend: u64,
134 a_range_step: u64,
135 tmp_space: *mut u8,
136 );
137}
138
139unsafe extern "C" {
140 pub unsafe fn vec_znx_big_range_normalize_base2k_tmp_bytes(module: *const MODULE, n: u64) -> u64;
141}
142
143unsafe extern "C" {
144 pub unsafe fn vec_znx_big_automorphism(
145 module: *const MODULE,
146 p: i64,
147 res: *mut VEC_ZNX_BIG,
148 res_size: u64,
149 a: *const VEC_ZNX_BIG,
150 a_size: u64,
151 );
152}
153
154unsafe extern "C" {
155 pub unsafe fn vec_znx_big_rotate(
156 module: *const MODULE,
157 p: i64,
158 res: *mut VEC_ZNX_BIG,
159 res_size: u64,
160 a: *const VEC_ZNX_BIG,
161 a_size: u64,
162 );
163}