Skip to content

Commit 3d82266

Browse files
committed
Merge branch 'master' into kellertuer/refactor-initial-guess
# Conflicts: # Changelog.md
2 parents 98dddbf + daf7eea commit 3d82266

2 files changed

Lines changed: 15 additions & 18 deletions

File tree

Changelog.md

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1717
* `linesearch_backtrack(M, F, p, X, s, decrease, contract, η, f0; kwargs...)` now has `lf0=` and `gradient=` keyword arguments instead of positional ones for `X` and the last `f0`, respectively. It additionally has a `Dlf0=` keyword argument to pass the evaluated differential instead of the gradient, which otherwise defaults to calling the inner product.
1818
* refactor the nonmonotone linesearch stepsize to have an initial guess that can be set. For now it still afterwards performs the Barzilein Borwein initial guess,
1919
so a constant initial guess is recommended here for not.
20+
* covers one last line in `proximal_gradient_plan`
2021

2122
## [0.5.27] November 11, 2025
2223

@@ -83,6 +84,7 @@ so a constant initial guess is recommended here for not.
8384
* Add Distance over Gradients (RDoG) stepsize: `DistanceOverGradientsStepsize` and factory `DistanceOverGradients`, a learning‑rate‑free, curvature‑aware stepsize with `show`/`repr` and tests on Euclidean, Sphere, and Hyperbolic manifolds.
8485

8586
### Fixed
87+
8688
* the typo in the name `AdaptiveRgularizationWithCubicsModelObjective` is fixed to `AdaptiveRegularizationWithCubicsModelObjective`.
8789

8890
## [0.5.21] September 5, 2025
@@ -103,7 +105,6 @@ so a constant initial guess is recommended here for not.
103105
* a `restart_condition` functor to `conjugate_gradient_descent`, which allows the algorithm to restart if the search direction is sub-par (#492)
104106
* two literature references
105107

106-
107108
### Changed
108109

109110
* remodelled the docs for the extensions a bit, added `JuMP` to the DocumenterInterlinks.
@@ -223,7 +224,6 @@ present; they were changed to `retact_fused!`.
223224
* fixes a scaling error in quasi newton
224225
* Fixes printing of JuMP models containg Manopt solver.
225226

226-
227227
## [0.5.12] April 13, 2025
228228

229229
### Added
@@ -233,7 +233,6 @@ present; they were changed to `retact_fused!`.
233233
* Introduce a `ManifoldConstrainedSetObjective`
234234
* Introduce a `projected_gradient_method`
235235

236-
237236
## [0.5.11] April 8, 2025
238237

239238
### Added
@@ -335,7 +334,7 @@ present; they were changed to `retact_fused!`.
335334

336335
### Changed
337336

338-
* slightly improves the test for the ` ExponentialFamilyProjection` text on the about page.
337+
* slightly improves the test for the `ExponentialFamilyProjection` text on the about page.
339338

340339
### Added
341340

@@ -419,6 +418,7 @@ In general this introduces a few factories, that avoid having to pass the manifo
419418
* `DifferenceOfConvexState(M, sub_problem; evaluation=...)` was added and `DifferenceOfConvexState(M, sub_problem, sub_state; evaluation=...)` now has `p=rand(M)` as keyword argument instead of being the second positional one
420419
* `DifferenceOfConvexProximalState(M, sub_problem; evaluation=...)` was added and `DifferenceOfConvexProximalState(M, sub_problem, sub_state; evaluation=...)` now has `p=rand(M)` as keyword argument instead of being the second positional one
421420
* bumped `Manifolds.jl`to version 0.10; this mainly means that any algorithm working on a product manifold and requiring `ArrayPartition` now has to explicitly do `using RecursiveArrayTools`.
421+
422422
### Fixed
423423

424424
* the `AverageGradientRule` filled its internal vector of gradients wrongly or mixed it up in parallel transport. This is now fixed.
@@ -432,14 +432,13 @@ In general this introduces a few factories, that avoid having to pass the manifo
432432
* all deprecated keyword arguments and a few function signatures were removed:
433433
* `get_equality_constraints`, `get_equality_constraints!`, `get_inequality_constraints`, `get_inequality_constraints!` are removed. Use their singular forms and set the index to `:` instead.
434434
* `StopWhenChangeLess(ε)` is removed, use ``StopWhenChangeLess(M, ε)` instead to fill for example the retraction properly used to determine the change
435-
* In the `WolfePowellLinesearch` and `WolfeBinaryLinesearch`the `linesearch_stopsize=` keyword is replaced by `stop_when_stepsize_less=`
436-
* `DebugChange` and `RecordChange` had a `manifold=` and a `invretr` keyword that were replaced by the first positional argument `M` and `inverse_retraction_method=`, respectively
437-
* in the `NonlinearLeastSquaresObjective` and `LevenbergMarquardt` the `jacB=` keyword is now called `jacobian_tangent_basis=`
438-
* in `particle_swarm` the `n=` keyword is replaced by `swarm_size=`.
439-
* `update_stopping_criterion!` has been removed and unified with `set_parameter!`. The code adaptions are
440-
* to set a parameter of a stopping criterion, just replace `update_stopping_criterion!(sc, :Val, v)` with `set_parameter!(sc, :Val, v)`
441-
* to update a stopping criterion in a solver state, replace the old `update_stopping_criterion!(state, :Val, v)` tat passed down to the stopping criterion by the explicit pass down with `set_parameter!(state, :StoppingCriterion, :Val, v)`
442-
435+
* In the `WolfePowellLinesearch` and `WolfeBinaryLinesearch`the `linesearch_stopsize=` keyword is replaced by `stop_when_stepsize_less=`
436+
* `DebugChange` and `RecordChange` had a `manifold=` and a `invretr` keyword that were replaced by the first positional argument `M` and `inverse_retraction_method=`, respectively
437+
* in the `NonlinearLeastSquaresObjective` and `LevenbergMarquardt` the `jacB=` keyword is now called `jacobian_tangent_basis=`
438+
* in `particle_swarm` the `n=` keyword is replaced by `swarm_size=`.
439+
* `update_stopping_criterion!` has been removed and unified with `set_parameter!`. The code adaptions are
440+
* to set a parameter of a stopping criterion, just replace `update_stopping_criterion!(sc, :Val, v)` with `set_parameter!(sc, :Val, v)`
441+
* to update a stopping criterion in a solver state, replace the old `update_stopping_criterion!(state, :Val, v)` tat passed down to the stopping criterion by the explicit pass down with `set_parameter!(state, :StoppingCriterion, :Val, v)`
443442

444443
## [0.4.69] August 3, 2024
445444

@@ -476,7 +475,6 @@ In general this introduces a few factories, that avoid having to pass the manifo
476475
* a few typos in the documentation
477476
* `WolfePowellLinesearch` no longer uses `max_stepsize` with invalid point by default.
478477

479-
480478
## [0.4.66] June 27, 2024
481479

482480
### Changed
@@ -562,7 +560,6 @@ In general this introduces a few factories, that avoid having to pass the manifo
562560
* semantic symbols are now all nouns in upper case letters
563561
* `:active` is changed to `:Activity`
564562

565-
566563
## [0.4.60] April 10, 2024
567564

568565
### Added
@@ -898,7 +895,7 @@ and their documentation and testing has been extended.
898895
### Added
899896

900897
* A `:Subsolver` keyword in the `debug=` keyword argument, that activates the new `DebugWhenActive``
901-
to de/activate subsolver debug from the main solvers `DebugEvery`.
898+
to de/activate subsolver debug from the main solvers`DebugEvery`.
902899

903900
## [0.4.30] August 3, 2023
904901

@@ -987,7 +984,6 @@ and their documentation and testing has been extended.
987984

988985
* Switch all Requires weak dependencies to actual weak dependencies starting in Julia 1.9
989986

990-
991987
## [0.4.20] May 11, 2023
992988

993989
### Changed
@@ -1050,9 +1046,11 @@ and their documentation and testing has been extended.
10501046
## [0.4.14] April 06, 2023
10511047

10521048
### Changed
1049+
10531050
* `particle_swarm` now uses much more in-place operations
10541051

10551052
### Fixed
1053+
10561054
* `particle_swarm` used quite a few `deepcopy(p)` commands still, which were replaced by `copy(M, p)`
10571055

10581056
## [0.4.13] April 09, 2023
@@ -1135,7 +1133,6 @@ and their documentation and testing has been extended.
11351133

11361134
* fix a type in `HestenesStiefelCoefficient`
11371135

1138-
11391136
## [0.4.3] January 17, 2023
11401137

11411138
### Fixed
@@ -1150,7 +1147,6 @@ and their documentation and testing has been extended.
11501147
* the usage of `inner` in line search methods, such that they work well with
11511148
complex manifolds as well
11521149

1153-
11541150
## [0.4.1] January 15, 2023
11551151

11561152
### Fixed

test/solvers/test_proximal_gradient_method.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ using Manopt, Manifolds, Test, ManifoldDiff, ManoptTestSuite
7878
@test st.warm_start_factor == 1.0
7979
@test st.last_stepsize == 1.0
8080
@test get_initial_stepsize(st) == 1.0
81+
@test st(mp, pgms, 1) == 1.0
8182
pr = prox_h(M, 1.0, p0)
8283
@test get_proximal_map(M, ob, 1.0, p0) == pr
8384
@test_throws DomainError Manopt.ProximalGradientMethodBacktrackingStepsize(

0 commit comments

Comments
 (0)