![]() |
SOPT
Sparse OPTimisation
|
Sparsity Averaging Reweighted Analysis. More...
#include <sara.h>
Public Member Functions | |
SARA (std::initializer_list< std::tuple< std::string, t_uint >> const &init) | |
Easy constructor. More... | |
template<typename ITERATOR , class T = typename std::enable_if< std::is_convertible<decltype(std::get<0>(*std::declval<ITERATOR>())), std::string>::value and std::is_convertible<decltype(std::get<1>(*std::declval<ITERATOR>())), t_uint>::value, ::type > | |
SARA (ITERATOR first, ITERATOR last) | |
Construct from any iterator over a (std:string, t_uint) tuple. More... | |
SARA (const_iterator first, const_iterator last) | |
virtual | ~SARA () |
Destructor. More... | |
template<typename T0 > | |
T0::PlainObject | direct (Eigen::ArrayBase< T0 > const &signal) const |
Direct transform. More... | |
template<typename T0 , typename T1 > | |
void | direct (Eigen::ArrayBase< T1 > &coefficients, Eigen::ArrayBase< T0 > const &signal) const |
Direct transform. More... | |
template<typename T0 , typename T1 > | |
void | direct (Eigen::ArrayBase< T1 > &&coefficients, Eigen::ArrayBase< T0 > const &signal) const |
Direct transform. More... | |
template<typename T0 > | |
T0::PlainObject | indirect (Eigen::ArrayBase< T0 > const &coeffs) const |
Indirect transform. More... | |
template<typename T0 , typename T1 > | |
void | indirect (Eigen::ArrayBase< T1 > const &coefficients, Eigen::ArrayBase< T0 > &signal) const |
Indirect transform. More... | |
template<typename T0 , typename T1 > | |
void | indirect (Eigen::ArrayBase< T1 > const &coeffs, Eigen::ArrayBase< T0 > &&signal) const |
Indirect transform. More... | |
t_uint | max_levels () const |
Number of levels over which to do transform. More... | |
void | emplace_back (std::string const &name, t_uint nlevels) |
Adds a wavelet of specific type. More... | |
|
inline |
Easy constructor.
Definition at line 30 of file sara.h.
|
inline |
Construct from any iterator over a (std:string, t_uint) tuple.
Definition at line 39 of file sara.h.
References emplace_back().
|
inline |
|
inlinevirtual |
T0::PlainObject sopt::wavelets::SARA::direct | ( | Eigen::ArrayBase< T0 > const & | signal | ) | const |
Direct transform.
[in] | signal | computes wavelet coefficients for this signal. Its size must be a multiple of $2^l$ where $l$ is the maximum 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 189 of file sara.h.
Referenced by direct().
|
inline |
Direct transform.
[in,out] | coefficients | Output wavelet coefficients. Must be of the type as the input. If the input is n by m, and l is the number of wavelets, then the output should be n by (m * l). |
[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 77 of file sara.h.
References direct().
void sopt::wavelets::SARA::direct | ( | Eigen::ArrayBase< T1 > & | coefficients, |
Eigen::ArrayBase< T0 > const & | signal | ||
) | const |
Direct transform.
[in,out] | coefficients | Output wavelet coefficients. Must be of the type as the input. If the input is n by m, and d is the number of wavelets, then the output should be n by (m * d). |
[in] | signal | computes wavelet coefficients for this signal. Its size must be a multiple of $2^l$ where $l$ is the maximum 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 126 of file sara.h.
References SOPT_TRACE, and SOPT_WAVELET_ERROR_MACRO.
|
inline |
Adds a wavelet of specific type.
Definition at line 114 of file sara.h.
References sopt::wavelets::factory().
T0::PlainObject sopt::wavelets::SARA::indirect | ( | Eigen::ArrayBase< T0 > const & | coeffs | ) | const |
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 181 of file sara.h.
Referenced by indirect().
void sopt::wavelets::SARA::indirect | ( | Eigen::ArrayBase< T1 > const & | coefficients, |
Eigen::ArrayBase< T0 > & | signal | ||
) | const |
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 149 of file sara.h.
References max_levels(), SOPT_TRACE, and SOPT_WAVELET_ERROR_MACRO.
|
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 102 of file sara.h.
References indirect().
|
inline |
Number of levels over which to do transform.
Definition at line 107 of file sara.h.
Referenced by indirect().