Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
338 commits
Select commit Hold shift + click to select a range
07b8926
NLS cleanup
mateuszbaran Feb 11, 2026
120689f
Carefully revise the docs and fix a few typos; reintroduce penalty wh…
kellertuer Feb 12, 2026
8d7003a
introduced penalty once too much
kellertuer Feb 12, 2026
b1714b1
fix normal_vector_field!, add a nicer show
mateuszbaran Feb 12, 2026
9d4150b
another one line fix; one more show method
mateuszbaran Feb 12, 2026
c38dd81
Simplified surrogate implementation for comparison
mateuszbaran Feb 12, 2026
10797e5
improve naming
kellertuer Feb 12, 2026
4b9c134
Merge branch 'kt-mb/modified-LM' of github.com:JuliaManifolds/Manopt.…
kellertuer Feb 12, 2026
46ac587
Fix a few small things and run formatter.
kellertuer Feb 13, 2026
c9ae429
relax warnings about model worsening
mateuszbaran Feb 13, 2026
1a817da
add one parameter to LevenbergMarquardt!
mateuszbaran Feb 13, 2026
4faf6fb
A few minor tweaks, mainly in fixing code comments.
kellertuer Feb 17, 2026
9238e6a
improve the implementation of Huber loss; fix the median example
mateuszbaran Feb 18, 2026
ebed495
remove debug output
mateuszbaran Feb 18, 2026
041c378
Reactivate the remaining tests on Rn as well
kellertuer Feb 18, 2026
da0e4ed
Check with Rotations, I am convinced this works now. \o/
kellertuer Feb 19, 2026
e91b716
Fix a typo.
kellertuer Feb 19, 2026
a4cc282
Refactor robustifiers to their own file, add a ComponentwiseRobustifier
kellertuer Feb 19, 2026
17e3988
add special methods that perform the robustification componentwise
kellertuer Feb 19, 2026
18555df
Change the constructors accoredingly, that a single vgf is always com…
kellertuer Feb 19, 2026
3c0a219
add the componentwise test to the Rotations median.
kellertuer Feb 19, 2026
fb2c727
Fix 2 bugs that improve (though maybe not fully fix) the CGRes variant.
kellertuer Feb 19, 2026
8a25710
Fix the cost to the new componenwise scheme as well. Add benchmark fo…
kellertuer Feb 19, 2026
dd4e169
performance optimization
mateuszbaran Feb 19, 2026
c2e8d84
add a TODO
mateuszbaran Feb 19, 2026
2f8d323
make things faster
mateuszbaran Feb 19, 2026
c65e3c3
a few more speedups
mateuszbaran Feb 19, 2026
c015ac4
Revert "make things faster"
mateuszbaran Feb 19, 2026
5571872
re-apply temporarily reverted optimizations after re-checking
mateuszbaran Feb 19, 2026
28458ae
add WIP test for LM
mateuszbaran Feb 19, 2026
7579997
restore one more speedup with a fix
mateuszbaran Feb 19, 2026
bca3703
Asking for clarification on what we need for get_gradient. We do have…
kellertuer Feb 20, 2026
ca7ac59
Remove a todo, where the next line already does what I had noted as a…
kellertuer Feb 20, 2026
cdc9d65
fix the gradient implementation to also handle the componenwise case …
kellertuer Feb 20, 2026
09e1ed6
Move dds.dempty_debug to Manopt._EMPTY_DIVIDER
kellertuer Feb 20, 2026
eb4ea63
fix some parts of LM-Jacobian-test-median
mateuszbaran Feb 20, 2026
1eb9d91
Missed to update o to vgf in one case.
kellertuer Feb 20, 2026
06fcb5a
separate gradient and direction in LM
mateuszbaran Feb 20, 2026
304730e
Merge remote-tracking branch 'origin/kt-mb/modified-LM' into kt-mb/mo…
mateuszbaran Feb 20, 2026
8a725f3
finish fixing the median example
mateuszbaran Feb 20, 2026
14f3632
start work on Jacobian caching
mateuszbaran Feb 22, 2026
0a3950a
Add first part of the bundle adjustment example
mateuszbaran Feb 22, 2026
2652d1b
Add a first idea for an experiment on the sphere: Regression. Problem…
kellertuer Feb 23, 2026
ebfe758
add BAL Jacobian and add a few missing `Y_cache` kwargs
mateuszbaran Feb 23, 2026
d483672
add subsampling to the BAL example to get it running in a finite amou…
mateuszbaran Feb 23, 2026
1a18b29
add Jacobian to the regression example
mateuszbaran Feb 23, 2026
e9727e8
fix cost1_grad_X
mateuszbaran Feb 23, 2026
70b5db2
accumulate Jacobian matrix in-place
mateuszbaran Feb 23, 2026
7defa89
Not yet a good example, but something working.
kellertuer Feb 24, 2026
118c127
introduce Jacobian block structure; format files; optimize some parts…
mateuszbaran Feb 24, 2026
244faba
speedup the LM-BAL example
mateuszbaran Feb 24, 2026
b8e7c54
prepare a new test file for robustifiers.
kellertuer Mar 3, 2026
20a8e31
fix examples
mateuszbaran Mar 4, 2026
91e5c41
Implement test cases for all robustifiers
kellertuer Mar 4, 2026
3ae7262
Merge branch 'kt-mb/modified-LM' of github.com:JuliaManifolds/Manopt.…
kellertuer Mar 4, 2026
bd444c4
Fix VGC tests
mateuszbaran Mar 4, 2026
555c126
Fix some issues found by Aqua
mateuszbaran Mar 4, 2026
bbca638
Add a few discussion points and extract the subsolver call into a sep…
kellertuer Mar 5, 2026
f39a7d5
formatter.
kellertuer Mar 5, 2026
efb1596
Fix a few typos and the VGF tests are working again.
kellertuer Mar 5, 2026
aa4e008
Document the change of `get_jacobian` for the NL_LSQ objective.
kellertuer Mar 5, 2026
07e5829
fix LM tests
mateuszbaran Mar 5, 2026
a820223
remove unnecessary stubs.
kellertuer Mar 5, 2026
3723c44
improve linear subsolver handling
mateuszbaran Mar 5, 2026
5a875f1
Merge remote-tracking branch 'origin/kt-mb/modified-LM' into kt-mb/mo…
mateuszbaran Mar 5, 2026
0d308e7
reduce allocations a bit
mateuszbaran Mar 5, 2026
c77a647
remove a few obsolete TODOs
kellertuer Mar 5, 2026
236f4da
work a bit on tests, such that they work again. Set one test to broke…
kellertuer Mar 6, 2026
95489e3
resolve or reword some TODOs
mateuszbaran Mar 6, 2026
47d1ae3
a better solution for too long stepsizes on SPD
mateuszbaran Mar 6, 2026
dc3b5c2
accumulate_ -> add_ (also make it internal); Document two tests
mateuszbaran Mar 6, 2026
5e0af01
There is no need for `get_adjoint_jacobian` (also all tests pass now 🎉)
mateuszbaran Mar 6, 2026
cb87569
speedup the LM-BAL.jl example
mateuszbaran Mar 6, 2026
8c56c51
Try using sparse matrices in LM
mateuszbaran Mar 6, 2026
b5f6d8b
remove temporary test
mateuszbaran Mar 6, 2026
e5a0f7f
relax two tests
mateuszbaran Mar 7, 2026
7ea801c
LM-BAL.jl is finally somewhat fast
mateuszbaran Mar 7, 2026
a003296
WIP: start separating the coordinate-based and operator-based LM subp…
mateuszbaran Mar 7, 2026
e6b372e
more work on the fast coordinate-based LM subsolver (doesn't work yet)
mateuszbaran Mar 10, 2026
28c727c
mostly working and faster coordinate LM subsolver
mateuszbaran Mar 10, 2026
f0024a6
forgot about penalty
mateuszbaran Mar 10, 2026
744b1cb
minor fix, more tests
mateuszbaran Mar 10, 2026
f6cb2e4
fix second derivative of Huber; fix faster coordinate subsolver
mateuszbaran Mar 10, 2026
33a9b5f
one minor fix + more tests
mateuszbaran Mar 10, 2026
7751501
formattiing
mateuszbaran Mar 10, 2026
87cd174
a bugfix and a few speedups
mateuszbaran Mar 11, 2026
3be0fe9
add comments.
kellertuer Mar 12, 2026
499c968
respond to some comments
mateuszbaran Mar 12, 2026
1af8a58
update name, add more tests
mateuszbaran Mar 12, 2026
537930c
split vector_field/linear_operator function
mateuszbaran Mar 12, 2026
188f93b
address one minor issue
mateuszbaran Mar 12, 2026
0d2c124
introduce `residual_count`
mateuszbaran Mar 13, 2026
077cf6b
improve naming
kellertuer Mar 16, 2026
4f141e1
improve docs.
kellertuer Mar 16, 2026
68471d3
fix a few minor name bugs iintroduced with an uncareful search&replace
kellertuer Mar 16, 2026
edf459d
remove more _residual_ names, reorganize code, temporarily make the d…
kellertuer Mar 17, 2026
e883139
document the first approx 600 lines of the new code.
kellertuer Mar 17, 2026
46315e5
Introduce more residuals_count uses
mateuszbaran Mar 17, 2026
791a818
add SparseArrays test dependency
mateuszbaran Mar 17, 2026
028350c
Document get_gradient of the surrogate and improve docs for the adjoi…
kellertuer Mar 18, 2026
e19bb45
start refactor to a NormalEquations wrapper.
kellertuer Mar 18, 2026
9eebec1
Spread our new reference a bit.
kellertuer Mar 18, 2026
e569899
add trust-region like damping decrease to LM
mateuszbaran Mar 18, 2026
9573ae5
use damping reduction in LM-BAL.jl
mateuszbaran Mar 18, 2026
7d57161
Remove expect_zero_residual
mateuszbaran Mar 18, 2026
dd939ca
properly name the sym lin system the NormalEquationsObjective; rework…
kellertuer Mar 19, 2026
d355210
Finish refactoring the normal equations.
kellertuer Mar 19, 2026
868ff60
work through coordinates plan as well and check and update TODOs and …
kellertuer Mar 19, 2026
a0866c7
Fix docs
kellertuer Mar 19, 2026
f9f60eb
Fix documentation again.
kellertuer Mar 19, 2026
390d3fa
address a few comments
mateuszbaran Mar 20, 2026
22cd48d
reorder methods alphabetically
mateuszbaran Mar 20, 2026
070f9c3
add damping upper limit
mateuszbaran Mar 20, 2026
f9b723d
Merge remote-tracking branch 'origin/kt-mb/modified-LM' into kt-mb/mo…
mateuszbaran Mar 20, 2026
2680b89
Merge remote-tracking branch 'origin/master' into kt-mb/modified-LM
mateuszbaran Mar 20, 2026
b7b076e
box support for LM, part 1
mateuszbaran Mar 22, 2026
b760a48
implement GCD with CoordinatesNormalSystemState
mateuszbaran Mar 23, 2026
c3f1684
add some docs
mateuszbaran Mar 23, 2026
87d1210
fix a few bugs in RLM with box constraints; extend the example
mateuszbaran Mar 24, 2026
d356f3d
Make the LM-BAL example faster
mateuszbaran Mar 24, 2026
4f6f108
optimize intrinsic camera parameters too
mateuszbaran Mar 24, 2026
91d103c
fix references, fake more docs.
kellertuer Mar 26, 2026
5f42593
Implement the Hessian of \mu_k the penalized surrogate.
kellertuer Mar 26, 2026
1589dd4
a test with LinearSolve
mateuszbaran Mar 27, 2026
60bc411
align RLM control a bit closer to Fan's paper
mateuszbaran Apr 1, 2026
5956fc9
Merge branch 'dev-0.6' into kt-mb/modified-LM
kellertuer Apr 8, 2026
92fe70b
Name refactor I: The state
kellertuer Apr 8, 2026
64512cb
fix a few first small bugs of the renamed / restructured method.
kellertuer Apr 8, 2026
d51fe3c
Fix a few typos.
kellertuer Apr 8, 2026
332ec2e
adapt BAL and regression to the new naming
kellertuer Apr 8, 2026
a3d3142
Make the regression example work, even with noise _and_ outliers.
kellertuer Apr 8, 2026
ded6cb7
Fix docs.
kellertuer Apr 9, 2026
718fe76
fix a literature citation.
kellertuer Apr 9, 2026
9c8447c
Improve code for the example.
kellertuer Apr 10, 2026
b05805b
First export working.
kellertuer Apr 10, 2026
fa39fbf
update example to match the paper version.
kellertuer Apr 15, 2026
f5d9440
Run formatter.
kellertuer Apr 27, 2026
d518eac
Merge branch 'dev-0.6' into kt-mb/modified-LM
mateuszbaran May 15, 2026
ea5ad33
fix a capitalization error in ARC solver.
kellertuer May 15, 2026
7188077
Fix a renaming that only became partial after last merge.
kellertuer May 15, 2026
a73c124
expand changelog, update a bit of renaming
mateuszbaran May 15, 2026
ec3f90b
Remove terms now stated in LBFGS-B from the temp in LM
kellertuer May 18, 2026
1f93b1d
Fix tests to the new State constructor, remove Hyperrectangle test un…
kellertuer May 18, 2026
ae96647
The NLSO does not have a Jacobian, since it is the overall function f…
kellertuer May 18, 2026
ef5e650
adapt show/status_summary to the new scheme.
kellertuer May 18, 2026
15545a3
Document keywords os the LM Solver state, start updating keywords of LM.
kellertuer May 18, 2026
75fa775
further rework, test already do no longer error.
kellertuer May 18, 2026
1c9f3fe
add the specific docs for different cases.
kellertuer May 18, 2026
0088556
fix some typos add a naming proposal.
kellertuer May 18, 2026
1897a2a
Introduce speaking names for epsilon (now `(scaling_)threshold` and a…
kellertuer May 19, 2026
60aaf04
run typos.
kellertuer May 19, 2026
94be88a
Fix one replacement bug and run runic.
kellertuer May 19, 2026
41e2c87
Finish renaming so tests are working again.
kellertuer May 19, 2026
11477a9
Finish documenting all keywords.
kellertuer May 19, 2026
aeacaf3
fix a detail.
kellertuer May 19, 2026
726d9c9
rename arguments in examples
mateuszbaran May 19, 2026
ec45d87
Update the sphere regression example.
kellertuer May 19, 2026
642d5df
Merge branch 'kt-mb/modified-LM' of github.com:JuliaManifolds/Manopt.…
kellertuer May 19, 2026
dc9463a
improve the sphere regression example
mateuszbaran May 19, 2026
1331ddd
assymmetric outliers for a better p0, remove Gaussian noise.
kellertuer May 19, 2026
e7e5685
fix box constraint handling
mateuszbaran May 21, 2026
c87e817
Start setup for robust procrustes.
kellertuer May 27, 2026
56b0df2
Start an approach where the derivative information of a gradient func…
kellertuer Jun 3, 2026
887d936
Refactor to its own VectorDifferentialFunction that is able to store …
kellertuer Jun 3, 2026
dea9fac
Unify VectorGradientF and VectorDiffF with a common supertype... in p…
kellertuer Jun 3, 2026
271d20d
First Procrustes variant working.
kellertuer Jun 3, 2026
aa2819e
rephrase the SOn examples and add proper benchmark, Start Grassmann, …
kellertuer Jun 4, 2026
8aaf9fb
robust Procrustes w/ Grassmann and Stiefel works.
kellertuer Jun 4, 2026
169729a
Fix Gr to LTMADS as well since we have an ONB now; Write export for S…
kellertuer Jun 5, 2026
d1b4613
Adapt Gr to the same setup as SO
kellertuer Jun 5, 2026
d529b8d
Setup the final Grassmann or Stiefel experiment
kellertuer Jun 5, 2026
16e72b3
add separate Stiefel experiment
kellertuer Jun 6, 2026
8b46184
Merge branch 'dev-0.6' into kt-mb/modified-LM
kellertuer Jun 8, 2026
533edf2
Merge branch 'dev-0.6' into kt-mb/modified-LM
kellertuer Jun 9, 2026
2fd0fa1
Improve documentation to that it renders again.
kellertuer Jun 9, 2026
73b5981
Merge branch 'dev-0.6' into kt-mb/modified-LM
kellertuer Jun 9, 2026
338dc00
Runic-ify code – start testing VDF.
kellertuer Jun 11, 2026
dbedef6
add get_jacobian tests and tests for the new VectorDiff function
kellertuer Jun 11, 2026
f2e14ee
test adjoint jacobian.
kellertuer Jun 11, 2026
d25f78c
test show/repr
kellertuer Jun 11, 2026
3c96b1c
Restart LM tests (keepp the old ones on the side for a while) – redo …
kellertuer Jun 12, 2026
fc028eb
add one more test on the input.
kellertuer Jun 12, 2026
8787d53
Fix 2 typos.
kellertuer Jun 12, 2026
94ddbec
fix a typo.
kellertuer Jun 12, 2026
67d630a
Test one further constructor.
kellertuer Jun 12, 2026
973edb7
fix a few minor bugs and add both a componentwise robustification and…
kellertuer Jun 13, 2026
6dde754
Move two test blocks to the new simplified regression.
kellertuer Jun 13, 2026
2955e35
add a few comments, test further accessors.
kellertuer Jun 13, 2026
5454fea
first attempt at comparing constrained BAL with scipy solver
mateuszbaran Jun 13, 2026
2944870
add a test for inplace variants.
kellertuer Jun 14, 2026
17c19cb
Merge branch 'kt-mb/modified-LM' of github.com:JuliaManifolds/Manopt.…
kellertuer Jun 14, 2026
01d5f39
Add tests for all highlevel interfaces besides the unified basis one.
kellertuer Jun 14, 2026
a3655d6
Split jacobian_f into the JF jacobian _function_ and jacobian_matrice…
kellertuer Jun 15, 2026
b334db1
Formatting.
kellertuer Jun 15, 2026
9ce0b14
Fix a typo.
kellertuer Jun 15, 2026
7d9bc62
Merge branch 'dev-0.6' into kt-mb/modified-LM
kellertuer Jun 15, 2026
b7ef72e
Clarify / extend doc string around the unified_basis.
kellertuer Jun 15, 2026
aeaf30f
Since we call solve directly on the internal state (now line 73) we d…
kellertuer Jun 15, 2026
fc4e31d
Fix a bug where we missed to rename a function.
kellertuer Jun 15, 2026
7d608ba
add tests for gradient and Hessian of the LM linear surrogate.
kellertuer Jun 16, 2026
552bdce
Test normal vector fieldd and operator access.
kellertuer Jun 16, 2026
0baef21
Add a few more tests, fix a few get/add things.
kellertuer Jun 16, 2026
942e2ef
Fix normal operator accessors.
kellertuer Jun 16, 2026
e69ea92
Test NormalEquationObjective wrapper.
kellertuer Jun 16, 2026
215568a
test a few cache cases and decorator objectives.
kellertuer Jun 16, 2026
80bcb4e
add rest of tests vor vector fields in the usual setting.
kellertuer Jun 16, 2026
bf8ef16
give less code to the allocating variant so it does not need extra te…
kellertuer Jun 16, 2026
02b2f4f
remove two methods that are already provided just with a typed inplac…
kellertuer Jun 16, 2026
29a6d4d
Remove legacy test code and resolve / recheck all TODOs
kellertuer Jun 16, 2026
4c5aef8
Update SO(d) and St(d,k) to use a random matrix as ground truth start…
kellertuer Jun 16, 2026
5261569
Add a human-readable status_summary for the NormalEquationObjective.
kellertuer Jun 16, 2026
b00dc15
use better settings for the Procrustes SOd example
mateuszbaran Jun 16, 2026
2376812
also change the St experiment to strict mode.
kellertuer Jun 17, 2026
f2aaf03
Fix typos.
kellertuer Jun 17, 2026
b52e4d7
Finalize docs.
kellertuer Jun 17, 2026
95c42e2
Fix a typo.
kellertuer Jun 17, 2026
8ab059b
Remove the paper examples that are now with the paper.
kellertuer Jun 17, 2026
8abc723
Remove further experimental / exploring examples.
kellertuer Jun 17, 2026
a5572c0
move LM-BAL to the other repository
mateuszbaran Jun 19, 2026
b30abe9
Remove two further temp files.
kellertuer Jun 19, 2026
da0ca0f
Bump actions/checkout from 6 to 7 (#616)
dependabot[bot] Jun 21, 2026
f3d58a9
Update the new reference for robust LM
kellertuer Jun 23, 2026
9b265e1
Update changelog.
kellertuer Jun 23, 2026
0f72f7a
Run runic.
kellertuer Jun 23, 2026
309c45f
Fix several links.
kellertuer Jun 23, 2026
443ae23
fix diagind on older Julia
mateuszbaran Jun 23, 2026
e6d9d8b
Merge remote-tracking branch 'origin/master' into kt-mb/modified-LM
mateuszbaran Jun 23, 2026
cc6e557
Merge remote-tracking branch 'origin/kt-mb/modified-LM' into kt-mb/mo…
mateuszbaran Jun 23, 2026
63edbb3
Fix a reference in a tutorial.
kellertuer Jun 23, 2026
0eb3436
Runs runic.
kellertuer Jun 23, 2026
d67a941
fix for Julia 1.10
mateuszbaran Jun 23, 2026
df52be6
Merge remote-tracking branch 'origin/kt-mb/modified-LM' into kt-mb/mo…
mateuszbaran Jun 23, 2026
dfb7b66
Update src/Manopt.jl
mateuszbaran Jun 23, 2026
f20d86c
Jacobian block tool doesn't belong in Manopt.jl
mateuszbaran Jun 23, 2026
9c28e23
Fix docs.
kellertuer Jun 23, 2026
4dc9364
remove export.
kellertuer Jun 23, 2026
3631179
codecov ++
kellertuer Jun 23, 2026
3e0aaa3
Add access tests for the TpM case of slso.
kellertuer Jun 23, 2026
9a171d1
Test a new status summary.
kellertuer Jun 23, 2026
830269b
test full Jacobian access.
kellertuer Jun 23, 2026
aeedccb
Further access functions.
kellertuer Jun 23, 2026
2aedfb2
Fix the final case of code coverage.
kellertuer Jun 23, 2026
569a69c
Apply suggestions from code review
kellertuer Jun 24, 2026
920ea2f
Adress points from code review.
kellertuer Jun 24, 2026
fe4f28a
Merge branch 'kt-mb/modified-LM' of github.com:JuliaManifolds/Manopt.…
kellertuer Jun 24, 2026
16d8440
Change the mode default in 3 further places (i forgot to save in edit…
kellertuer Jun 24, 2026
3c5bbb2
Revert to :Default being the default mode.
kellertuer Jun 24, 2026
e7fefcd
In the scaling modes of LM: Change the name of :Default to :Normal an…
kellertuer Jun 24, 2026
e62cd48
add a test for scaling mode
mateuszbaran Jun 24, 2026
2a99c45
this should test
mateuszbaran Jun 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
julia-version: ["lts", "1"]
os: [ubuntu-latest, macOS-latest, windows-latest]
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- uses: julia-actions/setup-julia@v3
with:
version: ${{ matrix.julia-version }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/clear_preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout gh-pages branch
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
ref: gh-pages
- name: Delete preview and history + push changes
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/documenter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
name: Documentation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- uses: quarto-dev/quarto-actions/setup@v2
with:
version: "1.7.29"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
issues: write
pull-requests: write
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
# - uses: julia-actions/setup-julia@v2
# with:
# version: '1'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
julia-version: ["pre"]
os: [ubuntu-latest, macOS-latest, windows-latest]
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- uses: julia-actions/setup-julia@v3
with:
version: ${{ matrix.julia-version }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/spell_check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Actions Repository
uses: actions/checkout@v6
uses: actions/checkout@v7
- name: Check spelling
uses: crate-ci/typos@v1.47.0
24 changes: 19 additions & 5 deletions Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [0.6.0] unreleased

This is a breaking change since the JuMP extension is dropped.
We also unified a few of the internal solver state constructors.

### Added

* `nonpositive_curvature_behavior` for `QuasiNewtonLimitedMemoryDirectionUpdate` that determines how transported (y, s) vector pairs are treated after transport; if their inner product gets too low, it may lead to non-positive-definite Hessians which needs to be avoided. This resolves issue #549. (#554)
* A robustified version of the [Riemannian Levenberg Marquardt algorithm](https://manoptjl.org/stable/solvers/LevenbergMarquardt/) (#617)
* An option to disable the warm start the conjugate residual currently does when used as a subsolver.
* `nonpositive_curvature_behavior` for `QuasiNewtonLimitedMemoryDirectionUpdate` that determines how transported (y, s) vector pairs are treated after transport; if their inner product gets too low, it may lead to non-positive-definite Hessians which needs to be avoided. This resolves issue (#549). (#554)
* `GeneralizedCauchyDirectionSubsolver` for handling direction selection in the presence of box (`Hyperrectangle`) constraints in quasi-Newton methods. This allows for L-BFGS-B-style box constraint handling. (#554)
* New stopping criteria: `StopWhenRelativeAPosterioriCostChangeLessOrEqual` and `StopWhenProjectedNegativeGradientNormLess`. (#554).
* `HagerZhangLinesearch` stepsize, a state-of-the-art line search for smooth objectives with cubic interpolation and adaptive Wolfe condition checking. (#554)
* Stopping criteria can now be initialized using `initialize_stepsize!`, similar to solvers. (#554)
* The `ConjugateResidualState` now has a `warm_start=` option when used multiple times, for example in every iteration as a subsolver, to reuse the last state from the previous run.

### Changed

* In the [Riemannian Levenberg Marquardt algorithm](https://manoptjl.org/stable/solvers/LevenbergMarquardt/)t the `η` parameter has been renamed to `candidate_acceptance_threshold`, `β` to `damping_increase_factor` and `β_reduction` to `damping_reduction_factor`. (#617)
* the constructor for the [Levenberg-Marquardt state](https://manoptjl.org/stable/solvers/LevenbergMarquardt/#Manopt.LevenbergMarquardtState) has been unified with the remaining states, to take the `sub_problem` and `sub_state` arguments as second and third positional arguments, respectively. (#617)
* the keyword `initial_jacobian_f` within `LevenbergMarquardt` is unified in naming to the residual values vector and called `initial_jacobian_matrices`. If you call `LevenbergMarquardt` with a single vector component, also a single matrix is allowed. (#617)
* an internal field of the solver state of Levenberg-Marqwuardt was called `jacobian_f` the same as the functions whose result it meant to cache if applicable. To distinguish both, the field is now called `jacobian_matrices`. (#617)
* the `max_stepsize(M)` on the [`SymmetricPositiveDefinite`](https://juliamanifolds.github.io/Manifolds.jl/stable/manifolds/symmetricpositivedefinite/) manifold was changed from returning `Inf`, which is the mathematical maximal stepsize to returning the square root of the maximum (floating point) value to avoid numerical instabilities.
* title of "How to define the cost in the embedding" tutorial (#615)

### Fixed
Expand All @@ -36,8 +45,9 @@ This is a breaking change since the JuMP extension is dropped.
### Removed

* The extension to JuMP. A replacement as a separate package is planned when the support for variables beyond vectors is more accessible in JuMP
* the plotting functions to `Asymptote`. They can now be found in the separate package [`ManifoldAsymptote.jl`]()
* the plotting functions to `Asymptote`. They can now be found in the separate package [`ManifoldAsymptote.jl`](https://github.com/JuliaManifolds/ManifoldAsymptote.jl)
this way, `Manopt.jl` has less dependencies, especially the color and colorschemes dependencies are dropped
* `linear_subsolver! = ` was removed from the [`LevenbergMarquardt`](https://manoptjl.org/stable/solvers/LevenbergMarquardt/) solver interface, since it is imprecise. If you use a closed form solver before, specify it by passing the function to `sub_problem` and set `sub_state` to the corresponding evaluation type

## [0.5.39] June 3, 2026

Expand Down Expand Up @@ -92,11 +102,15 @@ This is a breaking change since the JuMP extension is dropped.
### Changed

* `NonlinearLeastSquaresObjective` is now called `ManifoldNonlinearLeastSquaresObjective` (#569).
* This is a breaking release in order to move a few parts to a unified naming and since we
discontinue the `JuMP` extension. (#532)
* (breaking) discontinue the `JuMP` extension. (#532)
* Improved formatting of the references in the Readme.md (#586)
* Bump compat for RecursiveArrayTools.jl to include version 4
* deactivate CompatHelper Action and solely use dependabot
* (breaking change) renamed `CoordinateVectorialType` to `CoefficientVectorialType` to have a
consistent naming that anything with respect to a basis is called “coefficients”
* moved the old closed-form-in-coordinates subsolver for `LevenbergMarquardt` handling to the subsolver; if you implemented your own, pass it to `sub_problem`,
set the `sub_state` to indicate allocating or in-place evaluation and change the signature as documented; make especially sure to return a tangent vector now and not coordinates.
* (breaking change) `expect_zero_residual` in `LevenbergMarquardt` is replaced by more general `damping_reduction_threshold` and `β_reduction`. To recover the behavior of `expect_zero_residual=true`, set `damping_reduction_threshold` to the same value as `η` and `β_reduction` to `β`.

### Fixed

Expand Down Expand Up @@ -258,7 +272,7 @@ so a constant initial guess is recommended here. The initial guess may be refact
* a `gradient=` keyword in several `Stepsize`s, such that one can avoid to internally avoid computing the gradient again.
* used the ``gradient=` keyword in
* `alternating_gradient_descent`
* `conjugate_gradient`
* `conjugate_gradient_descent`
* `Frank_Wolfe_method`
* `gradient_descent`
* `interior_point_newton`
Expand Down
2 changes: 0 additions & 2 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ JuMP = "4076af6c-e467-56ae-b986-b466b2749572"
LRUCache = "8ac3fa9e-de4c-5943-b1dc-09c6b5f20637"
LineSearches = "d3d80556-e9d4-5f37-9878-2ab0fcc64255"
Manifolds = "1cead3c2-87b3-11e9-0ccd-23c62b72b94e"
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
QuadraticModels = "f468eda6-eac5-11e8-05a5-ff9e497bcd19"
RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd"
RipQP = "1e40b3f8-35eb-4cd8-8edd-3e515bb9de08"
Expand All @@ -48,7 +47,6 @@ ManifoldDiff = "0.3.8, 0.4"
Manifolds = "0.11.2"
ManifoldsBase = "2.3.1"
Markdown = "1.10"
Plots = "1.30"
Preferences = "1.4"
Printf = "1.10"
QuadraticModels = "0.9"
Expand Down
2 changes: 2 additions & 0 deletions _typos.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ methodes = "methodes" # french
Serie = "Serie" # french
sur = "sur" # french
cmo = "cmo" # often used abbreviation for constrained manifold objective
BA = "BA" # Maybe rename that shortened version in the tests
nd = "nd" # like in 2nd

[files]
extend-exclude = [
"tutorials/*.html",
Expand Down
13 changes: 12 additions & 1 deletion docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,18 @@ makedocs(;
"Plans" => [
"Specify a Solver" => "plans/index.md",
"Problem" => "plans/problem.md",
"Objective" => "plans/objective.md",
"Objective" => [
"Introduction" => "plans/objective.md",
"Cost objectvies" => "plans/objectives/cost.md",
"First-order objectives" => "plans/objectives/first_order.md",
"Second-order objectives" => "plans/objectives/second_order.md",
"Constrained objectives" => "plans/objectives/constrained.md",
"Splitting-based objectives" => "plans/objectives/splitting_based.md",
"Subproblem objectives" => "plans/objectives/sub.md",
"Vectorial objectives" => "plans/objectives/vectorial.md",
"Linear Systems" => "plans/objectives/linear_system.md",
"Decorators for objectives" => "plans/objectives/decorated.md",
],
"Solver State" => "plans/state.md",
"Stepsize" => "plans/stepsize.md",
"Stopping Criteria" => "plans/stopping_criteria.md",
Expand Down
8 changes: 6 additions & 2 deletions docs/src/notation.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ with the following additional parts.

| Symbol | Description | Also used | Comment |
|:--:|:--------------- |:--:|:-- |
| ``\operatorname{arg\,min}`` | argument of a function ``f`` where a local or global minimum is attained | |
| ``k`` | the current iterate | ``ì`` | the goal is to unify this to `k` |
| ``\mathbf{a}`` | vectors in Euclidean space | ``\mathbf{b}, \mathbf{c}`` | |
| ``\mathbf{A}`` | a matrix | ``\mathbf{B}, \mathbf{C}`` | |
| ``\mathcal{A}, \mathcal{L}`` | linear operators, usually on tangent spaces | | |
| ``\mathcal{C}`` | a (geodesically) convex set | | |
| ``\operatorname*{arg\,min}_v f(v)`` | argument/variable ``v`` of a function ``f`` where a local or global minimum is attained | |
| ``k`` | the current iterate | ``i`` | the goal is to unify this to `k` |
| ``∇`` | The [Levi-Cevita connection](https://en.wikipedia.org/wiki/Levi-Civita_connection) | | |
Loading
Loading