![]() |
SOPT
Sparse OPTimisation
|
Performs direct and indirect wavelet transforms. More...
#include <wavelets.h>
Inheritance diagram for sopt::wavelets::Wavelet:
Collaboration diagram for sopt::wavelets::Wavelet: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... | |
Public Member Functions inherited from sopt::wavelets::WaveletData | |
| 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 | |
Public Types inherited from sopt::wavelets::WaveletData | |
| using | t_scalar = t_real |
| Type of the underlying scalar. More... | |
| using | t_vector = Array< t_real > |
| Type of the underlying vector. More... | |
Public Attributes inherited from sopt::wavelets::WaveletData | |
| 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.