1use std::sync::Arc;
2
3mod frequencies;
4pub use frequencies::*;
5
6mod simd;
7pub use simd::*;
8
9pub fn prepapre_cache_vec<T: Copy>(vec: &mut Vec<T>, len: usize, default: T) {
11 if vec.len() < len {
12 vec.reserve(len - vec.len());
13 }
14 unsafe {
15 vec.set_len(len);
16 }
17 vec.fill(default);
18}
19
20pub fn db_to_amp(db: f32) -> f32 {
22 10f32.powf(db / 20.0)
23}
24
25pub fn are_arc_vecs_equal<T: ?Sized>(old: &[Arc<T>], new: &[Arc<T>]) -> bool {
27 if old.len() != new.len() {
29 return false;
30 }
31
32 for (old_item, new_item) in old.iter().zip(new.iter()) {
34 if !Arc::ptr_eq(old_item, new_item) {
35 return false;
36 }
37 }
38
39 true
40}