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, n: u64) -> u64;
97}
98
99unsafe extern "C" {
100 pub unsafe fn vec_znx_big_normalize_base2k(
101 module: *const MODULE,
102 n: u64,
103 log2_base2k: u64,
104 res: *mut i64,
105 res_size: u64,
106 res_sl: u64,
107 a: *const VEC_ZNX_BIG,
108 a_size: u64,
109 tmp_space: *mut u8,
110 );
111}
112
113unsafe extern "C" {
114 pub unsafe fn vec_znx_big_range_normalize_base2k(
115 module: *const MODULE,
116 n: u64,
117 log2_base2k: u64,
118 res: *mut i64,
119 res_size: u64,
120 res_sl: u64,
121 a: *const VEC_ZNX_BIG,
122 a_range_begin: u64,
123 a_range_xend: u64,
124 a_range_step: u64,
125 tmp_space: *mut u8,
126 );
127}
128
129unsafe extern "C" {
130 pub unsafe fn vec_znx_big_range_normalize_base2k_tmp_bytes(module: *const MODULE, n: u64) -> u64;
131}
132
133unsafe extern "C" {
134 pub unsafe fn vec_znx_big_automorphism(
135 module: *const MODULE,
136 p: i64,
137 res: *mut VEC_ZNX_BIG,
138 res_size: u64,
139 a: *const VEC_ZNX_BIG,
140 a_size: u64,
141 );
142}
143
144unsafe extern "C" {
145 pub unsafe fn vec_znx_big_rotate(
146 module: *const MODULE,
147 p: i64,
148 res: *mut VEC_ZNX_BIG,
149 res_size: u64,
150 a: *const VEC_ZNX_BIG,
151 a_size: u64,
152 );
153}