![]() |
SOPT
Sparse OPTimisation
|
Joins together direct and indirect operators. More...
#include <linear_transform.h>
Public Types | |
using | t_Function = OperatorFunction< VECTOR > |
Type of the wrapped functions. More... | |
![]() | |
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 |
![]() | |
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().