arnaucube
arnaucube/poulpyPublic Self-hosted repository
poulpy/backend/src/implementation/cpu_spqlios/ffi/vec_znx.rs
backend/src/implementation/cpu_spqlios/ffi/vec_znx.rsRaw
  1use crate::implementation::cpu_spqlios::ffi::module::MODULE;
  2
  3unsafe extern "C" {
  4    pub unsafe fn vec_znx_add(
  5        module: *const MODULE,
  6        res: *mut i64,
  7        res_size: u64,
  8        res_sl: u64,
  9        a: *const i64,
 10        a_size: u64,
 11        a_sl: u64,
 12        b: *const i64,
 13        b_size: u64,
 14        b_sl: u64,
 15    );
 16}
 17
 18unsafe extern "C" {
 19    pub unsafe fn vec_znx_automorphism(
 20        module: *const MODULE,
 21        p: i64,
 22        res: *mut i64,
 23        res_size: u64,
 24        res_sl: u64,
 25        a: *const i64,
 26        a_size: u64,
 27        a_sl: u64,
 28    );
 29}
 30
 31unsafe extern "C" {
 32    pub unsafe fn vec_znx_mul_xp_minus_one(
 33        module: *const MODULE,
 34        p: i64,
 35        res: *mut i64,
 36        res_size: u64,
 37        res_sl: u64,
 38        a: *const i64,
 39        a_size: u64,
 40        a_sl: u64,
 41    );
 42}
 43
 44unsafe extern "C" {
 45    pub unsafe fn vec_znx_negate(
 46        module: *const MODULE,
 47        res: *mut i64,
 48        res_size: u64,
 49        res_sl: u64,
 50        a: *const i64,
 51        a_size: u64,
 52        a_sl: u64,
 53    );
 54}
 55
 56unsafe extern "C" {
 57    pub unsafe fn vec_znx_rotate(
 58        module: *const MODULE,
 59        p: i64,
 60        res: *mut i64,
 61        res_size: u64,
 62        res_sl: u64,
 63        a: *const i64,
 64        a_size: u64,
 65        a_sl: u64,
 66    );
 67}
 68
 69unsafe extern "C" {
 70    pub unsafe fn vec_znx_sub(
 71        module: *const MODULE,
 72        res: *mut i64,
 73        res_size: u64,
 74        res_sl: u64,
 75        a: *const i64,
 76        a_size: u64,
 77        a_sl: u64,
 78        b: *const i64,
 79        b_size: u64,
 80        b_sl: u64,
 81    );
 82}
 83
 84unsafe extern "C" {
 85    pub unsafe fn vec_znx_zero(module: *const MODULE, res: *mut i64, res_size: u64, res_sl: u64);
 86}
 87unsafe extern "C" {
 88    pub unsafe fn vec_znx_copy(
 89        module: *const MODULE,
 90        res: *mut i64,
 91        res_size: u64,
 92        res_sl: u64,
 93        a: *const i64,
 94        a_size: u64,
 95        a_sl: u64,
 96    );
 97}
 98
 99unsafe extern "C" {
100    pub unsafe fn vec_znx_normalize_base2k(
101        module: *const MODULE,
102        n: u64,
103        base2k: u64,
104        res: *mut i64,
105        res_size: u64,
106        res_sl: u64,
107        a: *const i64,
108        a_size: u64,
109        a_sl: u64,
110        tmp_space: *mut u8,
111    );
112}
113unsafe extern "C" {
114    pub unsafe fn vec_znx_normalize_base2k_tmp_bytes(module: *const MODULE, n: u64) -> u64;
115}