#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum WalshBasis {
Natural,
Sequency,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Normalization {
None,
DivideByLength,
OrthonormalF64,
}
#[derive(Debug, Clone, PartialEq)]
pub struct WalshSignal<T> {
pub values: Vec<T>,
pub basis: WalshBasis,
}
impl<T> WalshSignal<T> {
pub fn natural(values: Vec<T>) -> Self {
WalshSignal {
values,
basis: WalshBasis::Natural,
}
}
pub fn len(&self) -> usize {
self.values.len()
}
pub fn is_empty(&self) -> bool {
self.values.is_empty()
}
}