poulpy/spqlios/src/lib.rs
spqlios/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;
17pub use vec_znx_arithmetic::*;
18pub mod vec_znx_big_arithmetic;
19pub use vec_znx_big_arithmetic::*;
20pub mod vec_znx_dft;
21pub use vec_znx_dft::*;
22pub mod scalar_vector_product;
23pub use scalar_vector_product::*;
24
25fn cast_mut_u64_to_mut_u8_slice(data: &mut [u64]) -> &mut [u8] {
26 let ptr: *mut u8 = data.as_mut_ptr() as *mut u8;
27 let len: usize = data.len() * std::mem::size_of::<u64>();
28 unsafe { std::slice::from_raw_parts_mut(ptr, len) }
29}
30
31fn cast_mut_u8_to_mut_i64_slice(data: &mut [u8]) -> &mut [i64] {
32 let ptr: *mut i64 = data.as_mut_ptr() as *mut i64;
33 let len: usize = data.len() / std::mem::size_of::<i64>();
34 unsafe { std::slice::from_raw_parts_mut(ptr, len) }
35}