diff --git a/REQUIRE b/REQUIRE index 7d5609dbf5..981a87d55e 100644 --- a/REQUIRE +++ b/REQUIRE @@ -5,7 +5,7 @@ Parameters 0.10.0 ForwardDiff 0.7.0 GenericSVD 0.0.2 NLsolve 0.14.1 -RecursiveArrayTools 0.13.0 +RecursiveArrayTools 0.18.6 DiffEqDiffTools 0.4.0 Reexport MuladdMacro 0.2.1 diff --git a/src/solve.jl b/src/solve.jl index ddeb428bfb..762b44bcea 100644 --- a/src/solve.jl +++ b/src/solve.jl @@ -90,14 +90,10 @@ function DiffEqBase.__init( # Get the control variables - if typeof(prob.u0) <: Array - u = recursivecopy(prob.u0) - elseif typeof(prob.u0) <: Number - u = prob.u0 - elseif typeof(prob.u0) <: Tuple + if typeof(prob.u0) <: Tuple u = ArrayPartition(prob.u0,Val{true}) else - u = deepcopy(prob.u0) + u = recursivecopy(prob.u0) end uType = typeof(u) @@ -215,17 +211,9 @@ function DiffEqBase.__init( k = rateType[] - if uType <: Array - uprev = copy(u) - else - uprev = deepcopy(u) - end + uprev = recursivecopy(u) if allow_extrapolation - if uType <: Array - uprev2 = copy(u) - else - uprev2 = deepcopy(u) - end + uprev2 = recursivecopy(u) else uprev2 = uprev end