panwave
StationaryWaveletPacketTree.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 STATIONARYWAVELETPACKETTREE_H
8 #define STATIONARYWAVELETPACKETTREE_H
9 
10 #include <vector>
11 
12 #include "Tree.h"
13 #include "Wavelet.h"
14 #include "WaveletMath.h"
15 #include "WaveletPacketTreeTemplateBase.h"
16 
17 namespace panwave {
18 
31  public:
45  StationaryWaveletPacketTree(size_t height, const Wavelet* wavelet,
46  PaddingMode padding_mode = PaddingMode::Zeroes);
47  ~StationaryWaveletPacketTree() override = default;
48 
49  void Decompose() override;
50  void Reconstruct(size_t level) override;
51 
52  protected:
53  void DecomposeNode(size_t node);
54  void ReconstructNode(size_t node);
55 
63  void ReconstructAccumulate(size_t leaf_node,
64  std::vector<double>* accumulated_signal);
65 
66  private:
67  PaddingMode padding_mode_;
68 };
69 
70 }; // namespace panwave
71 
72 #endif // STATIONARYWAVELETPACKETTREE_H
panwave::Wavelet
Definition: Wavelet.h:21
panwave::StationaryWaveletPacketTree::StationaryWaveletPacketTree
StationaryWaveletPacketTree(size_t height, const Wavelet *wavelet, PaddingMode padding_mode=PaddingMode::Zeroes)
Definition: StationaryWaveletPacketTree.cc:28
panwave::StationaryWaveletPacketTree
Definition: StationaryWaveletPacketTree.h:30
panwave::StationaryWaveletPacketTree::Reconstruct
void Reconstruct(size_t level) override
Definition: StationaryWaveletPacketTree.cc:133
panwave::StationaryWaveletPacketTree::ReconstructAccumulate
void ReconstructAccumulate(size_t leaf_node, std::vector< double > *accumulated_signal)
Definition: StationaryWaveletPacketTree.cc:116
panwave::StationaryWaveletPacketTree::Decompose
void Decompose() override
Definition: StationaryWaveletPacketTree.cc:33
panwave::WaveletPacketTreeTemplateBase
Definition: WaveletPacketTreeTemplateBase.h:22