@@ -124,15 +124,18 @@ function remake(prob::ODEProblem; f = missing,
124124
125125 iip = isinplace (prob)
126126
127- initialization_data = prob. f. initialization_data
128-
129- if f === missing
130- if build_initializeprob
131- initialization_data = remake_initialization_data_compat_wrapper (
132- prob. f. sys, prob. f, u0, tspan[1 ], p, newu0, newp)
127+ if build_initializeprob
128+ if f != = missing && has_initialization_data (f)
129+ initialization_data = f. initialization_data
133130 else
134- initialization_data = nothing
131+ initialization_data = remake_initialization_data (
132+ prob. f. sys, prob. f, u0, tspan[1 ], p, newu0, newp)
135133 end
134+ else
135+ initialization_data = nothing
136+ end
137+
138+ if f === missing
136139 if specialization (prob. f) === FunctionWrapperSpecialize
137140 ptspan = promote_tspan (tspan)
138141 if iip
@@ -337,8 +340,12 @@ function remake(prob::SDEProblem;
337340 newu0, newp = updated_u0_p (prob, u0, p, tspan[1 ]; interpret_symbolicmap, use_defaults)
338341
339342 if build_initializeprob
340- initialization_data = remake_initialization_data (
341- prob. f. sys, prob. f, u0, tspan[1 ], p, newu0, newp)
343+ if f != = missing && has_initialization_data (f)
344+ initialization_data = f. initialization_data
345+ else
346+ initialization_data = remake_initialization_data (
347+ prob. f. sys, prob. f, u0, tspan[1 ], p, newu0, newp)
348+ end
342349 else
343350 initialization_data = nothing
344351 end
@@ -437,8 +444,12 @@ function remake(prob::DDEProblem; f = missing, h = missing, u0 = missing,
437444 newu0, newp = updated_u0_p (prob, u0, p, tspan[1 ]; interpret_symbolicmap, use_defaults)
438445
439446 if build_initializeprob
440- initialization_data = remake_initialization_data (
441- prob. f. sys, prob. f, u0, tspan[1 ], p, newu0, newp)
447+ if f != = missing && has_initialization_data (f)
448+ initialization_data = f. initialization_data
449+ else
450+ initialization_data = remake_initialization_data (
451+ prob. f. sys, prob. f, u0, tspan[1 ], p, newu0, newp)
452+ end
442453 else
443454 initialization_data = nothing
444455 end
@@ -535,8 +546,12 @@ function remake(prob::SDDEProblem;
535546 newu0, newp = updated_u0_p (prob, u0, p, tspan[1 ]; interpret_symbolicmap, use_defaults)
536547
537548 if build_initializeprob
538- initialization_data = remake_initialization_data (
539- prob. f. sys, prob. f, u0, tspan[1 ], p, newu0, newp)
549+ if f != = missing && has_initialization_data (f)
550+ initialization_data = f. initialization_data
551+ else
552+ initialization_data = remake_initialization_data (
553+ prob. f. sys, prob. f, u0, tspan[1 ], p, newu0, newp)
554+ end
540555 else
541556 initialization_data = nothing
542557 end
@@ -681,8 +696,12 @@ function remake(prob::NonlinearProblem;
681696 newu0, newp = updated_u0_p (prob, u0, p; interpret_symbolicmap, use_defaults)
682697
683698 if build_initializeprob
684- initialization_data = remake_initialization_data (
685- prob. f. sys, prob. f, u0, nothing , p, newu0, newp)
699+ if f != = missing && has_initialization_data (f)
700+ initialization_data = f. initialization_data
701+ else
702+ initialization_data = remake_initialization_data (
703+ prob. f. sys, prob. f, u0, nothing , p, newu0, newp)
704+ end
686705 else
687706 initialization_data = nothing
688707 end
@@ -746,20 +765,24 @@ function remake(prob::NonlinearLeastSquaresProblem; f = missing, u0 = missing, p
746765 newu0, newp = updated_u0_p (prob, u0, p; interpret_symbolicmap, use_defaults)
747766
748767 if build_initializeprob
749- initialization_data = remake_initialization_data (
750- prob. f. sys, prob. f, u0, nothing , p, newu0, newp)
768+ if f != = missing && has_initialization_data (f)
769+ initialization_data = f. initialization_data
770+ else
771+ initialization_data = remake_initialization_data (
772+ prob. f. sys, prob. f, u0, nothing , p, newu0, newp)
773+ end
751774 else
752775 initialization_data = nothing
753776 end
754777
755778 f = remake (prob. f; f, initialization_data)
756779
757780 prob = if kwargs === missing
758- return NonlinearLeastSquaresProblem {isinplace(prob)} (;
781+ prob = NonlinearLeastSquaresProblem {isinplace(prob)} (;
759782 f, u0 = newu0, p = newp, prob. kwargs... ,
760783 _kwargs... )
761784 else
762- return NonlinearLeastSquaresProblem {isinplace(prob)} (;
785+ prob = NonlinearLeastSquaresProblem {isinplace(prob)} (;
763786 f, u0 = newu0, p = newp, kwargs... )
764787 end
765788
0 commit comments