Skip to content

Commit edc27f0

Browse files
committed
CI keep the developing scripts
1 parent 0df023f commit edc27f0

11 files changed

+42
-34
lines changed

.github/workflows/CI_BracketingNonlinearSolve.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252
Pkg.Registry.update()
5353
# Install packages present in subdirectories
5454
dev_pks = Pkg.PackageSpec[]
55-
for path in ("lib/SciMLJacobianOperators",)
55+
for path in ("lib/NonlinearSolveBase", "lib/SciMLJacobianOperators")
5656
push!(dev_pks, Pkg.PackageSpec(; path))
5757
end
5858
Pkg.develop(dev_pks)

.github/workflows/CI_NonlinearSolve.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ jobs:
6565
Pkg.Registry.update()
6666
# Install packages present in subdirectories
6767
dev_pks = Pkg.PackageSpec[]
68-
for path in ("lib/SciMLJacobianOperators",)
68+
for path in ("lib/SciMLJacobianOperators", "lib/BracketingNonlinearSolve", "lib/NonlinearSolveBase", "lib/SimpleNonlinearSolve", "lib/NonlinearSolveFirstOrder", "lib/NonlinearSolveSpectralMethods", "lib/NonlinearSolveQuasiNewton")
6969
push!(dev_pks, Pkg.PackageSpec(; path))
7070
end
7171
Pkg.develop(dev_pks)

.github/workflows/CI_NonlinearSolveFirstOrder.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252
Pkg.Registry.update()
5353
# Install packages present in subdirectories
5454
dev_pks = Pkg.PackageSpec[]
55-
for path in ("lib/SciMLJacobianOperators",)
55+
for path in ("lib/SciMLJacobianOperators", "lib/NonlinearSolveBase")
5656
push!(dev_pks, Pkg.PackageSpec(; path))
5757
end
5858
Pkg.develop(dev_pks)

.github/workflows/CI_NonlinearSolveHomotopyContinuation.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,12 @@ jobs:
4949
run: |
5050
import Pkg
5151
Pkg.Registry.update()
52+
# Install packages present in subdirectories
53+
dev_pks = Pkg.PackageSpec[]
54+
for path in ("lib/NonlinearSolveBase",)
55+
push!(dev_pks, Pkg.PackageSpec(; path))
56+
end
57+
Pkg.develop(dev_pks)
5258
Pkg.instantiate()
5359
Pkg.test(; coverage="user")
5460
shell: julia --color=yes --code-coverage=user --depwarn=yes --project=lib/NonlinearSolveHomotopyContinuation {0}

.github/workflows/CI_NonlinearSolveQuasiNewton.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252
Pkg.Registry.update()
5353
# Install packages present in subdirectories
5454
dev_pks = Pkg.PackageSpec[]
55-
for path in ("lib/SciMLJacobianOperators",)
55+
for path in ("lib/SciMLJacobianOperators", "lib/NonlinearSolveBase")
5656
push!(dev_pks, Pkg.PackageSpec(; path))
5757
end
5858
Pkg.develop(dev_pks)

.github/workflows/CI_NonlinearSolveSpectralMethods.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ jobs:
5252
Pkg.Registry.update()
5353
# Install packages present in subdirectories
5454
dev_pks = Pkg.PackageSpec[]
55-
for path in ("lib/SciMLJacobianOperators",)
55+
for path in ("lib/SciMLJacobianOperators", "lib/NonlinearSolveBase")
5656
push!(dev_pks, Pkg.PackageSpec(; path))
5757
end
5858
Pkg.develop(dev_pks)

.github/workflows/CI_SimpleNonlinearSolve.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ jobs:
5757
Pkg.Registry.update()
5858
# Install packages present in subdirectories
5959
dev_pks = Pkg.PackageSpec[]
60-
for path in ("lib/SciMLJacobianOperators",)
60+
for path in ("lib/NonlinearSolveBase", "lib/BracketingNonlinearSolve", "lib/SciMLJacobianOperators")
6161
push!(dev_pks, Pkg.PackageSpec(; path))
6262
end
6363
Pkg.develop(dev_pks)

lib/BracketingNonlinearSolve/src/muller.jl

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ initial guesses `(left, middle, right)` for the root.
88
99
### Keyword Arguments
1010
11-
- `middle`: the initial guess for the middle point. If not provided, the
12-
midpoint of the interval `(left, right)` is used.
11+
- `middle`: the initial guess for the middle point. If not provided, the
12+
midpoint of the interval `(left, right)` is used.
1313
"""
1414
struct Muller{T} <: AbstractBracketingAlgorithm
1515
middle::T
@@ -18,7 +18,7 @@ end
1818
Muller() = Muller(nothing)
1919

2020
function CommonSolve.solve(prob::IntervalNonlinearProblem, alg::Muller, args...;
21-
abstol = nothing, maxiters = 1000, kwargs...)
21+
abstol = nothing, maxiters = 1000, kwargs...)
2222
@assert !SciMLBase.isinplace(prob) "`Muller` only supports out-of-place problems."
2323
xᵢ₋₂, xᵢ = prob.tspan
2424
xᵢ₋₁ = isnothing(alg.middle) ? (xᵢ₋₂ + xᵢ) / 2 : alg.middle
@@ -32,35 +32,35 @@ function CommonSolve.solve(prob::IntervalNonlinearProblem, alg::Muller, args...;
3232
abstol = abs(NonlinearSolveBase.get_tolerance(
3333
xᵢ₋₂, abstol, promote_type(eltype(xᵢ₋₂), eltype(xᵢ))))
3434

35-
for _ 1:maxiters
36-
q = (xᵢ - xᵢ₋₁)/(xᵢ₋₁ - xᵢ₋₂)
37-
A = q*fxᵢ - q*(1 + q)*fxᵢ₋₁ + q^2*fxᵢ₋₂
38-
B = (2*q + 1)*fxᵢ - (1 + q)^2*fxᵢ₋₁ + q^2*fxᵢ₋₂
39-
C = (1 + q)*fxᵢ
35+
for _ in 1:maxiters
36+
q = (xᵢ - xᵢ₋₁) / (xᵢ₋₁ - xᵢ₋₂)
37+
A = q * fxᵢ - q * (1 + q) * fxᵢ₋₁ + q^2 * fxᵢ₋₂
38+
B = (2 * q + 1) * fxᵢ - (1 + q)^2 * fxᵢ₋₁ + q^2 * fxᵢ₋₂
39+
C = (1 + q) * fxᵢ
4040

41-
denom₊ = B + (B^2 - 4*A*C)
42-
denom₋ = B - (B^2 - 4*A*C)
41+
denom₊ = B + (B^2 - 4 * A * C)
42+
denom₋ = B - (B^2 - 4 * A * C)
4343

4444
if abs(denom₊) abs(denom₋)
45-
xᵢ₊₁ = xᵢ - (xᵢ - xᵢ₋₁)*2*C/denom₊
45+
xᵢ₊₁ = xᵢ - (xᵢ - xᵢ₋₁) * 2 * C / denom₊
4646
else
47-
xᵢ₊₁ = xᵢ - (xᵢ - xᵢ₋₁)*2*C/denom₋
47+
xᵢ₊₁ = xᵢ - (xᵢ - xᵢ₋₁) * 2 * C / denom₋
4848
end
4949

5050
fxᵢ₊₁ = f(xᵢ₊₁)
5151

5252
# Termination Check
5353
if abstol abs(fxᵢ₊₁)
5454
return SciMLBase.build_solution(prob, alg, xᵢ₊₁, fxᵢ₊₁;
55-
retcode = ReturnCode.Success,
56-
left = xᵢ₊₁, right = xᵢ₊₁)
55+
retcode = ReturnCode.Success,
56+
left = xᵢ₊₁, right = xᵢ₊₁)
5757
end
5858

5959
xᵢ₋₂, xᵢ₋₁, xᵢ = xᵢ₋₁, xᵢ, xᵢ₊₁
6060
fxᵢ₋₂, fxᵢ₋₁, fxᵢ = fxᵢ₋₁, fxᵢ, fxᵢ₊₁
6161
end
6262

6363
return SciMLBase.build_solution(prob, alg, xᵢ₊₁, fxᵢ₊₁;
64-
retcode = ReturnCode.MaxIters,
65-
left = xᵢ₊₁, right = xᵢ₊₁)
64+
retcode = ReturnCode.MaxIters,
65+
left = xᵢ₊₁, right = xᵢ₊₁)
6666
end

lib/BracketingNonlinearSolve/test/muller_tests.jl

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
@testitem "Muller" begin
22
f(u, p) = u^2 - p
33
g(u, p) = sin(u)
4-
h(u, p) = exp(-u)*sin(u)
4+
h(u, p) = exp(-u) * sin(u)
55
i(u, p) = u^3 - 1
66

77
@testset "Quadratic function" begin
@@ -30,7 +30,7 @@
3030
prob = IntervalNonlinearProblem{false}(g, tspan)
3131
sol = solve(prob, Muller())
3232

33-
@test sol.u 2*π
33+
@test sol.u 2 * π
3434
end
3535

3636
@testset "Exponential-sine function" begin
@@ -44,7 +44,7 @@
4444
prob = IntervalNonlinearProblem{false}(h, tspan)
4545
sol = solve(prob, Muller())
4646

47-
@test sol.u 0 atol = 1e-15
47+
@test sol.u0 atol=1e-15
4848

4949
tspan = (-1.0, 1.0)
5050
prob = IntervalNonlinearProblem{false}(h, tspan)
@@ -54,17 +54,17 @@
5454
end
5555

5656
@testset "Complex roots" begin
57-
tspan = (-1.0, 1.0*im)
57+
tspan = (-1.0, 1.0 * im)
5858
prob = IntervalNonlinearProblem{false}(i, tspan)
5959
sol = solve(prob, Muller())
6060

61-
@test sol.u (-1 + 3*im)/2
61+
@test sol.u (-1 + 3 * im) / 2
6262

63-
tspan = (-1.0, -1.0*im)
63+
tspan = (-1.0, -1.0 * im)
6464
prob = IntervalNonlinearProblem{false}(i, tspan)
6565
sol = solve(prob, Muller())
6666

67-
@test sol.u (-1 - 3*im)/2
67+
@test sol.u (-1 - 3 * im) / 2
6868
end
6969

7070
@testset "Middle" begin
@@ -87,10 +87,10 @@
8787

8888
@test sol.u -π
8989

90-
tspan = (-1.0, 1.0*im)
90+
tspan = (-1.0, 1.0 * im)
9191
prob = IntervalNonlinearProblem{false}(i, tspan)
9292
sol = solve(prob, Muller(0.0))
9393

94-
@test sol.u (-1 + 3*im)/2
94+
@test sol.u (-1 + 3 * im) / 2
9595
end
9696
end

lib/BracketingNonlinearSolve/test/rootfind_tests.jl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ end
77
@testitem "Interval Nonlinear Problems" setup=[RootfindingTestSnippet] tags=[:core] begin
88
using ForwardDiff
99

10-
@testset for alg in (Alefeld(), Bisection(), Brent(), Falsi(), ITP(), Muller(), Ridder(), nothing)
10+
@testset for alg in (
11+
Alefeld(), Bisection(), Brent(), Falsi(), ITP(), Muller(), Ridder(), nothing)
1112
tspan = (1.0, 20.0)
1213

1314
function g(p)
@@ -76,7 +77,8 @@ end
7677
end
7778

7879
@testitem "Flipped Signs and Reversed Tspan" setup=[RootfindingTestSnippet] tags=[:core] begin
79-
@testset for alg in (Alefeld(), Bisection(), Brent(), Falsi(), ITP(), Muller(), Ridder(), nothing)
80+
@testset for alg in (
81+
Alefeld(), Bisection(), Brent(), Falsi(), ITP(), Muller(), Ridder(), nothing)
8082
f1(u, p) = u * u - p
8183
f2(u, p) = p - u * u
8284

0 commit comments

Comments
 (0)