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 ffi;
9
10pub mod module;
11#[allow(unused_imports)]
12pub use module::*;
13
14pub mod scalar;
15#[allow(unused_imports)]
16pub use scalar::*;
17
18pub mod vec_znx;
19#[allow(unused_imports)]
20pub use vec_znx::*;
21
22pub mod vec_znx_arithmetic;
23#[allow(unused_imports)]
24pub use vec_znx_arithmetic::*;
25
26pub mod vec_znx_big_arithmetic;
27#[allow(unused_imports)]
28pub use vec_znx_big_arithmetic::*;
29
30pub mod vec_znx_dft;
31#[allow(unused_imports)]
32pub use vec_znx_dft::*;
33
34pub mod scalar_vector_product;
35#[allow(unused_imports)]
36pub use scalar_vector_product::*;
37
38pub mod vector_matrix_product;
39#[allow(unused_imports)]
40pub use vector_matrix_product::*;
41
42pub const GALOISGENERATOR: u64 = 5;
43
44#[allow(dead_code)]
45pub fn cast_mut_u64_to_mut_u8_slice(data: &mut [u64]) -> &mut [u8] {
46 let ptr: *mut u8 = data.as_mut_ptr() as *mut u8;
47 let len: usize = data.len() * std::mem::size_of::<u64>();
48 unsafe { std::slice::from_raw_parts_mut(ptr, len) }
49}
50
51pub fn cast_mut_u8_to_mut_i64_slice(data: &mut [u8]) -> &mut [i64] {
52 let ptr: *mut i64 = data.as_mut_ptr() as *mut i64;
53 let len: usize = data.len() / std::mem::size_of::<i64>();
54 unsafe { std::slice::from_raw_parts_mut(ptr, len) }
55}
56
57pub fn cast_mut_u8_to_mut_f64_slice(data: &mut [u8]) -> &mut [f64] {
58 let ptr: *mut f64 = data.as_mut_ptr() as *mut f64;
59 let len: usize = data.len() / std::mem::size_of::<f64>();
60 unsafe { std::slice::from_raw_parts_mut(ptr, len) }
61}
62
63pub fn cast_u8_to_f64_slice(data: &mut [u8]) -> &[f64] {
64 let ptr: *const f64 = data.as_mut_ptr() as *const f64;
65 let len: usize = data.len() / std::mem::size_of::<f64>();
66 unsafe { std::slice::from_raw_parts(ptr, len) }
67}