arnaucube
arnaucube/poulpyPublic Self-hosted repository
poulpy/poulpy-backend/src/cpu_spqlios/ffi/vec_znx.rs
poulpy-backend/src/cpu_spqlios/ffi/vec_znx.rsRaw
  1use crate::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
 56#[allow(dead_code)]
 57unsafe extern "C" {
 58    pub unsafe fn vec_znx_rotate(
 59        module: *const MODULE,
 60        p: i64,
 61        res: *mut i64,
 62        res_size: u64,
 63        res_sl: u64,
 64        a: *const i64,
 65        a_size: u64,
 66        a_sl: u64,
 67    );
 68}
 69
 70unsafe extern "C" {
 71    pub unsafe fn vec_znx_sub(
 72        module: *const MODULE,
 73        res: *mut i64,
 74        res_size: u64,
 75        res_sl: u64,
 76        a: *const i64,
 77        a_size: u64,
 78        a_sl: u64,
 79        b: *const i64,
 80        b_size: u64,
 81        b_sl: u64,
 82    );
 83}
 84
 85#[allow(dead_code)]
 86unsafe extern "C" {
 87    pub unsafe fn vec_znx_zero(module: *const MODULE, res: *mut i64, res_size: u64, res_sl: u64);
 88}
 89
 90#[allow(dead_code)]
 91unsafe extern "C" {
 92    pub unsafe fn vec_znx_copy(
 93        module: *const MODULE,
 94        res: *mut i64,
 95        res_size: u64,
 96        res_sl: u64,
 97        a: *const i64,
 98        a_size: u64,
 99        a_sl: u64,
100    );
101}
102
103unsafe extern "C" {
104    pub unsafe fn vec_znx_normalize_base2k(
105        module: *const MODULE,
106        n: u64,
107        base2k: u64,
108        res: *mut i64,
109        res_size: u64,
110        res_sl: u64,
111        a: *const i64,
112        a_size: u64,
113        a_sl: u64,
114        tmp_space: *mut u8,
115    );
116}
117unsafe extern "C" {
118    pub unsafe fn vec_znx_normalize_base2k_tmp_bytes(module: *const MODULE, n: u64) -> u64;
119}