From e7a049dc97b559105075ebdd12c676f4219aa002 Mon Sep 17 00:00:00 2001 From: David Widmann Date: Mon, 21 Jan 2019 18:02:08 +0100 Subject: [PATCH 1/2] Use recursivecopy for numbers as well --- REQUIRE | 2 +- src/solve.jl | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) 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..c82a5cb1b1 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) From ac7f617db58bb4febfe556d0a9482dba94b8c383 Mon Sep 17 00:00:00 2001 From: David Widmann Date: Mon, 21 Jan 2019 22:31:32 +0100 Subject: [PATCH 2/2] More recursivecopy --- src/solve.jl | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/solve.jl b/src/solve.jl index c82a5cb1b1..762b44bcea 100644 --- a/src/solve.jl +++ b/src/solve.jl @@ -211,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