@@ -50,18 +50,26 @@ include("ad.jl")
5050# # Default algorithm
5151
5252# Set the default bracketing method to ITP
53- function SciMLBase. solve (prob:: IntervalNonlinearProblem ; kwargs... )
54- return solve (prob, ITP (); kwargs... )
55- end
56-
57- function SciMLBase. solve (prob:: IntervalNonlinearProblem , alg:: Nothing ,
58- args... ; kwargs... )
53+ SciMLBase. solve (prob:: IntervalNonlinearProblem ; kwargs... ) = solve (prob, ITP (); kwargs... )
54+ function SciMLBase. solve (prob:: IntervalNonlinearProblem , alg:: Nothing , args... ; kwargs... )
5955 return solve (prob, ITP (), args... ; kwargs... )
6056end
6157
6258# By Pass the highlevel checks for NonlinearProblem for Simple Algorithms
6359function SciMLBase. solve (prob:: NonlinearProblem , alg:: AbstractSimpleNonlinearSolveAlgorithm ,
64- args... ; kwargs... )
60+ args... ; sensealg = nothing , u0 = nothing , p = nothing , kwargs... )
61+ if sensealg === nothing && haskey (prob. kwargs, :sensealg )
62+ sensealg = prob. kwargs[:sensealg ]
63+ end
64+ new_u0 = u0 != = nothing ? u0 : prob. u0
65+ new_p = p != = nothing ? p : prob. p
66+ return __internal_solve_up (prob, sensealg, new_u0, u0 === nothing , new_p, p === nothing ,
67+ alg, args... ; kwargs... )
68+ end
69+
70+ function __internal_solve_up (_prob:: NonlinearProblem , sensealg, u0, u0_changed, p,
71+ p_changed, alg:: AbstractSimpleNonlinearSolveAlgorithm , args... ; kwargs... )
72+ prob = u0_changed || p_changed ? remake (_prob; u0, p) : _prob
6573 return SciMLBase. __solve (prob, alg, args... ; kwargs... )
6674end
6775
0 commit comments