Skip to content
Draft
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
3153824
Add R2NLS solver for nonlinear least-squares problems
farhadrclass Aug 15, 2025
e0fced6
Comment out problematic finalizer in QRMumpsSolver
farhadrclass Aug 15, 2025
4685881
Remove redundant gradient computation in solve! function
farhadrclass Aug 19, 2025
cac85c4
Remove utilities and Arpack dependencies
farhadrclass Aug 21, 2025
0744484
Add R2NLSParameterSet for parameter management
farhadrclass Aug 22, 2025
1b74e6e
Addign R2N
farhadrclass Oct 2, 2025
cadfc69
Update test_HSL.jl
farhadrclass Oct 2, 2025
fea7e18
Update test_HSL.jl
farhadrclass Oct 2, 2025
23de60c
HSL Test
farhadrclass Oct 3, 2025
028dee2
Update R2N.jl
farhadrclass Oct 10, 2025
4fdc20e
Update R2N.jl
farhadrclass Oct 14, 2025
743c964
R2N_MA97
farhadrclass Oct 14, 2025
21b4284
Update R2N.jl
farhadrclass Oct 15, 2025
f6171d4
Update R2N.jl
farhadrclass Oct 15, 2025
99af7b2
1
farhadrclass Oct 15, 2025
8df722c
first round for MA97
farhadrclass Oct 16, 2025
4948aa0
Add ShiftedOperator and enhance R2N solver logic
farhadrclass Oct 17, 2025
676fc76
Add tests and update R2N solver implementation
farhadrclass Oct 20, 2025
7a5d4c0
Enable and update MA97 solver integration and tests
farhadrclass Oct 22, 2025
83514db
Refactor MA97Solver for efficient value updates
farhadrclass Oct 22, 2025
37ea24b
Update R2N.jl
farhadrclass Oct 22, 2025
9052c46
Add and expand R2N and R2N_exact solver tests
farhadrclass Oct 29, 2025
879d07a
Update R2N.jl
farhadrclass Oct 29, 2025
5eb7380
Refactor subsolver argument to use keyword symbol
farhadrclass Oct 29, 2025
d6d9d4a
Update R2N.jl
farhadrclass Oct 29, 2025
f8b76a4
Refactor MA97Solver to generic HSLDirectSolver, add MA57 support
farhadrclass Nov 3, 2025
d139267
Update test_R2N.jl
farhadrclass Nov 3, 2025
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
14 changes: 13 additions & 1 deletion Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,37 @@ uuid = "10dff2fc-5484-5881-a0e0-c90441020f8a"
version = "0.14.1"

[deps]
Arpack = "7d9fca2a-8960-54d3-9f78-7d1dccf2cb97"
GenericLinearAlgebra = "14197337-ba66-59df-a3e3-ca00e7dcff7a"
Krylov = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
LinearOperators = "5c8ed15e-5a4c-59e4-a42b-c7e8811fb125"
Logging = "56ddb016-857b-54e1-b83d-db4d58db5568"
NLPModels = "a4795742-8479-5a88-8948-cc11e1c8c1a6"
NLPModelsModifiers = "e01155f1-5c6f-4375-a9d8-616dd036575f"
Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7"
QRMumps = "422b30a1-cc69-4d85-abe7-cc07b540c444"
SolverCore = "ff4d7338-4cf1-434d-91df-b86cb86fb843"
SolverParameters = "d076d87d-d1f9-4ea3-a44b-64b4cdd1e470"
SolverTools = "b5612192-2639-5dc1-abfe-fbedd65fab29"
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
SparseMatricesCOO = "fa32481b-f100-4b48-8dc8-c62f61b13870"
TSVD = "9449cd9e-2762-5aa3-a617-5413e99d722e"

[compat]
Krylov = "0.10.0"
Arpack = "0.5.4"
GenericLinearAlgebra = "0.3.18"
Krylov = "0.10.1"
LinearOperators = "2.0"
NLPModels = "0.21"
NLPModelsModifiers = "0.7"
QRMumps = "0.3.1"
SolverCore = "0.3"
SolverParameters = "0.1"
SolverTools = "0.9"
SparseArrays = "1.11.0"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
SparseArrays = "1.11.0"
SparseArrays = "1.10.0"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do we want 1.10?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SparseMatricesCOO = "0.2.5"
TSVD = "0.4.4"
julia = "1.10"

[extras]
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ This package provides an implementation of four classic algorithms for unconstra
> high-order regularized models. *Mathematical Programming*, 163(1), 359-368.
> DOI: [10.1007/s10107-016-1065-8](https://doi.org/10.1007/s10107-016-1065-8)

- `R2NLS`: an inexact second-order quadratic regularization method for nonlinear least-squares problems;

- `fomo`: a first-order method with momentum for unconstrained optimization;

- `tron`: a pure Julia implementation of TRON, a trust-region solver for bound-constrained optimization described in
Expand Down
3 changes: 2 additions & 1 deletion docs/src/solvers.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
| Problem type | Solvers |
| --------------------- | -------- |
| Unconstrained NLP | [`lbfgs`](@ref), [`tron`](@ref), [`trunk`](@ref), [`R2`](@ref), [`fomo`](@ref)|
| Unconstrained NLS | [`trunk`](@ref), [`tron`](@ref) |
| Unconstrained NLS | [`trunk`](@ref), [`tron`](@ref), [`R2NLS`](@ref)|
| Bound-constrained NLP | [`tron`](@ref) |
| Bound-constrained NLS | [`tron`](@ref) |

Expand All @@ -22,5 +22,6 @@ lbfgs
tron
trunk
R2
R2NLS
fomo
```
6 changes: 5 additions & 1 deletion src/JSOSolvers.jl
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
module JSOSolvers

# stdlib
using LinearAlgebra, Logging, Printf
using LinearAlgebra, Logging, Printf, Arpack, SparseArrays

# JSO packages
using Krylov,
Expand All @@ -10,6 +10,8 @@ using Krylov,
import SolverCore.solve!
export solve!

include("utilities.jl")

const Callback_docstring = "
The callback is called at each iteration.
The expected signature of the callback is `callback(nlp, solver, stats)`, and its output is ignored.
Expand Down Expand Up @@ -48,6 +50,8 @@ include("fomo.jl")

# Unconstrained solvers for NLS
include("trunkls.jl")
include("R2NLS.jl")


# List of keywords accepted by TRONTrustRegion
const tron_keys = (
Expand Down
Loading
Loading