@@ -664,20 +664,26 @@ function SciMLBase.late_binding_update_u0_p(
664
664
newp = p === missing ? copy (newp) : newp
665
665
initials, repack, alias = SciMLStructures. canonicalize (
666
666
SciMLStructures. Initials (), newp)
667
- initials = DiffEqBase. promote_u0 (initials, newu0, t0)
668
- newp = repack (initials)
667
+ if eltype (initials) != eltype (newu0)
668
+ initials = DiffEqBase. promote_u0 (initials, newu0, t0)
669
+ newp = repack (initials)
670
+ end
669
671
setp (sys, Initial .(unknowns (sys)))(newp, newu0)
670
672
return newu0, newp
671
673
end
672
674
673
675
newp = p === missing ? copy (newp) : newp
674
676
newu0 = DiffEqBase. promote_u0 (newu0, newp, t0)
675
677
tunables, repack, alias = SciMLStructures. canonicalize (SciMLStructures. Tunable (), newp)
676
- tunables = DiffEqBase. promote_u0 (tunables, newu0, t0)
677
- newp = repack (tunables)
678
+ if eltype (tunables) != eltype (newu0)
679
+ tunables = DiffEqBase. promote_u0 (tunables, newu0, t0)
680
+ newp = repack (tunables)
681
+ end
678
682
initials, repack, alias = SciMLStructures. canonicalize (SciMLStructures. Initials (), newp)
679
- initials = DiffEqBase. promote_u0 (initials, newu0, t0)
680
- newp = repack (initials)
683
+ if eltype (initials) != eltype (newu0)
684
+ initials = DiffEqBase. promote_u0 (initials, newu0, t0)
685
+ newp = repack (initials)
686
+ end
681
687
682
688
allsyms = all_symbols (sys)
683
689
for (k, v) in u0
0 commit comments