panwave
Wavelet.h
1 //-------------------------------------------------------------------------------------------------------
2 // Copyright (C) Taylor Woll and panwave contributors. All rights reserved.
3 // Licensed under the MIT license. See LICENSE.txt file in the project root for
4 // full license information.
5 //-------------------------------------------------------------------------------------------------------
6 
7 #ifndef WAVELET_H
8 #define WAVELET_H
9 
10 #include <cstdint>
11 #include <vector>
12 
13 namespace panwave {
14 
21 class Wavelet {
22  public:
23  enum class WaveletType : uint8_t { Daubechies = 1, Symlet, Coiflet };
24 
30  size_t Length() const;
31 
44  static void GetWaveletCoefficients(Wavelet* wavelet, WaveletType type,
45  size_t vanishing_moment);
46 
54  static size_t GetWaveletMinimumP(WaveletType type);
55 
63  static size_t GetWaveletMaximumP(WaveletType type);
64 
65  std::vector<double> lowpassDecompositionFilter_;
66  std::vector<double> highpassDecompositionFilter_;
67  std::vector<double> lowpassReconstructionFilter_;
68  std::vector<double> highpassReconstructionFilter_;
69 };
70 
71 } // namespace panwave
72 
73 #endif // WAVELET_H
panwave::Wavelet
Definition: Wavelet.h:21
panwave::Wavelet::GetWaveletMaximumP
static size_t GetWaveletMaximumP(WaveletType type)
Definition: Wavelet.cc:374
panwave::Wavelet::Length
size_t Length() const
Definition: Wavelet.cc:419
panwave::Wavelet::GetWaveletMinimumP
static size_t GetWaveletMinimumP(WaveletType type)
Definition: Wavelet.cc:359
panwave::Wavelet::GetWaveletCoefficients
static void GetWaveletCoefficients(Wavelet *wavelet, WaveletType type, size_t vanishing_moment)
Definition: Wavelet.cc:389