SOPT
Sparse OPTimisation
Classes | Namespaces | Macros | Functions
wavelets.h File Reference
#include "sopt/config.h"
#include "sopt/types.h"
#include "sopt/wavelets/direct.h"
#include "sopt/wavelets/indirect.h"
#include "sopt/wavelets/wavelet_data.h"
#include <string>
+ Include dependency graph for wavelets.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  sopt::wavelets::Wavelet
 Performs direct and indirect wavelet transforms. More...
 

Namespaces

 sopt
 
 sopt::wavelets
 

Macros

#define SOPT_WAVELET_MACRO_MULTIPLE(NAME)
 
#define SOPT_WAVELET_MACRO_EQUAL_SIZE(A, B)
 

Functions

Wavelet sopt::wavelets::factory (const std::string &name="DB1", t_uint nlevels=1)
 Creates a wavelet transform object. More...
 

Macro Definition Documentation

◆ SOPT_WAVELET_MACRO_EQUAL_SIZE

#define SOPT_WAVELET_MACRO_EQUAL_SIZE (   A,
 
)
Value:
if ((A).rows() != (B).rows() or (A).cols() != (B).cols()) (A).derived().resize((B).rows(), (B).cols()); \
if ((A).rows() != (B).rows() or (A).cols() != (B).cols()) \
throw std::length_error("Incorrect size for output matrix(or could not resize)")
t_uint rows
t_uint cols

Definition at line 41 of file wavelets.h.

◆ SOPT_WAVELET_MACRO_MULTIPLE

#define SOPT_WAVELET_MACRO_MULTIPLE (   NAME)
Value:
if (((NAME).rows() == 1 or (NAME).cols() == 1)) { \
if ((NAME).size() % (1 << levels()) != 0) \
throw std::length_error("Size of " #NAME " must number a multiple of 2^levels or 1"); \
} else if ((NAME).rows() != 1 and (NAME).rows() % (1 << levels()) != 0) \
throw std::length_error("Rows of " #NAME " must number a multiple of 2^levels or 1"); \
else if ((NAME).cols() % (1 << levels()) != 0) \
throw std::length_error("Columns of " #NAME " must number a multiple of 2^levels");

Definition at line 33 of file wavelets.h.