arnaucube
arnaucube/poulpyPublic Self-hosted repository
poulpy/poulpy-backend/src/implementation/cpu_spqlios/ffi/znx.rs
poulpy-backend/src/implementation/cpu_spqlios/ffi/znx.rsRaw
 1use crate::implementation::cpu_spqlios::ffi::module::MODULE;
 2
 3unsafe extern "C" {
 4    pub unsafe fn znx_add_i64_ref(nn: u64, res: *mut i64, a: *const i64, b: *const i64);
 5}
 6unsafe extern "C" {
 7    pub unsafe fn znx_add_i64_avx(nn: u64, res: *mut i64, a: *const i64, b: *const i64);
 8}
 9unsafe extern "C" {
10    pub unsafe fn znx_sub_i64_ref(nn: u64, res: *mut i64, a: *const i64, b: *const i64);
11}
12unsafe extern "C" {
13    pub unsafe fn znx_sub_i64_avx(nn: u64, res: *mut i64, a: *const i64, b: *const i64);
14}
15unsafe extern "C" {
16    pub unsafe fn znx_negate_i64_ref(nn: u64, res: *mut i64, a: *const i64);
17}
18unsafe extern "C" {
19    pub unsafe fn znx_negate_i64_avx(nn: u64, res: *mut i64, a: *const i64);
20}
21unsafe extern "C" {
22    pub unsafe fn znx_copy_i64_ref(nn: u64, res: *mut i64, a: *const i64);
23}
24unsafe extern "C" {
25    pub unsafe fn znx_zero_i64_ref(nn: u64, res: *mut i64);
26}
27unsafe extern "C" {
28    pub unsafe fn rnx_divide_by_m_ref(nn: u64, m: f64, res: *mut f64, a: *const f64);
29}
30unsafe extern "C" {
31    pub unsafe fn rnx_divide_by_m_avx(nn: u64, m: f64, res: *mut f64, a: *const f64);
32}
33unsafe extern "C" {
34    pub unsafe fn rnx_rotate_f64(nn: u64, p: i64, res: *mut f64, in_: *const f64);
35}
36unsafe extern "C" {
37    pub unsafe fn znx_rotate_i64(nn: u64, p: i64, res: *mut i64, in_: *const i64);
38}
39unsafe extern "C" {
40    pub unsafe fn rnx_rotate_inplace_f64(nn: u64, p: i64, res: *mut f64);
41}
42unsafe extern "C" {
43    pub unsafe fn znx_rotate_inplace_i64(nn: u64, p: i64, res: *mut i64);
44}
45unsafe extern "C" {
46    pub unsafe fn rnx_automorphism_f64(nn: u64, p: i64, res: *mut f64, in_: *const f64);
47}
48unsafe extern "C" {
49    pub unsafe fn znx_automorphism_i64(nn: u64, p: i64, res: *mut i64, in_: *const i64);
50}
51unsafe extern "C" {
52    pub unsafe fn rnx_automorphism_inplace_f64(nn: u64, p: i64, res: *mut f64);
53}
54unsafe extern "C" {
55    pub unsafe fn znx_automorphism_inplace_i64(nn: u64, p: i64, res: *mut i64);
56}
57unsafe extern "C" {
58    pub unsafe fn rnx_mul_xp_minus_one_f64(nn: u64, p: i64, res: *mut f64, in_: *const f64);
59}
60unsafe extern "C" {
61    pub unsafe fn znx_mul_xp_minus_one_i64(nn: u64, p: i64, res: *mut i64, in_: *const i64);
62}
63unsafe extern "C" {
64    pub unsafe fn rnx_mul_xp_minus_one_inplace_f64(nn: u64, p: i64, res: *mut f64);
65}
66unsafe extern "C" {
67    pub unsafe fn znx_mul_xp_minus_one_inplace_i64(nn: u64, p: i64, res: *mut i64);
68}
69unsafe extern "C" {
70    pub unsafe fn znx_normalize(nn: u64, base_k: u64, out: *mut i64, carry_out: *mut i64, in_: *const i64, carry_in: *const i64);
71}
72
73unsafe extern "C" {
74    pub unsafe fn znx_small_single_product(module: *const MODULE, res: *mut i64, a: *const i64, b: *const i64, tmp: *mut u8);
75}
76
77unsafe extern "C" {
78    pub unsafe fn znx_small_single_product_tmp_bytes(module: *const MODULE) -> u64;
79}