poulpy/backend/src/implementation/cpu_spqlios/ffi/znx.rs
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}