@@ -1075,7 +1075,34 @@ function updated_u0_p(
1075
1075
return (u0 === missing ? state_values (prob) : u0),
1076
1076
(p === missing ? parameter_values (prob) : p)
1077
1077
end
1078
- return _updated_u0_p_internal (prob, u0, p, t0; interpret_symbolicmap, use_defaults)
1078
+ newu0, newp = _updated_u0_p_internal (prob, u0, p, t0; interpret_symbolicmap, use_defaults)
1079
+ return late_binding_update_u0_p (prob, u0, p, t0, newu0, newp)
1080
+ end
1081
+
1082
+ """
1083
+ $(TYPEDSIGNATURES)
1084
+
1085
+ A function to perform custom modifications to `newu0` and/or `newp` after they have been
1086
+ constructed in `remake`. `root_indp` is the innermost index provider found by recursively
1087
+ calling `SymbolicIndexingInterface.symbolic_container`, provided for dispatch. Returns
1088
+ the updated `newu0` and `newp`.
1089
+ """
1090
+ function late_binding_update_u0_p (prob, root_indp, u0, p, t0, newu0, newp)
1091
+ return newu0, newp
1092
+ end
1093
+
1094
+ """
1095
+ $(TYPEDSIGNATURES)
1096
+
1097
+ Calls `late_binding_update_u0_p(prob, root_indp, u0, p, t0, newu0, newp)` after finding
1098
+ `root_indp`.
1099
+ """
1100
+ function late_binding_update_u0_p (prob, u0, p, t0, newu0, newp)
1101
+ root_indp = prob
1102
+ while hasmethod (symbolic_container, Tuple{typeof (root_indp)}) && (sc = symbolic_container (root_indp)) != = root_indp
1103
+ root_indp = sc
1104
+ end
1105
+ return late_binding_update_u0_p (prob, root_indp, u0, p, t0, newu0, newp)
1079
1106
end
1080
1107
1081
1108
# overloaded in MTK to intercept symbolic remake
0 commit comments