panwave
WaveletPacketTree.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 WAVELETPACKETTREE_H
8 #define WAVELETPACKETTREE_H
9 
10 #include "WaveletMath.h"
11 #include "WaveletPacketTreeTemplateBase.h"
12 
13 namespace panwave {
14 
15 class Wavelet;
16 
26  public:
43  WaveletPacketTree(size_t height, const Wavelet* wavelet,
44  DyadicMode dyadic_mode = DyadicMode::Odd,
45  PaddingMode padding_mode = PaddingMode::Zeroes);
46  ~WaveletPacketTree() override = default;
47 
48  void Decompose() override;
49  void Reconstruct(size_t level) override;
50 
51  protected:
52  void IsolateLevel(size_t level);
53 
54  void DecomposeNode(size_t node);
55  void ReconstructNode(size_t node);
56 
57  private:
58  DyadicMode dyadic_mode_;
59  PaddingMode padding_mode_;
60 };
61 
62 } // namespace panwave
63 
64 #endif // WAVELETPACKETTREE_H
panwave::Wavelet
Definition: Wavelet.h:21
panwave::WaveletPacketTree::Reconstruct
void Reconstruct(size_t level) override
Definition: WaveletPacketTree.cc:32
panwave::WaveletPacketTree
Definition: WaveletPacketTree.h:25
panwave::WaveletPacketTreeTemplateBase
Definition: WaveletPacketTreeTemplateBase.h:22
panwave::WaveletPacketTree::Decompose
void Decompose() override
Definition: WaveletPacketTree.cc:30
panwave::WaveletPacketTree::WaveletPacketTree
WaveletPacketTree(size_t height, const Wavelet *wavelet, DyadicMode dyadic_mode=DyadicMode::Odd, PaddingMode padding_mode=PaddingMode::Zeroes)
Definition: WaveletPacketTree.cc:23