You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
An idea to provide Hints and Errors on Keywords (#503)
* First few steps towards handling Keywords.
* Start a first list.
* export keywords_accepted as an interface function.
* Simplify `origins` to always be a vector.
* Bump version number.
---------
Co-authored-by: Mateusz Baran <mateuszbaran89@gmail.com>
Copy file name to clipboardExpand all lines: Changelog.md
+8-1Lines changed: 8 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,16 +6,23 @@ The file was started with Version `0.4`.
6
6
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
7
7
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
8
8
9
-
## [candidate] September 8, 2025
9
+
## [0.5.22] September 09, 2025
10
10
11
11
### Added
12
12
13
+
* a `keywords_accepted(f, mode=:warn; kwargs...)` function that verifies that all keywords are accepted by a certain function.
14
+
* an internal function `calls_with_kwargs(f)` to indicate which functions `f` passes `kwargs...` to.
15
+
* a `KeywordsErrorMode` preference parameter to control how keywords that are not used/allowed should be treated. Values are `"none"`, `"warn"` (default), and `"error"`.
13
16
* 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.
14
17
18
+
### Fixed
19
+
* the typo in the name `AdaptiveRgularizationWithCubicsModelObjective` is fixed to `AdaptiveRegularizationWithCubicsModelObjective`.
20
+
15
21
## [0.5.21] September 5, 2025
16
22
17
23
### Added
18
24
25
+
* a system to track keywords, warning when unused ones are passed and a static way to explore possible keywords.
19
26
* a `warm_start_factor` field to `ProximalGradientMethodBacktrackingStepsize` to allow to scale the stepsize in the backtracking procedure.
20
27
* a `gradient=` keyword in several `Stepsize`s, such that one can avoid to internally avoid computing the gradient again.
Copy file name to clipboardExpand all lines: docs/src/plans/index.md
+20-1Lines changed: 20 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -58,11 +58,30 @@ You can further activate a “Tutorial” mode by `set_parameter!(:Mode, "Tutori
58
58
Manopt.is_tutorial_mode
59
59
```
60
60
61
-
# A factory for providing manifold defaults
61
+
##A factory for providing manifold defaults
62
62
63
63
In several cases a manifold might not yet be known at the time a (keyword) argument should be provided. Therefore, any type with a manifold default can be wrapped into a factory.
64
64
65
65
```@docs
66
66
Manopt.ManifoldDefaultsFactory
67
67
Manopt._produce_type
68
+
```
69
+
70
+
## Keyword arguments and their verification
71
+
72
+
Internally `Manopt.jl` passes keywords for the (high-level) solver
73
+
functions to several inner functions, e.g. to add debug or caching.
74
+
Besides the documentation, one can check with the internal function [`Manopt.accepted_keywords`](@ref) which keywords a solver accepts.
75
+
76
+
A solver also warns, if a keyword is passed, that is not handled by the
0 commit comments