arnaucube
arnaucube/poulpyPublic Self-hosted repository
poulpy/backend/src/ffi/vec_znx.rs
backend/src/ffi/vec_znx.rsRaw
  1use crate::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_negate(
 33        module: *const MODULE,
 34        res: *mut i64,
 35        res_size: u64,
 36        res_sl: u64,
 37        a: *const i64,
 38        a_size: u64,
 39        a_sl: u64,
 40    );
 41}
 42
 43unsafe extern "C" {
 44    pub unsafe fn vec_znx_rotate(
 45        module: *const MODULE,
 46        p: i64,
 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_sub(
 58        module: *const MODULE,
 59        res: *mut i64,
 60        res_size: u64,
 61        res_sl: u64,
 62        a: *const i64,
 63        a_size: u64,
 64        a_sl: u64,
 65        b: *const i64,
 66        b_size: u64,
 67        b_sl: u64,
 68    );
 69}
 70
 71unsafe extern "C" {
 72    pub unsafe fn vec_znx_zero(module: *const MODULE, res: *mut i64, res_size: u64, res_sl: u64);
 73}
 74unsafe extern "C" {
 75    pub unsafe fn vec_znx_copy(
 76        module: *const MODULE,
 77        res: *mut i64,
 78        res_size: u64,
 79        res_sl: u64,
 80        a: *const i64,
 81        a_size: u64,
 82        a_sl: u64,
 83    );
 84}
 85
 86unsafe extern "C" {
 87    pub unsafe fn vec_znx_normalize_base2k(
 88        module: *const MODULE,
 89        base2k: u64,
 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        tmp_space: *mut u8,
 97    );
 98}
 99unsafe extern "C" {
100    pub unsafe fn vec_znx_normalize_base2k_tmp_bytes(module: *const MODULE) -> u64;
101}