Skip to content

Commit 5bfd3c6

Browse files
hajg-ijkkellertuer
andauthored
RPG fallback (#518)
* Add warm start to CRPG backtracking * Bump changelog * Fix some math rendering in docs * Bump changelog * Add some references * Update changelog * Update Changelog.md * Runic: Update test/solvers/test_proximal_gradient_method.jl --------- Co-authored-by: Ronny Bergmann <git@ronnybergmann.net>
1 parent d274970 commit 5bfd3c6

4 files changed

Lines changed: 11 additions & 4 deletions

File tree

Changelog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1111
### Added
1212

1313
* `CubicBracketingLinesearch` step size
14+
* fallback in `proximal_gradient_plan`to use the norm of the inverse retraction if the distance is not available.
1415

1516
## [0.5.23] September 14, 2025
1617

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "Manopt"
22
uuid = "0fc0a36d-df90-57f3-8f93-d78a9fc72bb5"
33
authors = ["Ronny Bergmann <manopt@ronnybergmann.net>"]
4-
version = "0.5.23"
4+
version = "0.5.24"
55

66
[deps]
77
ColorSchemes = "35d6a980-a343-548e-a6ea-1d62b119f2f4"

src/plans/proximal_gradient_plan.jl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -508,8 +508,7 @@ function (s::ProximalGradientMethodBacktrackingStepsize)(
508508

509509
# Compute log_p(candidate_point) and its squared norm for the conditions
510510
log_p_q = inverse_retract(M, p, candidate_point, st.inverse_retraction_method)
511-
squared_distance = distance(M, p, candidate_point)^2
512-
511+
squared_distance = norm(M, p, log_p_q)^2
513512
if s.strategy === :nonconvex
514513
# Nonconvex descent condition
515514
if get_cost(mp, p) - get_cost(mp, candidate_point) >=

test/solvers/test_proximal_gradient_method.jl

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,14 @@ using Manopt, Manifolds, Test, ManifoldDiff, ManoptTestSuite
223223
prox_h(M, λ, p) = p
224224
p0 = p1
225225
pbm_s = proximal_gradient_method(
226-
M, f, g, grad_g; prox_nonsmooth = prox_h, return_state = true
226+
M, f, g, grad_g;
227+
prox_nonsmooth = prox_h,
228+
inverse_retraction_method = ProjectionInverseRetraction(),
229+
stepsize = ProximalGradientMethodBacktracking(;
230+
initial_stepsize = 1.0,
231+
strategy = :convex
232+
),
233+
return_state = true
227234
)
228235
@test startswith(
229236
repr(pbm_s), "# Solver state for `Manopt.jl`s Proximal Gradient Method\n"

0 commit comments

Comments
 (0)