Skip to content

Commit 511be2f

Browse files
committed
chore: remove more deprecations
1 parent 40b1475 commit 511be2f

File tree

4 files changed

+64
-39
lines changed

4 files changed

+64
-39
lines changed

Project.toml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ Reexport = "189a3867-3050-52da-a836-e630ba90ab69"
2626
SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462"
2727
SciMLJacobianOperators = "19f34311-ddf3-4b8b-af20-060888a46c0e"
2828
SciMLOperators = "c0aeaf25-5076-4817-a8d5-81caf7dfa961"
29-
Setfield = "efcf1570-3423-57d1-acb7-fd33fddbac46"
3029
SimpleNonlinearSolve = "727e6d20-b764-4bd8-a329-72de5adea6c7"
3130
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
3231
SparseConnectivityTracer = "9f842d2f-2579-4b1d-911e-f412cf18a3f5"
@@ -104,8 +103,7 @@ SIAMFANLEquations = "1.0.1"
104103
SciMLBase = "2.54.0"
105104
SciMLJacobianOperators = "0.1"
106105
SciMLOperators = "0.3.10"
107-
Setfield = "1.1.1"
108-
SimpleNonlinearSolve = "1.12.3"
106+
SimpleNonlinearSolve = "2"
109107
SparseArrays = "1.10"
110108
SparseConnectivityTracer = "0.6.5"
111109
SparseMatrixColorings = "0.4.2"

src/NonlinearSolve.jl

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
module NonlinearSolve
22

3-
if isdefined(Base, :Experimental) && isdefined(Base.Experimental, Symbol("@max_methods"))
4-
@eval Base.Experimental.@max_methods 1
5-
end
6-
73
using Reexport: @reexport
84
using PrecompileTools: @compile_workload, @setup_workload
95

@@ -23,7 +19,7 @@ using LinearAlgebra: LinearAlgebra, ColumnNorm, Diagonal, I, LowerTriangular, Sy
2319
UpperTriangular, axpy!, cond, diag, diagind, dot, issuccess, istril,
2420
istriu, lu, mul!, norm, pinv, tril!, triu!
2521
using LineSearch: LineSearch, AbstractLineSearchAlgorithm, AbstractLineSearchCache,
26-
NoLineSearch, RobustNonMonotoneLineSearch, BackTracking
22+
NoLineSearch, RobustNonMonotoneLineSearch, BackTracking, LineSearchesJL
2723
using LinearSolve: LinearSolve, LUFactorization, QRFactorization,
2824
needs_concrete_A, AbstractFactorization,
2925
DefaultAlgorithmChoice, DefaultLinearSolver
@@ -34,7 +30,6 @@ using RecursiveArrayTools: recursivecopy!
3430
using SciMLBase: AbstractNonlinearAlgorithm, AbstractNonlinearProblem, _unwrap_val,
3531
isinplace, NLStats
3632
using SciMLOperators: AbstractSciMLOperator
37-
using Setfield: @set!
3833
using StaticArraysCore: StaticArray, SVector, SArray, MArray, Size, SMatrix
3934
using SymbolicIndexingInterface: SymbolicIndexingInterface, ParameterIndexingProxy,
4035
symbolic_container, parameter_values, state_values, getu,
@@ -44,8 +39,6 @@ using SymbolicIndexingInterface: SymbolicIndexingInterface, ParameterIndexingPro
4439
using ADTypes: ADTypes, AbstractADType, AutoFiniteDiff, AutoForwardDiff,
4540
AutoPolyesterForwardDiff, AutoZygote, AutoEnzyme, AutoSparse,
4641
NoSparsityDetector, KnownJacobianSparsityDetector
47-
using ADTypes: AutoSparseFiniteDiff, AutoSparseForwardDiff, AutoSparsePolyesterForwardDiff,
48-
AutoSparseZygote # FIXME: deprecated, remove in future
4942
using DifferentiationInterface: DifferentiationInterface, Constant
5043
using FiniteDiff: FiniteDiff
5144
using ForwardDiff: ForwardDiff, Dual
@@ -114,11 +107,20 @@ include("default.jl")
114107
push!(probs_nls, NonlinearProblem(fn, u0, 2.0))
115108
end
116109

117-
nls_algs = (NewtonRaphson(), TrustRegion(), LevenbergMarquardt(),
118-
PseudoTransient(), Broyden(), Klement(), DFSane(), nothing)
110+
nls_algs = (
111+
NewtonRaphson(),
112+
TrustRegion(),
113+
LevenbergMarquardt(),
114+
# PseudoTransient(),
115+
Broyden(),
116+
Klement(),
117+
# DFSane(),
118+
nothing
119+
)
119120

120121
probs_nlls = NonlinearLeastSquaresProblem[]
121-
nlfuncs = ((NonlinearFunction{false}((u, p) -> (u .^ 2 .- p)[1:1]), [0.1, 0.0]),
122+
nlfuncs = (
123+
(NonlinearFunction{false}((u, p) -> (u .^ 2 .- p)[1:1]), [0.1, 0.0]),
122124
(NonlinearFunction{false}((u, p) -> vcat(u .* u .- p, u .* u .- p)), [0.1, 0.1]),
123125
(
124126
NonlinearFunction{true}(
@@ -127,15 +129,22 @@ include("default.jl")
127129
(
128130
NonlinearFunction{true}((du, u, p) -> du .= vcat(u .* u .- p, u .* u .- p),
129131
resid_prototype = zeros(4)),
130-
[0.1, 0.1]))
132+
[0.1, 0.1]
133+
)
134+
)
131135
for (fn, u0) in nlfuncs
132136
push!(probs_nlls, NonlinearLeastSquaresProblem(fn, u0, 2.0))
133137
end
134138

135-
nlls_algs = (LevenbergMarquardt(), GaussNewton(), TrustRegion(),
136-
LevenbergMarquardt(; linsolve = LUFactorization()),
137-
GaussNewton(; linsolve = LUFactorization()),
138-
TrustRegion(; linsolve = LUFactorization()), nothing)
139+
nlls_algs = (
140+
LevenbergMarquardt(),
141+
GaussNewton(),
142+
TrustRegion(),
143+
# LevenbergMarquardt(; linsolve = LUFactorization()),
144+
# GaussNewton(; linsolve = LUFactorization()),
145+
# TrustRegion(; linsolve = LUFactorization()),
146+
nothing
147+
)
139148

140149
@compile_workload begin
141150
@sync begin
@@ -177,7 +186,7 @@ export LineSearch, BackTracking, NoLineSearch, RobustNonMonotoneLineSearch, Line
177186
## Trust Region Algorithms
178187
export RadiusUpdateSchemes
179188

180-
# Export the termination conditions from DiffEqBase
189+
# Export the termination conditions from NonlinearSolveBase
181190
export SteadyStateDiffEqTerminationMode, SimpleNonlinearSolveTerminationMode,
182191
NormTerminationMode, RelTerminationMode, RelNormTerminationMode, AbsTerminationMode,
183192
AbsNormTerminationMode, RelSafeTerminationMode, AbsSafeTerminationMode,
@@ -189,8 +198,5 @@ export TraceAll, TraceMinimal, TraceWithJacobianConditionNumber
189198
# Reexport ADTypes
190199
export AutoFiniteDiff, AutoForwardDiff, AutoPolyesterForwardDiff, AutoZygote, AutoEnzyme,
191200
AutoSparse
192-
# FIXME: deprecated, remove in future
193-
export AutoSparseFiniteDiff, AutoSparseForwardDiff, AutoSparsePolyesterForwardDiff,
194-
AutoSparseZygote
195201

196-
end # module
202+
end

test/core/nlls_tests.jl

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22
using Reexport
33
@reexport using NonlinearSolve, LinearSolve, LinearAlgebra, StableRNGs, Random, ForwardDiff,
44
Zygote
5+
using LineSearches: LineSearches, Static, HagerZhang, MoreThuente, StrongWolfe
6+
7+
linesearches = []
8+
for ls in (Static(), HagerZhang(), MoreThuente(), StrongWolfe(), LineSearches.BackTracking())
9+
push!(linesearches, LineSearchesJL(; method = ls))
10+
end
11+
push!(linesearches, BackTracking())
512

613
true_function(x, θ) = @. θ[1] * exp(θ[2] * x) * cos(θ[3] * x + θ[4])
714
true_function(y, x, θ) = (@. y = θ[1] * exp(θ[2] * x) * cos(θ[3] * x + θ[4]))
@@ -29,8 +36,7 @@ solvers = []
2936
for linsolve in [nothing, LUFactorization(), KrylovJL_GMRES(), KrylovJL_LSMR()]
3037
vjp_autodiffs = linsolve isa KrylovJL ? [nothing, AutoZygote(), AutoFiniteDiff()] :
3138
[nothing]
32-
for linesearch in [Static(), BackTracking(), HagerZhang(), StrongWolfe(), MoreThuente()],
33-
vjp_autodiff in vjp_autodiffs
39+
for linesearch in linesearches, vjp_autodiff in vjp_autodiffs
3440

3541
push!(solvers, GaussNewton(; linsolve, linesearch, vjp_autodiff))
3642
end

test/core/rootfind_tests.jl

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using Reexport
33
@reexport using BenchmarkTools, LinearSolve, NonlinearSolve, StaticArrays, Random,
44
LinearAlgebra, ForwardDiff, Zygote, Enzyme, DiffEqBase
5+
using LineSearches: LineSearches
56

67
_nameof(x) = applicable(nameof, x) ? nameof(x) : _nameof(typeof(x))
78

@@ -46,8 +47,19 @@ function nlprob_iterator_interface(f, p_range, ::Val{iip}, solver) where {iip}
4647
return sols
4748
end
4849

50+
for alg in (:Static, :StrongWolfe, :BackTracking, :MoreThuente, :HagerZhang)
51+
algname = Symbol(:LineSearches, alg)
52+
@eval function $(algname)(args...; autodiff = nothing, initial_alpha = true, kwargs...)
53+
return LineSearch.LineSearchesJL(;
54+
method = LineSearches.$(alg)(args...; kwargs...), autodiff, initial_alpha)
55+
end
56+
end
57+
4958
export nlprob_iterator_interface, benchmark_nlsolve_oop, benchmark_nlsolve_iip,
5059
TERMINATION_CONDITIONS, _nameof, newton_fails, quadratic_f, quadratic_f!
60+
export LineSearchesStatic, LineSearchesStrongWolfe, LineSearchesBackTracking,
61+
LineSearchesMoreThuente, LineSearchesHagerZhang
62+
5163
end
5264

5365
# --- NewtonRaphson tests ---
@@ -57,9 +69,10 @@ end
5769
AutoForwardDiff(), AutoZygote(), AutoFiniteDiff()
5870
),
5971
linesearch in (
60-
Static(; autodiff = ad), StrongWolfe(; autodiff = ad),
61-
BackTracking(; autodiff = ad), LineSearch.BackTracking(; autodiff = ad),
62-
HagerZhang(; autodiff = ad), MoreThuente(; autodiff = ad)
72+
LineSearchesStatic(; autodiff = ad), LineSearchesStrongWolfe(; autodiff = ad),
73+
LineSearchesBackTracking(; autodiff = ad), BackTracking(; autodiff = ad),
74+
LineSearchesHagerZhang(; autodiff = ad),
75+
LineSearchesMoreThuente(; autodiff = ad)
6376
)
6477

6578
u0s = ([1.0, 1.0], @SVector[1.0, 1.0], 1.0)
@@ -471,9 +484,10 @@ end
471484
AutoForwardDiff(), AutoZygote(), AutoFiniteDiff()
472485
),
473486
linesearch in (
474-
Static(; autodiff = ad), StrongWolfe(; autodiff = ad),
475-
BackTracking(; autodiff = ad), LineSearch.BackTracking(; autodiff = ad),
476-
HagerZhang(; autodiff = ad), MoreThuente(; autodiff = ad)
487+
LineSearchesStatic(; autodiff = ad), LineSearchesStrongWolfe(; autodiff = ad),
488+
LineSearchesBackTracking(; autodiff = ad), BackTracking(; autodiff = ad),
489+
LineSearchesHagerZhang(; autodiff = ad),
490+
LineSearchesMoreThuente(; autodiff = ad)
477491
),
478492
init_jacobian in (Val(:identity), Val(:true_jacobian)),
479493
update_rule in (Val(:good_broyden), Val(:bad_broyden), Val(:diagonal))
@@ -524,9 +538,10 @@ end
524538
AutoForwardDiff(), AutoZygote(), AutoFiniteDiff()
525539
),
526540
linesearch in (
527-
Static(; autodiff = ad), StrongWolfe(; autodiff = ad),
528-
BackTracking(; autodiff = ad), LineSearch.BackTracking(; autodiff = ad),
529-
HagerZhang(; autodiff = ad), MoreThuente(; autodiff = ad)
541+
LineSearchesStatic(; autodiff = ad), LineSearchesStrongWolfe(; autodiff = ad),
542+
LineSearchesBackTracking(; autodiff = ad), BackTracking(; autodiff = ad),
543+
LineSearchesHagerZhang(; autodiff = ad),
544+
LineSearchesMoreThuente(; autodiff = ad)
530545
),
531546
init_jacobian in (Val(:identity), Val(:true_jacobian), Val(:true_jacobian_diagonal))
532547

@@ -577,10 +592,10 @@ end
577592
AutoForwardDiff(), AutoZygote(), AutoFiniteDiff()
578593
),
579594
linesearch in (
580-
Static(; autodiff = ad), StrongWolfe(; autodiff = ad),
581-
BackTracking(; autodiff = ad), LineSearch.BackTracking(; autodiff = ad),
582-
HagerZhang(; autodiff = ad), MoreThuente(; autodiff = ad),
583-
LiFukushimaLineSearch()
595+
LineSearchesStatic(; autodiff = ad), LineSearchesStrongWolfe(; autodiff = ad),
596+
LineSearchesBackTracking(; autodiff = ad), BackTracking(; autodiff = ad),
597+
LineSearchesHagerZhang(; autodiff = ad),
598+
LineSearchesMoreThuente(; autodiff = ad), LiFukushimaLineSearch()
584599
)
585600

586601
u0s = ([1.0, 1.0], @SVector[1.0, 1.0], 1.0)

0 commit comments

Comments
 (0)