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 vec_znx;
15#[allow(unused_imports)]
16pub use vec_znx::*;
17
18pub mod vec_znx_big;
19#[allow(unused_imports)]
20pub use vec_znx_big::*;
21
22pub mod vec_znx_dft;
23#[allow(unused_imports)]
24pub use vec_znx_dft::*;
25
26pub mod svp;
27#[allow(unused_imports)]
28pub use svp::*;
29
30pub mod vmp;
31#[allow(unused_imports)]
32pub use vmp::*;
33
34pub mod sampling;
35#[allow(unused_imports)]
36pub use sampling::*;
37
38pub mod encoding;
39#[allow(unused_imports)]
40pub use encoding::*;
41
42pub mod infos;
43#[allow(unused_imports)]
44pub use infos::*;
45
46pub mod free;
47#[allow(unused_imports)]
48pub use free::*;
49
50pub const GALOISGENERATOR: u64 = 5;
51
52#[allow(dead_code)]
53pub fn cast_mut_u64_to_mut_u8_slice(data: &mut [u64]) -> &mut [u8] {
54 let ptr: *mut u8 = data.as_mut_ptr() as *mut u8;
55 let len: usize = data.len() * std::mem::size_of::<u64>();
56 unsafe { std::slice::from_raw_parts_mut(ptr, len) }
57}
58
59pub fn cast_mut_u8_to_mut_i64_slice(data: &mut [u8]) -> &mut [i64] {
60 let ptr: *mut i64 = data.as_mut_ptr() as *mut i64;
61 let len: usize = data.len() / std::mem::size_of::<i64>();
62 unsafe { std::slice::from_raw_parts_mut(ptr, len) }
63}
64
65pub fn cast_mut_u8_to_mut_f64_slice(data: &mut [u8]) -> &mut [f64] {
66 let ptr: *mut f64 = data.as_mut_ptr() as *mut f64;
67 let len: usize = data.len() / std::mem::size_of::<f64>();
68 unsafe { std::slice::from_raw_parts_mut(ptr, len) }
69}
70
71pub fn cast_u8_to_f64_slice(data: &mut [u8]) -> &[f64] {
72 let ptr: *const f64 = data.as_mut_ptr() as *const f64;
73 let len: usize = data.len() / std::mem::size_of::<f64>();
74 unsafe { std::slice::from_raw_parts(ptr, len) }
75}