Struct Symlet
pub struct Symlet { /* private fields */ }Expand description
Symlet wavelet family
Symlets are a family of wavelets that are nearly symmetrical, designed by Ingrid Daubechies as modifications of the Daubechies wavelets with increased symmetry. They have the same number of vanishing moments as Daubechies wavelets but with better symmetry properties.
§Mathematical Foundation
Symlets were designed by Ingrid Daubechies to be as symmetric as possible while maintaining the same orthogonality and compact support properties as standard Daubechies wavelets. They minimize the phase nonlinearity of the transfer function.
§Coefficient Sources
All coefficients are canonical PyWavelets values, ensuring machine-precision accuracy (~2e-16 sum error) and cross-library compatibility.
References:
- PyWavelets - Primary source for canonical coefficients (pywt.Wavelet(‘symN’).dec_lo)
- Daubechies, I. (1992). “Ten Lectures on Wavelets”, CBMS-NSF Regional Conference Series in Applied Mathematics, vol. 61, SIAM, Philadelphia, Chapter 8 (Symmetry for Compactly Supported Wavelet Bases).
- Percival, D.B. and Walden, A.T. (2000). “Wavelet Methods for Time Series Analysis”, Cambridge University Press, Table 114.
§Properties
All coefficients satisfy:
- Σh[n] = √2 (DC gain normalization)
- Σh[n]² = 1 (energy normalization)
- Near-symmetry (improved phase linearity compared to Daubechies)
§Supported Orders
This implementation includes SYM2-SYM10.
Implementations§
Trait Implementations§
§impl Wavelet for Symlet
impl Wavelet for Symlet
§fn vanishing_moments(&self) -> usize
fn vanishing_moments(&self) -> usize
Get the number of vanishing moments
§fn support_width(&self) -> usize
fn support_width(&self) -> usize
Get the support width (filter length)
§fn low_pass_decomposition(&self) -> &[f64]
fn low_pass_decomposition(&self) -> &[f64]
Get the low-pass decomposition filter coefficients
§fn high_pass_decomposition(&self) -> &[f64]
fn high_pass_decomposition(&self) -> &[f64]
Get the high-pass decomposition filter coefficients
§fn low_pass_reconstruction(&self) -> &[f64]
fn low_pass_reconstruction(&self) -> &[f64]
Get the low-pass reconstruction filter coefficients
§fn high_pass_reconstruction(&self) -> &[f64]
fn high_pass_reconstruction(&self) -> &[f64]
Get the high-pass reconstruction filter coefficients
§fn is_orthogonal(&self) -> bool
fn is_orthogonal(&self) -> bool
Check if the wavelet is orthogonal
§fn is_biorthogonal(&self) -> bool
fn is_biorthogonal(&self) -> bool
Check if the wavelet is biorthogonal
Auto Trait Implementations§
impl Freeze for Symlet
impl RefUnwindSafe for Symlet
impl Send for Symlet
impl Sync for Symlet
impl Unpin for Symlet
impl UnwindSafe for Symlet
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)§impl<T> IntoEither for T
impl<T> IntoEither for T
§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.