Skip to content

Commit dc3e2dc

Browse files
fix: fix type promotion in InitializationProblem
1 parent d3c9d36 commit dc3e2dc

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/systems/diffeqs/abstractodesystem.jl

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1391,16 +1391,16 @@ function InitializationProblem{iip, specialize}(sys::AbstractSystem,
13911391
fullmap = merge(u0map, parammap)
13921392
u0T = Union{}
13931393
for sym in unknowns(isys)
1394-
haskey(fullmap, sym) || continue
1395-
symbolic_type(fullmap[sym]) == NotSymbolic() || continue
1396-
is_array_of_symbolics(fullmap[sym]) && continue
1397-
u0T = promote_type(u0T, typeof(fullmap[sym]))
1394+
val = fixpoint_sub(sym, fullmap)
1395+
symbolic_type(val) == NotSymbolic() || continue
1396+
u0T = promote_type(u0T, typeof(val))
13981397
end
13991398
for eq in observed(isys)
1400-
haskey(fullmap, eq.lhs) || continue
1401-
symbolic_type(fullmap[eq.lhs]) == NotSymbolic() || continue
1402-
is_array_of_symbolics(fullmap[eq.lhs]) && continue
1403-
u0T = promote_type(u0T, typeof(fullmap[eq.lhs]))
1399+
# ignore HACK-ed observed equations
1400+
symbolic_type(eq.lhs) == ArraySymbolic() && continue
1401+
val = fixpoint_sub(eq.lhs, fullmap)
1402+
symbolic_type(val) == NotSymbolic() || continue
1403+
u0T = promote_type(u0T, typeof(val))
14041404
end
14051405
if u0T != Union{}
14061406
u0T = eltype(u0T)

0 commit comments

Comments
 (0)