SOPT
Sparse OPTimisation
wavelets.cc
Go to the documentation of this file.
2 #include "sopt/config.h"
3 #include <exception>
4 #include "sopt/logging.h"
5 
6 namespace sopt::wavelets {
7 
8 Wavelet factory(const std::string& name, t_uint nlevels) {
9  if (name == "dirac" or name == "Dirac") {
10  SOPT_MEDIUM_LOG("Creating Dirac Wavelet");
11  return Wavelet(daubechies_data(1), 0);
12  }
13 
14  if (name.substr(0, 2) == "DB" or name.substr(0, 2) == "db") {
15  std::istringstream sstr(name.substr(2, name.size() - 2));
16  t_uint l(0);
17  sstr >> l;
18  SOPT_MEDIUM_LOG("Creating Daubechies Wavelet {}, level {}", l, nlevels);
19  return Wavelet(daubechies_data(l), nlevels);
20  }
21  // Unknown input wavelet
22  throw std::exception();
23 }
24 } // namespace sopt::wavelets
Performs direct and indirect wavelet transforms.
Definition: wavelets.h:21
#define SOPT_MEDIUM_LOG(...)
Medium priority message.
Definition: logging.h:225
Wavelet factory(const std::string &name, t_uint nlevels)
Creates a wavelet transform object.
Definition: wavelets.cc:8
WaveletData const & daubechies_data(t_uint n)
Factory function returning specific daubechie wavelet data.
size_t t_uint
Root of the type hierarchy for unsigned integers.
Definition: types.h:15