Skip to content

Commit e1f8a13

Browse files
committed
improvements
1 parent c8d1c41 commit e1f8a13

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

src/internal_itp.jl

+4-6
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,11 @@ end
2020
simpler dependencies.
2121
"""
2222
struct InternalITP
23-
k1::Float64
24-
k2::Float64
23+
scaled_k1::Float64
2524
n0::Int
2625
end
2726

28-
InternalITP() = InternalITP(0.007, 1.5, 10)
27+
InternalITP() = InternalITP(0.2, 10)
2928

3029
function SciMLBase.solve(prob::IntervalNonlinearProblem{IP, Tuple{T, T}}, alg::InternalITP,
3130
args...;
@@ -41,9 +40,8 @@ function SciMLBase.solve(prob::IntervalNonlinearProblem{IP, Tuple{T, T}}, alg::I
4140
return SciMLBase.build_solution(prob, alg, right, fr;
4241
retcode = ReturnCode.ExactSolutionRight, left, right)
4342
end
44-
k2 = T(alg.k2)
4543
span = abs(right - left)
46-
k1 = T(alg.alg_k1)
44+
k1 = T(alg.scaled_k1)/span
4745
n0 = T(alg.n0)
4846
n_h = exponent(span / (2 * ϵ))
4947
ϵ_s = ϵ * exp2(n_h + n0)
@@ -58,7 +56,7 @@ function SciMLBase.solve(prob::IntervalNonlinearProblem{IP, Tuple{T, T}}, alg::I
5856

5957
x_f = left + span * (fl / (fl - fr)) # Interpolation Step
6058

61-
δ = max(k1 * span^k2, eps(x_f))
59+
δ = max(k1 * span^2, eps(x_f))
6260
diff = mid - x_f
6361

6462
xt = ifelse abs(diff), x_f + copysign(δ, diff), mid) # Truncation Step

0 commit comments

Comments
 (0)