|
FlexBox - A Flexible Primal-Dual ToolBox
|
abstract base class for linear operators More...
#include <flexLinearOperator.h>
Public Member Functions | |
| flexLinearOperator (int aNumRows, int aNumCols, linOp aType, bool aIsMinus) | |
| initializes the linear operator More... | |
| int | getNumCols () const |
| returns number of columns of the linear operator More... | |
| int | getNumRows () const |
| returns number of rows of the linear operator More... | |
| void | setNumCols (int aNumCols) |
| sets the number of columns of the linear operator More... | |
| void | setNumRows (int aNumRows) |
| sets the number of rows of the linear operator More... | |
| void | setMinus (bool aIsMinus) |
| constrols if operator should be negated or not More... | |
| virtual flexLinearOperator< T > * | copy ()=0 |
| copies the linear operator More... | |
| virtual void | times (bool transposed, const Tdata &input, Tdata &output)=0 |
| applies linear operator on vector More... | |
| virtual void | timesPlus (bool transposed, const Tdata &input, Tdata &output)=0 |
| applies linear operator on vector and adds its result to y More... | |
| virtual void | timesMinus (bool transposed, const Tdata &input, Tdata &output)=0 |
| applies linear operator on vector and substracts its result from y More... | |
| virtual std::vector< T > | getAbsRowSum (bool transposed)=0 |
| returns a vector of sum of absolute values per row used for preconditioning More... | |
| virtual thrust::device_vector< T > | getAbsRowSumCUDA (bool transposed)=0 |
| same function as getAbsRowSum() but implemented in CUDA More... | |
| virtual T | getMaxRowSumAbs (bool transposed)=0 |
| returns the maximum sum of absolute values per row used for preconditioning More... | |
Public Attributes | |
| linOp | type |
| type of linear operator More... | |
| bool | isMinus |
| determines if operator is negated | |
abstract base class for linear operators
flexLinearOperator combines the interface for all usable operators
|
inline |
|
pure virtual |
copies the linear operator
Implemented in flexGradientOperator< T >, flexMatrixGPU< T >, flexDiagonalOperator< T >, flexConcatOperator< T >, flexSuperpixelOperator< T >, flexMatrix< T >, flexMatrixLogical< T >, flexFullMatrix< T >, flexIdentityOperator< T >, and flexZeroOperator< T >.
|
pure virtual |
returns a vector of sum of absolute values per row used for preconditioning
| transposed | is true if operator should be (temporarily) transposed before usage |
Implemented in flexGradientOperator< T >, flexMatrixGPU< T >, flexConcatOperator< T >, flexMatrix< T >, flexMatrixLogical< T >, flexDiagonalOperator< T >, flexIdentityOperator< T >, flexFullMatrix< T >, flexSuperpixelOperator< T >, and flexZeroOperator< T >.
|
pure virtual |
same function as getAbsRowSum() but implemented in CUDA
| transposed | is true if operator should be (temporarily) transposed before usage |
Implemented in flexGradientOperator< T >, flexMatrixGPU< T >, flexConcatOperator< T >, flexMatrix< T >, flexMatrixLogical< T >, flexFullMatrix< T >, flexDiagonalOperator< T >, flexIdentityOperator< T >, flexSuperpixelOperator< T >, and flexZeroOperator< T >.
|
pure virtual |
returns the maximum sum of absolute values per row used for preconditioning
| transposed | is true if operator should be (temporarily) transposed before usage |
Implemented in flexGradientOperator< T >, flexMatrixGPU< T >, flexConcatOperator< T >, flexMatrix< T >, flexDiagonalOperator< T >, flexMatrixLogical< T >, flexIdentityOperator< T >, flexFullMatrix< T >, flexSuperpixelOperator< T >, and flexZeroOperator< T >.
|
inline |
returns number of columns of the linear operator
|
inline |
returns number of rows of the linear operator
|
inline |
constrols if operator should be negated or not
| aIsMinus | true if operator should be negated, otherwise false. |
|
inline |
sets the number of columns of the linear operator
| aNumCols | number of columns |
|
inline |
sets the number of rows of the linear operator
| aNumRows | number of rows |
|
pure virtual |
applies linear operator on vector
equals
| transposed | is true if operator should be (temporarily) transposed before usage |
| input | data to be processed |
| output | output data |
Implemented in flexGradientOperator< T >, flexMatrixGPU< T >, flexDiagonalOperator< T >, flexConcatOperator< T >, flexMatrix< T >, flexMatrixLogical< T >, flexSuperpixelOperator< T >, flexFullMatrix< T >, flexIdentityOperator< T >, and flexZeroOperator< T >.
|
pure virtual |
applies linear operator on vector and substracts its result from y
equals
| transposed | is true if operator should be (temporarily) transposed before usage |
| input | data to be processed |
| output | output data |
Implemented in flexGradientOperator< T >, flexMatrixGPU< T >, flexConcatOperator< T >, flexDiagonalOperator< T >, flexIdentityOperator< T >, flexMatrix< T >, flexMatrixLogical< T >, flexSuperpixelOperator< T >, flexFullMatrix< T >, and flexZeroOperator< T >.
|
pure virtual |
applies linear operator on vector and adds its result to y
equals
| transposed | is true if operator should be (temporarily) transposed before usage |
| input | data to be processed |
| output | output data |
Implemented in flexGradientOperator< T >, flexMatrixGPU< T >, flexDiagonalOperator< T >, flexIdentityOperator< T >, flexConcatOperator< T >, flexMatrix< T >, flexMatrixLogical< T >, flexSuperpixelOperator< T >, flexFullMatrix< T >, and flexZeroOperator< T >.
| linOp flexLinearOperator< T >::type |
type of linear operator
1.8.13