arnaucube
arnaucube/poulpyPublic Self-hosted repository
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}