use itertools::Itertools;
use serde::{Deserialize, Serialize};
use super::*;
#[derive(Clone, Copy, Debug, Serialize, Deserialize)]
pub struct DummyFilter;
impl FilterMethods for DummyFilter {
#[inline]
fn filter(&mut self, input: &[Flt], output: &mut [Flt]) {
output.copy_from_slice(input);
}
fn reset(&mut self) {}
fn filter_iter<'a>(
&mut self,
input: impl Iterator<Item = &'a Flt>,
output: impl Iterator<Item = &'a mut Flt>,
) {
for (i, o) in input.zip(output) {
*o = *i;
}
}
}
impl<'a, T: AsArray<'a, Flt>> TransferFunction<'a, T> for DummyFilter {
fn tf(&self, _fs: StrictlyPositive, freq: T) -> Ccol {
let freq = freq.into();
Ccol::ones(freq.len())
}
}