|  | SOPT
    Sparse OPTimisation | 
Joins together direct and indirect operators. More...
#include <linear_transform.h>
 Inheritance diagram for sopt::LinearTransform< VECTOR >:
 Inheritance diagram for sopt::LinearTransform< VECTOR >: Collaboration 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 xsizeelements.  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().