Skip to content

Commit f20f68c

Browse files
Merge pull request #947 from SciML/ChrisRackauckas-patch-6
Fix ReverseDiff capture overload ambiguities
2 parents 0a77e9f + fc73d37 commit f20f68c

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

ext/DiffEqBaseReverseDiffExt.jl

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,15 @@ function DiffEqBase.solve_up(prob::DiffEqBase.DEProblem,
121121
DiffEqBase.solve_up(prob, sensealg, u0, reduce(vcat, p), args...; kwargs...)
122122
end
123123

124+
function DiffEqBase.solve_up(prob::DiffEqBase.DEProblem,
125+
sensealg::Union{
126+
SciMLBase.AbstractOverloadingSensitivityAlgorithm,
127+
Nothing}, u0::ReverseDiff.TrackedArray,
128+
p::AbstractArray{<:ReverseDiff.TrackedReal},
129+
args...; kwargs...)
130+
DiffEqBase.solve_up(prob, sensealg, u0, reduce(vcat, p), args...; kwargs...)
131+
end
132+
124133
function DiffEqBase.solve_up(prob::DiffEqBase.DEProblem,
125134
sensealg::Union{
126135
SciMLBase.AbstractOverloadingSensitivityAlgorithm,
@@ -130,6 +139,15 @@ function DiffEqBase.solve_up(prob::DiffEqBase.DEProblem,
130139
DiffEqBase.solve_up(prob, sensealg, reduce(vcat, u0), p, args...; kwargs...)
131140
end
132141

142+
function DiffEqBase.solve_up(prob::DiffEqBase.DEProblem,
143+
sensealg::Union{
144+
SciMLBase.AbstractOverloadingSensitivityAlgorithm,
145+
Nothing},
146+
u0::AbstractArray{<:ReverseDiff.TrackedReal}, p::ReverseDiff.TrackedArray,
147+
args...; kwargs...)
148+
DiffEqBase.solve_up(prob, sensealg, reduce(vcat, u0), p, args...; kwargs...)
149+
end
150+
133151
# Required becase ReverseDiff.@grad function DiffEqBase.solve_up is not supported!
134152
import DiffEqBase: solve_up
135153
ReverseDiff.@grad function solve_up(prob, sensealg, u0, p, args...; kwargs...)

0 commit comments

Comments
 (0)