Modeling a sub solver
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 modeled by providing a closed form function, usually working in-place, as the sub_problem together with a ClosedFormSubSolverState as the sub_state. If the closed form solution is only available in an allocating form, wrap it in an InplaceManifoldFunction and the state is set to a 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.