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