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 mod vector_matrix_product;
41#[allow(unused_imports)]
42pub use vector_matrix_product::*;
43
44pub const GALOISGENERATOR: u64 = 5;
45
46#[allow(dead_code)]
47pub fn cast_mut_u64_to_mut_u8_slice(data: &mut [u64]) -> &mut [u8] {
48 let ptr: *mut u8 = data.as_mut_ptr() as *mut u8;
49 let len: usize = data.len() * std::mem::size_of::<u64>();
50 unsafe { std::slice::from_raw_parts_mut(ptr, len) }
51}
52
53pub fn cast_mut_u8_to_mut_i64_slice(data: &mut [u8]) -> &mut [i64] {
54 let ptr: *mut i64 = data.as_mut_ptr() as *mut i64;
55 let len: usize = data.len() / std::mem::size_of::<i64>();
56 unsafe { std::slice::from_raw_parts_mut(ptr, len) }
57}