Modelling a Subsolver
An algorithm can have a certain sub task that needs to be solved. This is usually stored in the form of a state.sub_problem and a state.sub_state so that a specific sub solver can be specified by that pair. The special case that the task can be solved in closed form is modelled by providing a closed form function, usually working in-place, as the sub_problem and the following state. If the closed form solution is only available in an allocating form, wrap it in an InplaceManifoldFunction and the state is set to an ClosedFormSubSolverState.
Concrete functions that are based on objectives and model sub objective functions can be found in the commons area
Types and functions
Internals
Manopt.AbstractSubProblemSolverState — Type
AbstractSubProblemSolverState <: AbstractManoptSolverStateAn abstract type for solvers that involve a subsolver.
Manopt.get_sub_problem — Method
get_sub_problem(ams::AbstractSubProblemSolverState)Access the sub problem of a solver state that involves a sub optimization task. By default this returns ams.sub_problem.
Manopt.get_sub_state — Method
get_sub_state(ams::AbstractSubProblemSolverState)Access the sub state of a solver state that involves a sub optimization task. By default this returns ams.sub_state.
Manopt.set_parameter! — Method
set_parameter!(ams::AbstractSubProblemSolverState, :SubProblem, args...)Set certain values specified by args... to the sub problem.
Manopt.set_parameter! — Method
set_parameter!(ams::AbstractSubProblemSolverState, :SubState, args...)Set certain values specified by args... to the sub state.