|
18 | 18 | (sol::ODESolution)(t,deriv::Type=Val{0};idxs=nothing,continuity=:left) = sol(t,deriv,idxs,continuity)
|
19 | 19 | (sol::ODESolution)(v,t,deriv::Type=Val{0};idxs=nothing,continuity=:left) = sol.interp(v,t,idxs,deriv,sol.prob.p,continuity)
|
20 | 20 |
|
21 |
| -function (sol::ODESolution)(t::Real,::Type{Val{0}},idxs::Nothing,continuity) |
22 |
| - sol.interp(t,idxs,Val{0},sol.prob.p,continuity) |
| 21 | +function (sol::ODESolution)(t::Real,deriv,idxs::Nothing,continuity) |
| 22 | + sol.interp(t,idxs,deriv,sol.prob.p,continuity) |
23 | 23 | end
|
24 | 24 |
|
25 |
| -function (sol::ODESolution)(t::AbstractVector{<:Real},::Type{Val{0}},idxs::Nothing,continuity) |
26 |
| - augment(sol.interp(t,idxs,Val{0},sol.prob.p,continuity), sol) |
| 25 | +function (sol::ODESolution)(t::AbstractVector{<:Real},deriv,idxs::Nothing,continuity) |
| 26 | + augment(sol.interp(t,idxs,deriv,sol.prob.p,continuity), sol) |
27 | 27 | end
|
28 | 28 |
|
29 |
| -function (sol::ODESolution)(t::Real,::Type{Val{0}},idxs::Integer,continuity) |
30 |
| - sol.interp(t,idxs,Val{0},sol.prob.p,continuity) |
| 29 | +function (sol::ODESolution)(t::Real,deriv,idxs::Integer,continuity) |
| 30 | + sol.interp(t,idxs,deriv,sol.prob.p,continuity) |
31 | 31 | end
|
32 |
| -function (sol::ODESolution)(t::Real,::Type{Val{0}},idxs::AbstractVector{<:Integer},continuity) |
33 |
| - sol.interp(t,idxs,Val{0},sol.prob.p,continuity) |
| 32 | +function (sol::ODESolution)(t::Real,deriv,idxs::AbstractVector{<:Integer},continuity) |
| 33 | + sol.interp(t,idxs,deriv,sol.prob.p,continuity) |
34 | 34 | end
|
35 |
| -function (sol::ODESolution)(t::AbstractVector{<:Real},::Type{Val{0}},idxs::Integer,continuity) |
36 |
| - sol.interp(t,idxs,Val{0},sol.prob.p,continuity) |
| 35 | +function (sol::ODESolution)(t::AbstractVector{<:Real},deriv,idxs::Integer,continuity) |
| 36 | + sol.interp(t,idxs,deriv,sol.prob.p,continuity) |
37 | 37 | end
|
38 |
| -function (sol::ODESolution)(t::AbstractVector{<:Real},::Type{Val{0}},idxs::AbstractVector{<:Integer},continuity) |
39 |
| - sol.interp(t,idxs,Val{0},sol.prob.p,continuity) |
| 38 | +function (sol::ODESolution)(t::AbstractVector{<:Real},deriv,idxs::AbstractVector{<:Integer},continuity) |
| 39 | + sol.interp(t,idxs,deriv,sol.prob.p,continuity) |
40 | 40 | end
|
41 | 41 |
|
42 |
| -function (sol::ODESolution)(t::Real,::Type{Val{0}},idxs,continuity) |
| 42 | +function (sol::ODESolution)(t::Real,deriv,idxs,continuity) |
43 | 43 | issymbollike(idxs) || error("Incorrect specification of `idxs`")
|
44 |
| - augment(sol.interp([t],nothing,Val{0},sol.prob.p,continuity), sol)[idxs][1] |
| 44 | + augment(sol.interp([t],nothing,deriv,sol.prob.p,continuity), sol)[idxs][1] |
45 | 45 | end
|
46 | 46 |
|
47 |
| -function (sol::ODESolution)(t::Real,::Type{Val{0}},idxs::AbstractVector,continuity) |
| 47 | +function (sol::ODESolution)(t::Real,deriv,idxs::AbstractVector,continuity) |
48 | 48 | all(issymbollike.(idxs)) || error("Incorrect specification of `idxs`")
|
49 |
| - interp_sol = augment(sol.interp([t],nothing,Val{0},sol.prob.p,continuity), sol) |
| 49 | + interp_sol = augment(sol.interp([t],nothing,deriv,sol.prob.p,continuity), sol) |
50 | 50 | [first(interp_sol[idx]) for idx in idxs]
|
51 | 51 | end
|
52 | 52 |
|
53 |
| -function (sol::ODESolution)(t::AbstractVector{<:Real},::Type{Val{0}},idxs,continuity) |
| 53 | +function (sol::ODESolution)(t::AbstractVector{<:Real},deriv,idxs,continuity) |
54 | 54 | issymbollike(idxs) || error("Incorrect specification of `idxs`")
|
55 |
| - interp_sol = augment(sol.interp(t,nothing,Val{0},sol.prob.p,continuity), sol) |
| 55 | + interp_sol = augment(sol.interp(t,nothing,deriv,sol.prob.p,continuity), sol) |
56 | 56 | DiffEqArray(interp_sol[idxs], t)
|
57 | 57 | end
|
58 | 58 |
|
59 |
| -function (sol::ODESolution)(t::AbstractVector{<:Real},::Type{Val{0}},idxs::AbstractVector,continuity) |
| 59 | +function (sol::ODESolution)(t::AbstractVector{<:Real},deriv,idxs::AbstractVector,continuity) |
60 | 60 | all(issymbollike.(idxs)) || error("Incorrect specification of `idxs`")
|
61 |
| - interp_sol = augment(sol.interp(t,nothing,Val{0},sol.prob.p,continuity), sol) |
| 61 | + interp_sol = augment(sol.interp(t,nothing,deriv,sol.prob.p,continuity), sol) |
62 | 62 | DiffEqArray([[interp_sol[idx][i] for idx in idxs] for i in 1:length(t)], t)
|
63 | 63 | end
|
64 | 64 |
|
65 |
| -function (sol::ODESolution)(t,::Type{Val{N}},idxs,continuity) where N |
66 |
| - N == 0 || error("Higher-order interpolation is not implemented.") |
67 |
| -end |
68 |
| - |
69 | 65 | function build_solution(
|
70 | 66 | prob::Union{AbstractODEProblem,AbstractDDEProblem},
|
71 | 67 | alg,t,u;timeseries_errors=length(u)>2,
|
|
0 commit comments