From 68771d87d212bcb6ce2d83926571fd20a4f94fcf Mon Sep 17 00:00:00 2001 From: valadaptive Date: Mon, 20 Jan 2025 08:31:29 -0500 Subject: [PATCH] Move filter assertion closer to where it's used The only unsafe part of filter_signal_in_place_fixed_size_simdx4 now should be making sure the CPU supports it at runtime. --- crates/ntscrs/src/filter.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/crates/ntscrs/src/filter.rs b/crates/ntscrs/src/filter.rs index fb372c0..98509ce 100644 --- a/crates/ntscrs/src/filter.rs +++ b/crates/ntscrs/src/filter.rs @@ -267,6 +267,12 @@ impl TransferFunction { scale: f32, delay: usize, ) { + // Ensure the chunks are actually of equal length + let width = signal[0].len(); + for i in 1..ROWS { + assert_eq!(signal[i].len(), width); + } + let mut z = initial.map(|initial| S::load(&self.initial_condition(initial))); let mut num: [f32; 4] = [0f32; 4]; @@ -407,12 +413,6 @@ impl TransferFunction { ) { let filter_len = usize::max(self.num.len(), self.den.len()); - // Ensure the chunks are actually of equal length - let width = signal[0].len(); - for i in 1..ROWS { - assert_eq!(signal[i].len(), width); - } - match filter_len { // Specialize fixed-size implementations for filter sizes 1-8 1 => self.filter_signal_in_place_fixed_size::<1, ROWS>(signal, initial, scale, delay),