@@ -3092,8 +3092,8 @@ function ImplicitDiscreteFunction{iip}(f; kwargs...) where {iip}
3092
3092
ImplicitDiscreteFunction {iip, FullSpecialize} (f; kwargs... )
3093
3093
end
3094
3094
ImplicitDiscreteFunction {iip} (f:: ImplicitDiscreteFunction ; kwargs... ) where {iip} = f
3095
- function ImplicitDiscreteFunction (f; kwargs... )
3096
- ImplicitDiscreteFunction {isinplace(f, 5), FullSpecialize} (f; kwargs... )
3095
+ function ImplicitDiscreteFunction (f; resid_prototype = __has_resid_prototype (f) ? f . resid_prototype : nothing , kwargs... )
3096
+ ImplicitDiscreteFunction {isinplace(f, 5), FullSpecialize} (f; resid_prototype, kwargs... )
3097
3097
end
3098
3098
ImplicitDiscreteFunction (f:: ImplicitDiscreteFunction ; kwargs... ) = f
3099
3099
@@ -3102,12 +3102,12 @@ function unwrapped_f(f::ImplicitDiscreteFunction, newf = unwrapped_f(f.f))
3102
3102
3103
3103
if specialize === NoSpecialize
3104
3104
ImplicitDiscreteFunction{isinplace (f, 6 ), specialize, Any, Any,
3105
- Any, Any, Any}(newf, f. analytic, f. observed, f. sys, f. initialization_data)
3105
+ Any, Any, Any}(newf, f. analytic, f. observed, f. sys, f. resid_prototype, f . initialization_data)
3106
3106
else
3107
3107
ImplicitDiscreteFunction{isinplace (f, 6 ), specialize, typeof (newf),
3108
3108
typeof (f. analytic),
3109
3109
typeof (f. observed), typeof (f. sys), typeof (f. initialization_data)}(newf,
3110
- f. analytic, f. observed, f. sys, f. initialization_data)
3110
+ f. analytic, f. observed, f. sys, f. resid_prototype, f . initialization_data)
3111
3111
end
3112
3112
end
3113
3113
0 commit comments