@@ -225,14 +225,15 @@ function remake(prob::BVProblem{uType, tType, iip, nlls}; f = missing, bc = miss
225225end
226226
227227"""
228- remake(prob::SDEProblem; f = missing, u0 = missing, tspan = missing,
228+ remake(prob::SDEProblem; f = missing, g = missing, u0 = missing, tspan = missing,
229229 p = missing, noise = missing, noise_rate_prototype = missing,
230230 seed = missing, kwargs = missing, _kwargs...)
231231
232232Remake the given `SDEProblem`.
233233"""
234234function remake (prob:: SDEProblem ;
235235 f = missing ,
236+ g = missing ,
236237 u0 = missing ,
237238 tspan = missing ,
238239 p = missing ,
@@ -261,8 +262,23 @@ function remake(prob::SDEProblem;
261262 seed = prob. seed
262263 end
263264
264- if f === missing # TODO : Need more features, e.g. remake `g`
265+ if f === missing && g === missing
265266 f = prob. f
267+ g = prob. g
268+ elseif f != = missing && g === missing
269+ g = prob. g
270+ elseif f === missing && g != = missing
271+ if prob. f isa SDEFunction
272+ f = remake (prob. f; g = g)
273+ else
274+ f = SDEFunction (prob. f, g)
275+ end
276+ else
277+ if f isa SDEFunction
278+ f = remake (f; g = g)
279+ else
280+ f = SDEFunction (f, g)
281+ end
266282 end
267283
268284 iip = isinplace (prob)
@@ -282,6 +298,37 @@ function remake(prob::SDEProblem;
282298 end
283299end
284300
301+ """
302+ remake(func::SDEFunction; f = missing, g = missing,
303+ mass_matrix = missing, analytic = missing, kwargs...)
304+
305+ Remake the given `SDEFunction`.
306+ """
307+ function remake (func:: SDEFunction ;
308+ f = missing ,
309+ g = missing ,
310+ mass_matrix = missing ,
311+ analytic = missing ,
312+ kwargs... )
313+ if f === missing
314+ f = func. f
315+ end
316+
317+ if g === missing
318+ g = func. g
319+ end
320+
321+ if mass_matrix === missing
322+ mass_matrix = func. mass_matrix
323+ end
324+
325+ if analytic === missing
326+ analytic = func. analytic
327+ end
328+
329+ return SDEFunction (f, g; mass_matrix, analytic, kwargs... )
330+ end
331+
285332"""
286333 remake(prob::OptimizationProblem; f = missing, u0 = missing, p = missing,
287334 lb = missing, ub = missing, int = missing, lcons = missing, ucons = missing,
0 commit comments