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