![]() |
SOPT
Sparse OPTimisation
|
Performs direct and indirect wavelet transforms. More...
#include <wavelets.h>
Public Member Functions | |
virtual | ~Wavelet () |
Destructor. More... | |
template<typename T0 > | |
auto | direct (Eigen::ArrayBase< T0 > const &signal) const -> decltype(direct_transform(signal, 1, *this)) |
Direct transform. More... | |
template<typename T0 , typename T1 > | |
auto | direct (Eigen::ArrayBase< T1 > &coefficients, Eigen::ArrayBase< T0 > const &signal) const -> decltype(direct_transform(coefficients, signal, 1, *this)) |
Direct transform. More... | |
template<typename T0 , typename T1 > | |
auto | direct (Eigen::ArrayBase< T1 > &&coefficients, Eigen::ArrayBase< T0 > const &signal) const -> decltype(direct_transform(coefficients, signal, 1, *this)) |
Direct transform. More... | |
template<typename T0 > | |
auto | indirect (Eigen::ArrayBase< T0 > const &coefficients) const -> decltype(indirect_transform(coefficients, 1, *this)) |
Indirect transform. More... | |
template<typename T0 , typename T1 > | |
auto | indirect (Eigen::ArrayBase< T1 > const &coefficients, Eigen::ArrayBase< T0 > &signal) const -> decltype(indirect_transform(coefficients, signal, 1, *this)) |
Indirect transform. More... | |
template<typename T0 , typename T1 > | |
auto | indirect (Eigen::ArrayBase< T1 > const &coeffs, Eigen::ArrayBase< T0 > &&signal) const -> decltype(indirect_transform(coeffs, signal, 1, *this)) |
Indirect transform. More... | |
t_uint | levels () const |
Number of levels over which to do transform. More... | |
void | levels (t_uint l) |
Sets number of levels over which to do transform. More... | |
![]() | |
WaveletData (std::initializer_list< t_scalar > const &coefs) | |
Constructs from initializers. More... | |
WaveletData (t_vector const &coefs) | |
Constructs from vector. More... | |
Friends | |
Wavelet | factory (const std::string &name, t_uint nlevels) |
Creates a wavelet transform object. More... | |
Additional Inherited Members | |
![]() | |
using | t_scalar = t_real |
Type of the underlying scalar. More... | |
using | t_vector = Array< t_real > |
Type of the underlying vector. More... | |
![]() | |
t_vector const | coefficients |
Wavelet coefficient per-se. More... | |
struct sopt::wavelets::WaveletData::DirectFilter | direct_filter |
struct { | |
t_vector low_even | |
High-pass filter for direct transform. More... | |
t_vector low_odd | |
t_vector high_even | |
t_vector high_odd | |
} | indirect_filter |
Holds filters for indirect transform. More... | |
Performs direct and indirect wavelet transforms.
Definition at line 21 of file wavelets.h.
|
inlinevirtual |
|
inline |
Direct transform.
[in] | signal | computes wavelet coefficients for this signal. Its size must be a multiple of $2^l$ where $l$ is the number of levels. Can be a matrix (2d-transform) or a column vector (1-d transform). |
Supports 1 and 2 dimensional tranforms for real and complex data.
Definition at line 52 of file wavelets.h.
References sopt::wavelets::direct_transform(), levels(), and SOPT_WAVELET_MACRO_MULTIPLE.
|
inline |
Direct transform.
[in,out] | coefficients | Output wavelet coefficients. Must be of the same size and type as the input. |
[in] | signal | computes wavelet coefficients for this signal. Its size must be a multiple of $2^l$ where $l$ is the number of levels. Can be a matrix (2d-transform) or a column vector (1-d transform). |
Supports 1 and 2 dimensional tranforms for real and complex data. This version allows non-constant Eigen expressions to be passe on without the ugly const_cast
of the cannonical approach.
Definition at line 83 of file wavelets.h.
References sopt::wavelets::WaveletData::coefficients, sopt::wavelets::direct_transform(), levels(), SOPT_WAVELET_MACRO_EQUAL_SIZE, and SOPT_WAVELET_MACRO_MULTIPLE.
|
inline |
Direct transform.
[in,out] | coefficients | Output wavelet coefficients. Must be of the same size and type as the input. |
[in] | signal | computes wavelet coefficients for this signal. Its size must be a multiple of $2^l$ where $l$ is the number of levels. Can be a matrix (2d-transform) or a column vector (1-d transform). |
Supports 1 and 2 dimensional tranforms for real and complex data.
Definition at line 66 of file wavelets.h.
References sopt::wavelets::WaveletData::coefficients, sopt::wavelets::direct_transform(), levels(), SOPT_WAVELET_MACRO_EQUAL_SIZE, and SOPT_WAVELET_MACRO_MULTIPLE.
|
inline |
Indirect transform.
[in] | coefficients | Input wavelet coefficients. Its size must be a multiple of $2^l$ where $l$ is the number of levels. Can be a matrix (2d-transform) or a column vector (1-d transform). |
Supports 1 and 2 dimensional tranforms for real and complex data.
Definition at line 95 of file wavelets.h.
References sopt::wavelets::WaveletData::coefficients, sopt::wavelets::indirect_transform(), levels(), and SOPT_WAVELET_MACRO_MULTIPLE.
|
inline |
Indirect transform.
[in] | coefficients | Input wavelet coefficients. Its size must be a multiple of $2^l$ where $l$ is the number of levels. Can be a matrix (2d-transform) or a column vector (1-d |
[in,out] | signal | Reconstructed signal. Must be of the same size and type as the input. |
Supports 1 and 2 dimensional tranforms for real and complex data.
Definition at line 106 of file wavelets.h.
References sopt::wavelets::WaveletData::coefficients, sopt::wavelets::indirect_transform(), levels(), SOPT_WAVELET_MACRO_EQUAL_SIZE, and SOPT_WAVELET_MACRO_MULTIPLE.
|
inline |
Indirect transform.
[in] | coefficients | Input wavelet coefficients. Its size must be a multiple of $2^l$ where $l$ is the number of levels. Can be a matrix (2d-transform) or a column vector (1-d |
[in,out] | signal | Reconstructed signal. Must be of the same size and type as the input. |
Supports 1 and 2 dimensional tranforms for real and complex data. This version allows non-constant Eigen expressions to be passe on without the ugly const_cast
of the cannonical approach.
Definition at line 120 of file wavelets.h.
References sopt::wavelets::indirect_transform(), levels(), SOPT_WAVELET_MACRO_EQUAL_SIZE, and SOPT_WAVELET_MACRO_MULTIPLE.
|
inline |
Number of levels over which to do transform.
Definition at line 129 of file wavelets.h.
Referenced by direct(), and indirect().
|
inline |
Sets number of levels over which to do transform.
Definition at line 131 of file wavelets.h.
Creates a wavelet transform object.
Definition at line 8 of file wavelets.cc.