@@ -5,57 +5,6 @@ import DiffEqBase: value
55import ReverseDiff
66import DiffEqBase. ArrayInterface
77
8- function DiffEqBase. anyeltypedual (:: Type{T} ,
9- :: Type{Val{counter}} = Val{0 }) where {counter} where {
10- V, D, N, VA, DA, T <: ReverseDiff.TrackedArray{V, D, N, VA, DA} }
11- DiffEqBase. anyeltypedual (V, Val{counter})
12- end
13-
14- DiffEqBase. value (x:: Type{ReverseDiff.TrackedReal{V, D, O}} ) where {V, D, O} = V
15- function DiffEqBase. value (x:: Type {
16- ReverseDiff. TrackedArray{V, D, N, VA, DA},
17- }) where {V, D,
18- N, VA,
19- DA}
20- Array{V, N}
21- end
22- DiffEqBase. value (x:: ReverseDiff.TrackedReal ) = x. value
23- DiffEqBase. value (x:: ReverseDiff.TrackedArray ) = x. value
24-
25- DiffEqBase. unitfulvalue (x:: Type{ReverseDiff.TrackedReal{V, D, O}} ) where {V, D, O} = V
26- function DiffEqBase. unitfulvalue (x:: Type {
27- ReverseDiff. TrackedArray{V, D, N, VA, DA},
28- }) where {V, D,
29- N, VA,
30- DA}
31- Array{V, N}
32- end
33- DiffEqBase. unitfulvalue (x:: ReverseDiff.TrackedReal ) = x. value
34- DiffEqBase. unitfulvalue (x:: ReverseDiff.TrackedArray ) = x. value
35-
36- # Force TrackedArray from TrackedReal when reshaping W\b
37- DiffEqBase. _reshape (v:: AbstractVector{<:ReverseDiff.TrackedReal} , siz) = reduce (vcat, v)
38-
39- DiffEqBase. promote_u0 (u0:: ReverseDiff.TrackedArray , p:: ReverseDiff.TrackedArray , t0) = u0
40- function DiffEqBase. promote_u0 (u0:: AbstractArray{<:ReverseDiff.TrackedReal} ,
41- p:: ReverseDiff.TrackedArray , t0)
42- u0
43- end
44- function DiffEqBase. promote_u0 (u0:: ReverseDiff.TrackedArray ,
45- p:: AbstractArray{<:ReverseDiff.TrackedReal} , t0)
46- u0
47- end
48- function DiffEqBase. promote_u0 (u0:: AbstractArray{<:ReverseDiff.TrackedReal} ,
49- p:: AbstractArray{<:ReverseDiff.TrackedReal} , t0)
50- u0
51- end
52- DiffEqBase. promote_u0 (u0, p:: ReverseDiff.TrackedArray , t0) = ReverseDiff. track (u0)
53- function DiffEqBase. promote_u0 (
54- u0, p:: ReverseDiff.TrackedArray{T} , t0) where {T <: ReverseDiff.ForwardDiff.Dual }
55- ReverseDiff. track (T .(u0))
56- end
57- DiffEqBase. promote_u0 (u0, p:: AbstractArray{<:ReverseDiff.TrackedReal} , t0) = eltype (p).(u0)
58-
598# Support adaptive with non-tracked time
609@inline function DiffEqBase. ODE_DEFAULT_NORM (u:: ReverseDiff.TrackedArray , t)
6110 sqrt (sum (abs2, DiffEqBase. value (u)) / length (u))
0 commit comments