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