CurrentModule = Manopt
In order to start a solver, both a Problem
and Options
are required.
Together they form a plan and these are stored in this folder. For
sub-problems there are maybe also only Options
, since they than refer to the
same problem.
For most algorithms a certain set of options can either be generated beforehand of the function with keywords can be used. Generally the type
Options
getOptions
Since the Options
directly relate to a solver, they are documented with the
corresponding Solvers.
You can always access the options (since they
might be decorated) by calling getOptions
.
Options can be decorated using the following trait and function to initialize
IsOptionsDecorator
decorateOptions
In general decorators often perform actions so we introduce
Action
as well as a helper for storing values using keys, i.e.
StoreOptionsAction
getStorage
hasStorage
updateStorage!
Modules = [Manopt]
Pages = ["plans/debugOptions.jl"]
Order = [:type, :function]
see [DebugSolver](@ref DebugSolver) for details on the decorated solver.
Further specific DebugAction
s can be found at the specific Options.
Modules = [Manopt]
Pages = ["plans/recordOptions.jl"]
Order = [:type, :function]
Private = false
see [RecordSolver](@ref RecordSolver) for details on the decorated solver.
Further specific RecordAction
s can be found at the specific Options.
there's one internal helper that might be useful for you own actions, namely
recordOrReset!
The step size determination is implemented as a Functor
based on
Stepsize
in general there are
Modules = [Manopt]
Pages = ["plans/stepsize.jl"]
Order = [:type]
A problem usually contains its cost function and provides and implementation to access the cost
Problem
getCost
For any algorithm that involves a cyclic evalutaion, e.g.
cyclicProximalPoint
, one can specify the EvalOrder
as
EvalOrder
LinearEvalOrder
RandomEvalOrder
FixedRandomEvalOrder
GradientProblem
getGradient
SubGradientProblem
getSubGradient
ProximalProblem
getProximalMap
HessianProblem