use std::sync::Arc;
mod frequencies;
pub use frequencies::*;
mod simd;
pub use simd::*;
pub fn prepapre_cache_vec<T: Copy>(vec: &mut Vec<T>, len: usize, default: T) {
if vec.len() < len {
vec.reserve(len - vec.len());
}
unsafe {
vec.set_len(len);
}
vec.fill(default);
}
pub fn db_to_amp(db: f32) -> f32 {
10f32.powf(db / 20.0)
}
pub fn are_arc_vecs_equal<T: ?Sized>(old: &[Arc<T>], new: &[Arc<T>]) -> bool {
if old.len() != new.len() {
return false;
}
for (old_item, new_item) in old.iter().zip(new.iter()) {
if !Arc::ptr_eq(old_item, new_item) {
return false;
}
}
true
}