Skip to content

Commit e4ea30c

Browse files
Update to OrdinaryDiffEq split version (#326)
* Update to OrdinaryDiffEq split version This both updates to the split version (reducing dependencies) and fixes some of the internals changes that occurred. * The URL in precompile.jl shouldn't get changed --------- Co-authored-by: Nathanael Bosch <[email protected]>
1 parent a160f37 commit e4ea30c

File tree

12 files changed

+84
-75
lines changed

12 files changed

+84
-75
lines changed

Project.toml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@ Kronecker = "2c470bb0-bcc8-11e8-3dad-c9649493f05e"
1717
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
1818
MatrixEquations = "99c1a7ee-ab34-5fd5-8076-27c950a045f4"
1919
Octavian = "6fd5a793-0b7e-452c-907f-f8bfe9c57db4"
20-
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
20+
OrdinaryDiffEqCore = "bbf590c4-e513-4bbe-9b18-05decba2e5d8"
21+
OrdinaryDiffEqDifferentiation = "4302a76b-040a-498a-8c04-15b101fed76b"
22+
OrdinaryDiffEqRosenbrock = "43230ef6-c299-4910-a778-202eb28ce4ce"
23+
OrdinaryDiffEqVerner = "79d7bb75-1356-48c1-b8c0-6832512096c2"
2124
PSDMatrices = "fe68d972-6fd8-4755-bdf0-97d4c54cefdc"
2225
PrecompileTools = "aea7be01-6a6a-4083-8856-8a6e6704d82a"
2326
Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7"
@@ -60,7 +63,10 @@ Kronecker = "0.5.4"
6063
LinearAlgebra = "1"
6164
MatrixEquations = "2"
6265
Octavian = "0.3.17"
63-
OrdinaryDiffEq = "6.52"
66+
OrdinaryDiffEqCore = "1.3"
67+
OrdinaryDiffEqDifferentiation = "1.1"
68+
OrdinaryDiffEqRosenbrock = "1.1"
69+
OrdinaryDiffEqVerner = "1.1"
6470
PSDMatrices = "0.5.0"
6571
PrecompileTools = "1"
6672
Printf = "1"
@@ -77,7 +83,7 @@ TaylorIntegration = "0.8, 0.9, 0.10, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16"
7783
TaylorSeries = "0.10, 0.11, 0.12, 0.13, 0.14, 0.15, 0.16, 0.17, 0.18"
7884
Test = "1"
7985
ToeplitzMatrices = "0.7, 0.8"
80-
julia = "1.9"
86+
julia = "1.10"
8187

8288
[extras]
8389
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

src/ProbNumDiffEq.jl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ using Reexport
1717
@reexport using DiffEqBase
1818
import SciMLBase
1919
import SciMLBase: interpret_vars, getsyms, remake
20-
using OrdinaryDiffEq
20+
using OrdinaryDiffEqCore, OrdinaryDiffEqDifferentiation, OrdinaryDiffEqVerner,
21+
OrdinaryDiffEqRosenbrock
2122
using ToeplitzMatrices
2223
using FastBroadcast
2324
using StaticArrayInterface
@@ -67,7 +68,7 @@ include("blocksofdiagonals.jl")
6768
include("covariance_structure.jl")
6869
export IsometricKroneckerCovariance, DenseCovariance, BlockDiagonalCovariance
6970

70-
abstract type AbstractODEFilterCache <: OrdinaryDiffEq.OrdinaryDiffEqCache end
71+
abstract type AbstractODEFilterCache <: OrdinaryDiffEqCore.OrdinaryDiffEqCache end
7172

7273
include("gaussians.jl")
7374
export Gaussian

src/alg_utils.jl

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,47 @@
11
############################################################################################
2-
# For the equivalent parts in OrdinaryDiffEq.jl, see:
3-
# https://github.com/SciML/OrdinaryDiffEq.jl/blob/master/src/alg_utils.jl
2+
# For the equivalent parts in OrdinaryDiffEqCore.jl, see:
3+
# https://github.com/SciML/OrdinaryDiffEqCore.jl/blob/master/src/alg_utils.jl
44
############################################################################################
55

6-
OrdinaryDiffEq._alg_autodiff(::AbstractEK) = Val{true}()
7-
OrdinaryDiffEq.standardtag(::AbstractEK) = false
8-
OrdinaryDiffEq.concrete_jac(::AbstractEK) = nothing
6+
OrdinaryDiffEqDifferentiation._alg_autodiff(::AbstractEK) = Val{true}()
7+
OrdinaryDiffEqDifferentiation.standardtag(::AbstractEK) = false
8+
OrdinaryDiffEqDifferentiation.concrete_jac(::AbstractEK) = nothing
99

1010
@inline DiffEqBase.get_tmp_cache(integ, alg::AbstractEK, cache::AbstractODEFilterCache) =
1111
(cache.tmp, cache.atmp)
12-
OrdinaryDiffEq.isfsal(::AbstractEK) = false
12+
OrdinaryDiffEqCore.isfsal(::AbstractEK) = false
1313

1414
for ALG in [:EK1, :DiagonalEK1]
15-
@eval OrdinaryDiffEq._alg_autodiff(::$ALG{CS,AD}) where {CS,AD} = Val{AD}()
16-
@eval OrdinaryDiffEq.alg_difftype(::$ALG{CS,AD,DiffType}) where {CS,AD,DiffType} =
15+
@eval OrdinaryDiffEqDifferentiation._alg_autodiff(::$ALG{CS,AD}) where {CS,AD} = Val{AD}()
16+
@eval OrdinaryDiffEqDifferentiation.alg_difftype(::$ALG{CS,AD,DiffType}) where {CS,AD,DiffType} =
1717
DiffType
18-
@eval OrdinaryDiffEq.standardtag(::$ALG{CS,AD,DiffType,ST}) where {CS,AD,DiffType,ST} =
18+
@eval OrdinaryDiffEqDifferentiation.standardtag(::$ALG{CS,AD,DiffType,ST}) where {CS,AD,DiffType,ST} =
1919
ST
20-
@eval OrdinaryDiffEq.concrete_jac(
20+
@eval OrdinaryDiffEqDifferentiation.concrete_jac(
2121
::$ALG{CS,AD,DiffType,ST,CJ},
2222
) where {CS,AD,DiffType,ST,CJ} = CJ
23-
@eval OrdinaryDiffEq.get_chunksize(::$ALG{CS}) where {CS} = Val(CS)
24-
@eval OrdinaryDiffEq.isimplicit(::$ALG) = true
23+
@eval OrdinaryDiffEqDifferentiation.get_chunksize(::$ALG{CS}) where {CS} = Val(CS)
24+
@eval OrdinaryDiffEqCore.isimplicit(::$ALG) = true
2525
end
2626

2727
############################################
2828
# Step size control
29-
OrdinaryDiffEq.isadaptive(::AbstractEK) = true
30-
OrdinaryDiffEq.alg_order(alg::AbstractEK) = num_derivatives(alg.prior)
31-
# OrdinaryDiffEq.alg_adaptive_order(alg::AbstractEK) =
29+
OrdinaryDiffEqCore.isadaptive(::AbstractEK) = true
30+
OrdinaryDiffEqCore.alg_order(alg::AbstractEK) = num_derivatives(alg.prior)
31+
# OrdinaryDiffEqCore.alg_adaptive_order(alg::AbstractEK) =
3232

3333
# PI control is the default!
34-
OrdinaryDiffEq.isstandard(::AbstractEK) = false # proportional
35-
OrdinaryDiffEq.ispredictive(::AbstractEK) = false # not sure, maybe Gustafsson acceleration?
34+
OrdinaryDiffEqCore.isstandard(::AbstractEK) = false # proportional
35+
OrdinaryDiffEqCore.ispredictive(::AbstractEK) = false # not sure, maybe Gustafsson acceleration?
3636

37-
# OrdinaryDiffEq.qmin_default(alg::AbstractEK) =
38-
# OrdinaryDiffEq.qmax_default(alg::AbstractEK) =
39-
# OrdinaryDiffEq.beta2_default(alg::AbstractEK) = 2 // (5(OrdinaryDiffEq.alg_order(alg) + 1))
40-
# OrdinaryDiffEq.beta1_default(alg::AbstractEK, beta2) = 7 // (10(OrdinaryDiffEq.alg_order(alg) + 1))
41-
# OrdinaryDiffEq.gamma_default(alg::AbstractEK) =
37+
# OrdinaryDiffEqCore.qmin_default(alg::AbstractEK) =
38+
# OrdinaryDiffEqCore.qmax_default(alg::AbstractEK) =
39+
# OrdinaryDiffEqCore.beta2_default(alg::AbstractEK) = 2 // (5(OrdinaryDiffEqCore.alg_order(alg) + 1))
40+
# OrdinaryDiffEqCore.beta1_default(alg::AbstractEK, beta2) = 7 // (10(OrdinaryDiffEqCore.alg_order(alg) + 1))
41+
# OrdinaryDiffEqCore.gamma_default(alg::AbstractEK) =
4242

43-
# OrdinaryDiffEq.uses_uprev(alg::, adaptive::Bool) = adaptive
44-
OrdinaryDiffEq.is_mass_matrix_alg(::AbstractEK) = true
43+
# OrdinaryDiffEqCore.uses_uprev(alg::, adaptive::Bool) = adaptive
44+
OrdinaryDiffEqCore.is_mass_matrix_alg(::AbstractEK) = true
4545

4646
SciMLBase.isautodifferentiable(::AbstractEK) = true
4747
SciMLBase.allows_arbitrary_number_types(::AbstractEK) = true

src/algorithms.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
########################################################################################
22
# Algorithm
33
########################################################################################
4-
abstract type AbstractEK <: OrdinaryDiffEq.OrdinaryDiffEqAdaptiveAlgorithm end
4+
abstract type AbstractEK <: OrdinaryDiffEqCore.OrdinaryDiffEqAdaptiveAlgorithm end
55

66
function ekargcheck(
77
alg;
@@ -352,9 +352,9 @@ function DiffEqBase.prepare_alg(
352352
p,
353353
prob,
354354
) where {T}
355-
# See OrdinaryDiffEq.jl: ./src/alg_utils.jl (where this is copied from).
355+
# See OrdinaryDiffEqCore.jl: ./src/alg_utils.jl (where this is copied from).
356356
# In the future we might want to make EK1 an OrdinaryDiffEqAdaptiveImplicitAlgorithm and
357-
# use the prepare_alg from OrdinaryDiffEq; but right now, we do not use `linsolve` which
357+
# use the prepare_alg from OrdinaryDiffEqCore; but right now, we do not use `linsolve` which
358358
# is a requirement.
359359

360360
if (isbitstype(T) && sizeof(T) > 24) || (

src/caches.jl

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,9 @@ mutable struct EKCache{
7272
jac_config::JC
7373
end
7474

75-
function OrdinaryDiffEq.alg_cache(
75+
OrdinaryDiffEqCore.get_fsalfirstlast(cache::AbstractODEFilterCache, rate_prototype) = (nothing, nothing)
76+
77+
function OrdinaryDiffEqCore.alg_cache(
7678
alg::AbstractEK,
7779
u,
7880
rate_prototype,
@@ -221,8 +223,8 @@ function OrdinaryDiffEq.alg_cache(
221223
du1 = similar(rate_prototype)
222224
dw1 = zero(u)
223225
atmp = similar(u, uEltypeNoUnits)
224-
if OrdinaryDiffEq.isimplicit(alg)
225-
jac_config = OrdinaryDiffEq.build_jac_config(alg, f, uf, du1, uprev, u, tmp, dw1)
226+
if OrdinaryDiffEqCore.isimplicit(alg)
227+
jac_config = OrdinaryDiffEqDifferentiation.build_jac_config(alg, f, uf, du1, uprev, u, tmp, dw1)
226228
else
227229
jac_config = nothing
228230
end
@@ -251,5 +253,5 @@ function OrdinaryDiffEq.alg_cache(
251253
)
252254
end
253255

254-
get_uf(f, t, p, ::Val{true}) = OrdinaryDiffEq.UJacobianWrapper(f, t, p)
255-
get_uf(f, t, p, ::Val{false}) = OrdinaryDiffEq.UDerivativeWrapper(f, t, p)
256+
get_uf(f, t, p, ::Val{true}) = OrdinaryDiffEqDifferentiation.UJacobianWrapper(f, t, p)
257+
get_uf(f, t, p, ::Val{false}) = OrdinaryDiffEqDifferentiation.UDerivativeWrapper(f, t, p)

src/derivative_utils.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ function calc_H!(H, integ, cache)
77
elseif integ.alg isa EK1
88
calc_H_EK0!(H, integ, cache)
99
# @assert integ.u == @view x_pred.μ[1:(q+1):end]
10-
OrdinaryDiffEq.calc_J!(ddu, integ, cache, true)
10+
OrdinaryDiffEqDifferentiation.calc_J!(ddu, integ, cache, true)
1111
_ddu = size(ddu, 2) != d ? view(ddu, 1:d, :) : ddu
1212
_matmul!(H, _ddu, cache.SolProj, -1.0, 1.0)
1313
elseif integ.alg isa DiagonalEK1
1414
calc_H_EK0!(H, integ, cache)
15-
OrdinaryDiffEq.calc_J!(ddu, integ, cache, true)
15+
OrdinaryDiffEqDifferentiation.calc_J!(ddu, integ, cache, true)
1616
_ddu = size(ddu, 2) != d ? view(ddu, 1:d, :) : ddu
1717
ddu_diag = if size(ddu, 2) == d
1818
# the normal case: just extract the diagonal

src/initialization/classicsolverinit.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ function initial_update!(integ, cache, ::ClassicSolverInit)
4747
# Compute the other parts with classic solvers
4848
t0 = integ.sol.prob.tspan[1]
4949
dt =
50-
10 * OrdinaryDiffEq.ode_determine_initdt(
50+
10 * OrdinaryDiffEqCore.ode_determine_initdt(
5151
u,
5252
t,
5353
1,

src/initialization/common.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ ForwardDiffInit() = begin
6565
end
6666

6767
"""
68-
ClassicSolverInit(; alg=OrdinaryDiffEq.Tsit5(), init_on_ddu=false)
68+
ClassicSolverInit(; alg=OrdinaryDiffEqCore.Tsit5(), init_on_ddu=false)
6969
7070
Initialization via regression on a few steps of a classic ODE solver.
7171
@@ -80,7 +80,7 @@ optionally the second derivative can also be set via automatic differentiation b
8080
`init_on_ddu=true`.
8181
8282
# Arguments
83-
- `alg`: The solver to be used. Can be any solver from OrdinaryDiffEq.jl.
83+
- `alg`: The solver to be used. Can be any solver from OrdinaryDiffEqCore.jl.
8484
- `init_on_ddu`: If `true`, the second derivative is also initialized exactly via
8585
automatic differentiation with ForwardDiff.jl.
8686

src/integrator_utils.jl

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
"""
2-
OrdinaryDiffEq.postamble!(integ::OrdinaryDiffEq.ODEIntegrator{<:AbstractEK})
2+
OrdinaryDiffEqCore.postamble!(integ::OrdinaryDiffEqCore.ODEIntegrator{<:AbstractEK})
33
4-
ProbNumDiffEq.jl-specific implementation of OrdinaryDiffEq.jl's `postamble!`.
4+
ProbNumDiffEq.jl-specific implementation of OrdinaryDiffEqCore.jl's `postamble!`.
55
6-
In addition to calling `OrdinaryDiffEq._postamble!(integ)`, calibrate the diffusion and
6+
In addition to calling `OrdinaryDiffEqCore._postamble!(integ)`, calibrate the diffusion and
77
smooth the solution.
88
"""
9-
function OrdinaryDiffEq.postamble!(integ::OrdinaryDiffEq.ODEIntegrator{<:AbstractEK})
10-
# OrdinaryDiffEq.jl-related calls:
11-
OrdinaryDiffEq._postamble!(integ)
9+
function OrdinaryDiffEqCore.postamble!(integ::OrdinaryDiffEqCore.ODEIntegrator{<:AbstractEK})
10+
# OrdinaryDiffEqCore.jl-related calls:
11+
OrdinaryDiffEqCore._postamble!(integ)
1212
copyat_or_push!(integ.sol.k, integ.saveiter_dense, integ.k)
1313
pn_solution_endpoint_match_cur_integrator!(integ)
1414

@@ -118,56 +118,56 @@ function smooth_solution!(integ)
118118
return nothing
119119
end
120120

121-
"Inspired by `OrdinaryDiffEq.solution_match_cur_integrator!`"
121+
"Inspired by `OrdinaryDiffEqCore.solution_match_cur_integrator!`"
122122
function pn_solution_endpoint_match_cur_integrator!(integ)
123123
if integ.opts.save_end
124124
if integ.alg.smooth
125-
OrdinaryDiffEq.copyat_or_push!(
125+
OrdinaryDiffEqCore.copyat_or_push!(
126126
integ.sol.x_filt,
127127
integ.saveiter_dense,
128128
integ.cache.x,
129129
)
130130
end
131131

132-
OrdinaryDiffEq.copyat_or_push!(
132+
OrdinaryDiffEqCore.copyat_or_push!(
133133
integ.sol.pu,
134134
integ.saveiter,
135135
_gaussian_mul!(integ.cache.pu_tmp, integ.cache.SolProj, integ.cache.x),
136136
)
137137
end
138138
end
139139

140-
"Extends `OrdinaryDiffEq._savevalues!` to save ProbNumDiffEq.jl-specific things."
140+
"Extends `OrdinaryDiffEqCore._savevalues!` to save ProbNumDiffEq.jl-specific things."
141141
function DiffEqBase.savevalues!(
142-
integ::OrdinaryDiffEq.ODEIntegrator{<:AbstractEK},
142+
integ::OrdinaryDiffEqCore.ODEIntegrator{<:AbstractEK},
143143
force_save=false,
144144
reduce_size=true,
145145
)
146146

147-
# Do whatever OrdinaryDiffEq would do
148-
out = OrdinaryDiffEq._savevalues!(integ, force_save, reduce_size)
147+
# Do whatever OrdinaryDiffEqCore would do
148+
out = OrdinaryDiffEqCore._savevalues!(integ, force_save, reduce_size)
149149

150150
# Save our custom stuff that we need for the posterior
151151
if integ.opts.save_everystep
152152
i = integ.saveiter
153-
OrdinaryDiffEq.copyat_or_push!(integ.sol.diffusions, i, integ.cache.local_diffusion)
154-
OrdinaryDiffEq.copyat_or_push!(integ.sol.x_filt, i, integ.cache.x)
153+
OrdinaryDiffEqCore.copyat_or_push!(integ.sol.diffusions, i, integ.cache.local_diffusion)
154+
OrdinaryDiffEqCore.copyat_or_push!(integ.sol.x_filt, i, integ.cache.x)
155155
_gaussian_mul!(integ.cache.pu_tmp, integ.cache.SolProj, integ.cache.x)
156-
OrdinaryDiffEq.copyat_or_push!(integ.sol.pu, i, integ.cache.pu_tmp)
156+
OrdinaryDiffEqCore.copyat_or_push!(integ.sol.pu, i, integ.cache.pu_tmp)
157157

158158
if integ.alg.smooth
159-
OrdinaryDiffEq.copyat_or_push!(
159+
OrdinaryDiffEqCore.copyat_or_push!(
160160
integ.sol.backward_kernels, i, integ.cache.backward_kernel)
161161
end
162162
end
163163

164164
return out
165165
end
166166

167-
function OrdinaryDiffEq.update_uprev!(integ::OrdinaryDiffEq.ODEIntegrator{<:AbstractEK})
168-
@assert !OrdinaryDiffEq.alg_extrapolates(integ.alg)
167+
function OrdinaryDiffEqCore.update_uprev!(integ::OrdinaryDiffEqCore.ODEIntegrator{<:AbstractEK})
168+
@assert !OrdinaryDiffEqCore.alg_extrapolates(integ.alg)
169169
@assert isinplace(integ.sol.prob)
170-
@assert !(integ.alg isa OrdinaryDiffEq.DAEAlgorithm)
170+
@assert !(integ.alg isa OrdinaryDiffEqCore.DAEAlgorithm)
171171

172172
recursivecopy!(integ.uprev, integ.u)
173173
recursivecopy!(integ.cache.xprev, integ.cache.x)

src/perform_step.jl

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
# Called in the OrdinaryDiffEQ.__init; All `OrdinaryDiffEqAlgorithm`s have one
2-
function OrdinaryDiffEq.initialize!(integ::OrdinaryDiffEq.ODEIntegrator, cache::EKCache)
1+
# Called in the OrdinaryDiffEqCore.__init; All `OrdinaryDiffEqAlgorithm`s have one
2+
function OrdinaryDiffEqCore.initialize!(integ::OrdinaryDiffEqCore.ODEIntegrator, cache::EKCache)
33
check_secondorderode(integ)
44
check_densesmooth(integ)
55
check_saveiter(integ)
@@ -13,15 +13,15 @@ function OrdinaryDiffEq.initialize!(integ::OrdinaryDiffEq.ODEIntegrator, cache::
1313
copy!(integ.cache.xprev, integ.cache.x)
1414

1515
# These are necessary since the solution object is not 100% initialized by default
16-
OrdinaryDiffEq.copyat_or_push!(integ.sol.x_filt, integ.saveiter, cache.x)
16+
OrdinaryDiffEqCore.copyat_or_push!(integ.sol.x_filt, integ.saveiter, cache.x)
1717
initial_pu = _gaussian_mul!(cache.pu_tmp, cache.SolProj, cache.x)
18-
OrdinaryDiffEq.copyat_or_push!(integ.sol.pu, integ.saveiter, initial_pu)
18+
OrdinaryDiffEqCore.copyat_or_push!(integ.sol.pu, integ.saveiter, initial_pu)
1919

2020
return nothing
2121
end
2222

2323
function make_new_transitions(integ, cache, repeat_step)::Bool
24-
# Similar to OrdinaryDiffEq.do_newJ
24+
# Similar to OrdinaryDiffEqCore.do_newJ
2525
if integ.iter <= 1
2626
return true
2727
elseif cache.prior isa IOUP && cache.prior.update_rate_parameter
@@ -59,10 +59,10 @@ Basically consists of the following steps
5959
- Kalman update step
6060
- (optional) Update the global diffusion MLE
6161
62-
As in OrdinaryDiffEq.jl, this step is not necessarily successful!
63-
For that functionality, use `OrdinaryDiffEq.step!(integ)`.
62+
As in OrdinaryDiffEqCore.jl, this step is not necessarily successful!
63+
For that functionality, use `OrdinaryDiffEqCore.step!(integ)`.
6464
"""
65-
function OrdinaryDiffEq.perform_step!(integ, cache::EKCache, repeat_step=false)
65+
function OrdinaryDiffEqCore.perform_step!(integ, cache::EKCache, repeat_step=false)
6666
@unpack t, dt = integ
6767
@unpack d = integ.cache
6868
@unpack xprev, x_pred, u_pred, x_filt, err_tmp = integ.cache
@@ -73,7 +73,7 @@ function OrdinaryDiffEq.perform_step!(integ, cache::EKCache, repeat_step=false)
7373
if make_new_transitions(integ, cache, repeat_step)
7474
# Rosenbrock-style update of the IOUP rate parameter
7575
if cache.prior isa IOUP && cache.prior.update_rate_parameter
76-
OrdinaryDiffEq.calc_J!(cache.prior.rate_parameter, integ, cache, false)
76+
OrdinaryDiffEqDifferentiation.calc_J!(cache.prior.rate_parameter, integ, cache, false)
7777
end
7878

7979
make_transition_matrices!(cache, cache.prior, dt)
@@ -142,7 +142,7 @@ In addition, compute the measurement mean (`z`) and the measurement function Jac
142142
Results are saved into `integ.cache.du`, `integ.cache.ddu`, `integ.cache.measurement.μ`
143143
and `integ.cache.H`.
144144
Jacobians are computed either with the supplied `f.jac`, or via automatic differentiation,
145-
as in OrdinaryDiffEq.jl.
145+
as in OrdinaryDiffEqCore.jl.
146146
"""
147147
function evaluate_ode!(integ, x_pred, t)
148148
@unpack f, p, dt = integ

0 commit comments

Comments
 (0)