States

Specific states for sub solvers

Manopt.CoordinatesNormalSystemState — Type
CoordinatesNormalSystemState <: AbstractManoptSolverState

A solver state indicating that the LevenbergMarquardtLinearSurrogateObjective is solved using a linear system in coordinates of the tangent space at the current iterate.

Fields

  • A: an $n×n$ matrix storing the normal-equations linear operator from get_linear_operator in coordinates, where n is the number of coordinates
  • b: an $n$ vector storing the right hand side of the normal equations in coordinates
  • basis::AbstractBasis: the basis the coordinates refer to
  • c: an $n$ vector storing the solution of the linear system in coordinates
  • linsolve!: a function (c, A, b) -> c solving the linear system in-place of c

Constructor

CoordinatesNormalSystemState(    M::AbstractManifold;    p = rand(M),    linsolve = default_lm_lin_solve!,    basis = DefaultOrthonormalBasis(),    A = nothing)

Construct the state, where not providing a memory for A uses the number_eltype of p to determine the element type of the matrix to store. Note that the keyword is linsolve, while the field it is stored in is called linsolve!.

source

Internals

Manopt.LevenbergMarquardtBoxSubsolver — Type
LevenbergMarquardtBoxSubsolver <: AbstractManoptSolverState

Wrap the sub solver state of a LevenbergMarquardt run on a manifold with box constraints, where the sub solver result is trimmed to the box by a generalized Cauchy direction search.

Fields

  • internal_state: the state of the sub solver that is wrapped
  • last_gcd_result, last_gcd_stepsize: the status and the maximal step size returned by the last generalized Cauchy direction search, see find_generalized_cauchy_direction!

Constructor

LevenbergMarquardtBoxSubsolver(M::AbstractManifold, sub_state, p)

Wrap sub_state, where p determines the number type of the stored step size.

source
Manopt.hessian_value — Method
hessian_value(ha::CoordinatesNormalSystemState, M, p, X::UnitVector, Y)

Evaluate the quadratic form associated with the stored Hessian approximation. Returns the scalar $c_b^{\top} A c$ where $c_b$ are the coordinates of the UnitVector X at p (assumed to correspond to the basis ha.basis), $c$ are the coordinates of the tangent vector Y at p (in the basis ha.basis) and $A$ is ha.A.

source