181181function default_stepsize (
182182 M:: AbstractManifold , :: Type{GradientSamplingState} ; retraction_method = default_retraction_method (M),
183183 )
184- return ArmijoLinesearchStepsize (M; stop_increasing_at_step = 1 , retraction_method = retraction_method, initial_stepsize = 1.0 )
184+ return ArmijoLinesearchStepsize (M; retraction_method = retraction_method)
185185end
186186#
187187#
@@ -317,7 +317,7 @@ function gradient_sampling!(
317317 sub_state = InplaceEvaluation (),
318318 sampling_radius_reduction:: Real = 0.5 , sampling_radius_threshold:: Real = 1.0e-2 ,
319319 subgradient_norm_reduction:: Real = 0.5 , subgradient_norm_tolerance:: Real = 0.1 , subgradient_norm_threshold:: Real = 1.0e-3 ,
320- stopping_criterion:: StoppingCriterion = StopAfterIteration (200 ) | (
320+ stopping_criterion:: StoppingCriterion = StopAfterIteration (100 ) | (
321321 StopWhenGradientNormLess (subgradient_norm_threshold) & (
322322 StopWhenSmallerOrEqual (:sampling_radius , sampling_radius_threshold)
323323 )
@@ -338,12 +338,10 @@ function gradient_sampling!(
338338 sample_size = sample_size,
339339 convex_hull_coeffs = convex_hull_coeffs,
340340 retraction_method = retraction_method,
341- sampled_points = sampled_points,
342- sampled_vectors = sampled_vectors,
341+ sampled_points = sampled_points, sampled_vectors = sampled_vectors,
343342 sampling_radius = sampling_radius,
344343 sampling_radius_reduction = sampling_radius_reduction,
345- subgradient_norm_reduction = subgradient_norm_reduction,
346- subgradient_norm_tolerance = subgradient_norm_tolerance,
344+ subgradient_norm_reduction = subgradient_norm_reduction, subgradient_norm_tolerance = subgradient_norm_tolerance,
347345 stepsize = _produce_type (stepsize, M, p),
348346 stopping_criterion = stopping_criterion,
349347 vector_transport_method = vector_transport_method,
@@ -401,8 +399,8 @@ function step_solver!(
401399 else
402400 # We already have the gradient in the sampled vectors[1]
403401 # and set normed -Y as search direction
404- step = get_stepsize (mp, gss, i, - gss. Y / norm (M, gss. p, gss. Y))
405- ManifoldsBase. retract_fused! (M, gss. p, gss. p, gss. X , step, gss. retraction_method)
402+ step = get_stepsize (mp, gss, i, - gss. Y / norm (M, gss. p, gss. Y); gradient = gss . sampled_vectors[ 1 ] )
403+ ManifoldsBase. retract_fused! (M, gss. p, gss. p, - gss. Y / norm (M, gss . p, gss . Y) , step, gss. retraction_method)
406404 get_gradient! (mp, gss. X, gss. p)
407405 end
408406 return gss
0 commit comments