bixverse_core/utils/
mod.rs1pub mod gemm;
6pub mod heap_structures;
7pub mod macros;
8pub mod matrix_utils;
9pub mod simd;
10pub mod traits;
11pub mod vec_utils;
12
13use faer::Par;
14use rustc_hash::{FxBuildHasher, FxHashSet};
15use std::num::NonZeroUsize;
16use std::sync::OnceLock;
17
18pub fn string_vec_to_set(x: &[String]) -> FxHashSet<&String> {
32 let mut set = FxHashSet::with_capacity_and_hasher(x.len(), FxBuildHasher);
33 for s in x {
34 set.insert(s);
35 }
36 set
37}
38
39#[inline]
41pub fn faer_parallelism() -> Par {
42 static N_THREADS: OnceLock<NonZeroUsize> = OnceLock::new();
43 Par::Rayon(*N_THREADS.get_or_init(|| std::thread::available_parallelism().unwrap()))
44}