xerus
a general purpose tensor library
|
Wrapper class for all steepest descent variants. More...
#include <steepestDescent.h>
Public Member Functions | |
SteepestDescentVariant (size_t _numSteps, value_t _convergenceEpsilon, bool _symPosOp, TTRetractionII _retraction) | |
fully defining constructor. alternatively SteepestDescentVariant can be created by copying a predefined variant and modifying it More... | |
SteepestDescentVariant (TTRetractionII _retraction) | |
definition using only the retraction. In the following an operator() including either convergenceEpsilon or numSteps must be called or the algorithm will never terminate More... | |
double | operator() (const TTOperator &_A, TTTensor &_x, const TTTensor &_b, value_t _convergenceEpsilon, PerformanceData &_perfData=NoPerfData) const |
double | operator() (const TTOperator &_A, TTTensor &_x, const TTTensor &_b, size_t _numSteps, PerformanceData &_perfData=NoPerfData) const |
double | operator() (const TTOperator &_A, TTTensor &_x, const TTTensor &_b, PerformanceData &_perfData=NoPerfData) const |
double | operator() (TTTensor &_x, const TTTensor &_b, value_t _convergenceEpsilon, PerformanceData &_perfData=NoPerfData) const |
double | operator() (TTTensor &_x, const TTTensor &_b, size_t _numSteps, PerformanceData &_perfData=NoPerfData) const |
double | operator() (TTTensor &_x, const TTTensor &_b, PerformanceData &_perfData=NoPerfData) const |
Public Attributes | |
bool | assumeSymmetricPositiveDefiniteOperator |
calculates the gradient as b-Ax instead of A^T(b-Ax) More... | |
value_t | convergenceEpsilon |
default value for the change in the residual at which the algorithm assumes it is converged More... | |
size_t | numSteps |
maximum number of steps to perform. set to 0 for infinite More... | |
TTOperator * | preconditioner |
TTRetractionII | retraction |
the retraction to project from point + tangent vector to a new point on the manifold More... | |
Protected Member Functions | |
double | solve (const TTOperator *_Ap, TTTensor &_x, const TTTensor &_b, size_t _numSteps, value_t _convergenceEpsilon, PerformanceData &_perfData=NoPerfData) const |
Wrapper class for all steepest descent variants.
By creating a new object of this class and modifying the member variables, the behaviour of the solver can be modified.
Definition at line 45 of file steepestDescent.h.
|
inline |
fully defining constructor. alternatively SteepestDescentVariant can be created by copying a predefined variant and modifying it
Definition at line 60 of file steepestDescent.h.
|
inline |
definition using only the retraction. In the following an operator() including either convergenceEpsilon or numSteps must be called or the algorithm will never terminate
Definition at line 66 of file steepestDescent.h.
|
inline |
call to solve \( A\cdot x = b\) for \( x \) (in a least-squares sense)
_A | operator to solve for | |
[in,out] | _x | in: initial guess, out: solution as found by the algorithm |
_b | right-hand side of the equation to be solved | |
_convergenceEpsilon | minimum change in residual / energy under which the algorithm terminates | |
_perfData | vector of performance data (residuals after every microiteration) |
Definition at line 79 of file steepestDescent.h.
|
inline |
call to solve \( A\cdot x = b\) for \( x \) (in a least-squares sense)
_A | operator to solve for | |
[in,out] | _x | in: initial guess, out: solution as found by the algorithm |
_b | right-hand side of the equation to be solved | |
_numHalfSweeps | maximum number of half-sweeps to perform | |
_perfData | vector of performance data (residuals after every microiteration) |
Definition at line 92 of file steepestDescent.h.
|
inline |
call to solve \( A\cdot x = b\) for \( x \) (in a least-squares sense)
_A | operator to solve for | |
[in,out] | _x | in: initial guess, out: solution as found by the algorithm |
_b | right-hand side of the equation to be solved | |
_perfData | vector of performance data (residuals after every microiteration) |
Definition at line 104 of file steepestDescent.h.
|
inline |
call to minimze \( \|x - b\|^2 \) for \( x \)
[in,out] | _x | in: initial guess, out: solution as found by the algorithm |
_b | right-hand side of the equation to be solved | |
_convergenceEpsilon | minimum change in residual / energy under which the algorithm terminates | |
_perfData | vector of performance data (residuals after every microiteration) |
Definition at line 116 of file steepestDescent.h.
|
inline |
call to minimze \( \|x - b\|^2 \) for \( x \)
[in,out] | _x | in: initial guess, out: solution as found by the algorithm |
_b | right-hand side of the equation to be solved | |
_numHalfSweeps | maximum number of half-sweeps to perform | |
_perfData | vector of performance data (residuals after every microiteration) |
Definition at line 128 of file steepestDescent.h.
|
inline |
Definition at line 132 of file steepestDescent.h.
|
protected |
Definition at line 83 of file steepestDescent.cpp.
bool xerus::SteepestDescentVariant::assumeSymmetricPositiveDefiniteOperator |
calculates the gradient as b-Ax instead of A^T(b-Ax)
Definition at line 52 of file steepestDescent.h.
value_t xerus::SteepestDescentVariant::convergenceEpsilon |
default value for the change in the residual at which the algorithm assumes it is converged
Definition at line 51 of file steepestDescent.h.
size_t xerus::SteepestDescentVariant::numSteps |
maximum number of steps to perform. set to 0 for infinite
Definition at line 50 of file steepestDescent.h.
TTOperator* xerus::SteepestDescentVariant::preconditioner |
Definition at line 53 of file steepestDescent.h.
TTRetractionII xerus::SteepestDescentVariant::retraction |
the retraction to project from point + tangent vector to a new point on the manifold
Definition at line 55 of file steepestDescent.h.