@@ -86,7 +86,7 @@ mutable struct GradientSamplingState{
8686 Pr <: Union{F, AbstractManoptProblem} where {F}, St <: AbstractManoptSolverState ,
8787 SP <: AbstractVector{<:P} , ST <: AbstractVector{<:T} , A <: AbstractVector{<:R} ,
8888 SC <: StoppingCriterion , S <: Stepsize , RTM <: AbstractRetractionMethod , VTM <: AbstractVectorTransportMethod ,
89- } <: AbstractManoptSolverState
89+ } <: AbstractGradientSolverState
9090 convex_hull_coeffs:: A
9191 p:: P
9292 sampled_points:: SP
@@ -177,7 +177,6 @@ function GradientSamplingState(
177177 vector_transport_method = vector_transport_method, X = X, Y = copy (M, p, X),
178178 )
179179end
180-
181180function default_stepsize (
182181 M:: AbstractManifold , :: Type{GradientSamplingState} ; retraction_method = default_retraction_method (M),
183182 )
@@ -387,13 +386,13 @@ function step_solver!(
387386 # solve sub problem in convex_hull_coeffs
388387 _gradient_sampling_subsolver (M, gss)
389388 # reconstruct tangent vector from the coefficients (w_l in HU17) in Y
390- zero_vector! (M, gss. p , gss. Y )
389+ zero_vector! (M, gss. Y , gss. p )
391390 for (λj, Xj) in zip (gss. convex_hull_coeffs, gss. sampled_vectors)
392391 gss. Y .+ = λj * Xj
393392 end
394393 # Decide whether to accept the step or update radius
395394 if norm (M, gss. p, gss. Y) < gss. subgradient_norm_tolerance
396- # do not accept
395+ # do not accept this step but decrease radius and tolerance
397396 gss. sampling_radius *= gss. sampling_radius_reduction
398397 gss. subgradient_norm_tolerance *= gss. subgradient_norm_reduction
399398 else
@@ -420,12 +419,3 @@ function _gradient_sampling_subsolver(
420419 return gss
421420end
422421# (c) (not yet needed / implemented) an actual sub solver call
423-
424-
425- function (d:: DebugStepsize )(
426- dmp:: P , gss:: GradientSamplingState , k:: Int
427- ) where {P <: AbstractManoptProblem }
428- (k < 1 ) && return nothing
429- Printf. format (d. io, Printf. Format (d. format), get_last_stepsize (dmp, gss, k))
430- return nothing
431- end
0 commit comments