arnaucube
arnaucube/poulpyPublic Self-hosted repository
poulpy/base2k/src/lib.rs
base2k/src/lib.rsRaw
 1#[allow(
 2    non_camel_case_types,
 3    non_snake_case,
 4    non_upper_case_globals,
 5    dead_code,
 6    improper_ctypes
 7)]
 8pub mod bindings {
 9    include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
10}
11
12pub mod module;
13#[allow(unused_imports)]
14pub use module::*;
15
16pub mod scalar;
17#[allow(unused_imports)]
18pub use scalar::*;
19
20pub mod vec_znx;
21#[allow(unused_imports)]
22pub use vec_znx::*;
23
24pub mod vec_znx_arithmetic;
25#[allow(unused_imports)]
26pub use vec_znx_arithmetic::*;
27
28pub mod vec_znx_big_arithmetic;
29#[allow(unused_imports)]
30pub use vec_znx_big_arithmetic::*;
31
32pub mod vec_znx_dft;
33#[allow(unused_imports)]
34pub use vec_znx_dft::*;
35
36pub mod scalar_vector_product;
37#[allow(unused_imports)]
38pub use scalar_vector_product::*;
39
40pub const GALOISGENERATOR: u64 = 5;
41
42#[allow(dead_code)]
43fn cast_mut_u64_to_mut_u8_slice(data: &mut [u64]) -> &mut [u8] {
44    let ptr: *mut u8 = data.as_mut_ptr() as *mut u8;
45    let len: usize = data.len() * std::mem::size_of::<u64>();
46    unsafe { std::slice::from_raw_parts_mut(ptr, len) }
47}
48
49fn cast_mut_u8_to_mut_i64_slice(data: &mut [u8]) -> &mut [i64] {
50    let ptr: *mut i64 = data.as_mut_ptr() as *mut i64;
51    let len: usize = data.len() / std::mem::size_of::<i64>();
52    unsafe { std::slice::from_raw_parts_mut(ptr, len) }
53}