![]() |
SOPT
Sparse OPTimisation
|
Joins together direct and indirect operators. More...
#include <linear_transform.h>
Inheritance diagram for sopt::LinearTransform< VECTOR >:
Collaboration diagram for sopt::LinearTransform< VECTOR >:Public Types | |
| using | t_Function = OperatorFunction< VECTOR > |
| Type of the wrapped functions. More... | |
Public Types inherited from sopt::details::WrapFunction< VECTOR > | |
| using | t_Function = OperatorFunction< VECTOR > |
| Type of function wrapped here. More... | |
Public Member Functions | |
| LinearTransform (t_Function const &direct, t_Function const &indirect, std::array< t_int, 3 > sizes={{1, 1, 0}}) | |
| LinearTransform (t_Function const &direct, std::array< t_int, 3 > dsizes, t_Function const &indirect, std::array< t_int, 3 > isizes) | |
| LinearTransform (details::WrapFunction< VECTOR > const &direct, details::WrapFunction< VECTOR > const &indirect) | |
| LinearTransform (LinearTransform const &c) | |
| LinearTransform (LinearTransform &&c) | |
| void | operator= (LinearTransform const &c) |
| void | operator= (LinearTransform &&c) |
| LinearTransform< VECTOR > | adjoint () const |
| Indirect transform. More... | |
| void | set_norm (t_real n) |
| sopt::t_real | norm () const |
| sopt::t_real | sq_norm () const |
Public Member Functions inherited from sopt::details::WrapFunction< VECTOR > | |
| WrapFunction (t_Function const &func, std::array< t_int, 3 > sizes={{1, 1, 0}}) | |
| WrapFunction (WrapFunction const &c) | |
| WrapFunction (WrapFunction const &&c) | |
| void | operator= (WrapFunction const &c) |
| void | operator= (WrapFunction &&c) |
| template<typename T0 > | |
| AppliedFunction< t_Function const &, Eigen::ArrayBase< T0 > > | operator() (Eigen::ArrayBase< T0 > const &x) const |
| Function application form. More... | |
| template<typename T0 > | |
| AppliedFunction< t_Function const &, Eigen::ArrayBase< T0 > > | operator* (Eigen::ArrayBase< T0 > const &x) const |
| Multiplication application form. More... | |
| template<typename T0 > | |
| AppliedFunction< t_Function const &, Eigen::MatrixBase< T0 > > | operator() (Eigen::MatrixBase< T0 > const &x) const |
| Function application form. More... | |
| template<typename T0 > | |
| AppliedFunction< t_Function const &, Eigen::MatrixBase< T0 > > | operator* (Eigen::MatrixBase< T0 > const &x) const |
| Multiplication application form. More... | |
| std::array< t_int, 3 > const & | sizes () const |
| Defines relation-ship between input and output sizes. More... | |
| template<typename T > | |
| std::enable_if< std::is_integral< T >::value, T >::type | rows (T xsize) const |
Output vector size for a input with xsize elements. More... | |
Joins together direct and indirect operators.
Definition at line 30 of file linear_transform.h.
| using sopt::LinearTransform< VECTOR >::t_Function = OperatorFunction<VECTOR> |
Type of the wrapped functions.
Definition at line 33 of file linear_transform.h.
|
inline |
Constructor
| [in] | direct | function with signature void(VECTOR&, VECTOR const&) which applies a linear operator to a vector. |
| [in] | indirect | function with signature void(VECTOR&, VECTOR const&) which applies a the conjugate transpose linear operator to a vector. |
| [in] | sizes | 3 integer elements (a, b, c) such that if the input to linear operator is of size N, then the output is of size (a * N) / b + c. A similar quantity is deduced for the indirect operator. |
Definition at line 43 of file linear_transform.h.
|
inline |
Constructor
| [in] | direct | function with signature void(VECTOR&, VECTOR const&) which applies a linear operator to a vector. |
| [in] | dsizes | 3 integer elements (a, b, c) such that if the input to the linear operator is of size N, then the output is of size (a * N) / b + c. |
| [in] | indirect | function with signature void(VECTOR&, VECTOR const&) which applies a the conjugate transpose linear operator to a vector. |
| [in] | dsizes | 3 integer elements (a, b, c) such that if the input to the indirect linear operator is of size N, then the output is of size (a * N) / b + c. |
Definition at line 59 of file linear_transform.h.
|
inline |
Definition at line 62 of file linear_transform.h.
|
inline |
Definition at line 65 of file linear_transform.h.
|
inline |
Definition at line 67 of file linear_transform.h.
|
inline |
Indirect transform.
Definition at line 83 of file linear_transform.h.
Referenced by sopt::adjoint_transform(), sopt::algorithm::PowerMethod< SCALAR >::AtA(), sopt::algorithm::ProximalADMM< SCALAR >::initial_guess(), sopt::algorithm::PrimalDual< SCALAR >::initial_guess(), main(), sopt::algorithm::power_method(), TEST_CASE(), and sopt::objective_functions::unconstrained_l1_regularisation().
|
inline |
Definition at line 97 of file linear_transform.h.
|
inline |
Definition at line 75 of file linear_transform.h.
References sopt::details::WrapFunction< VECTOR >::operator=().
|
inline |
Definition at line 69 of file linear_transform.h.
References sopt::details::WrapFunction< VECTOR >::operator=().
|
inline |
Definition at line 91 of file linear_transform.h.
References n.
|
inline |
Definition at line 102 of file linear_transform.h.
Referenced by sopt::algorithm::ProximalADMM< SCALAR >::initial_guess(), and sopt::algorithm::PrimalDual< SCALAR >::initial_guess().