Skip to content

Commit d294b0e

Browse files
fix: handle unsized array symbolics in linear_expansion
1 parent d67cf8d commit d294b0e

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

src/linear_algebra.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,7 @@ function _linear_expansion(t, x)
328328
elseif op === getindex
329329
arrt, idxst... = arguments(t)
330330
isequal(arrt, arrx) && return (0, t, true)
331+
shape(arrt) == Unknown() && return (0, t, true)
331332

332333
indexed_t = OffsetArrays.Origin(map(first, axes(arrt)))(Symbolics.scalarize(arrt))[idxst...]
333334
# when indexing a registered function/callable symbolic

test/linear_solver.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,8 @@ a, b, islinear = Symbolics.linear_expansion(D(x) - x, x)
7777
@variables x[0:2]
7878
a, b, islin = Symbolics.linear_expansion(x[0] - z(x[1]), z(x[1]))
7979
@test islin && isequal(a, -1) && isequal(b, x[0])
80+
81+
@variables x::Vector{Real}
82+
a, b, islin = Symbolics.linear_expansion(x[0] - z(x[1]), z(x[1]))
83+
@test islin && isequal(a, -1) && isequal(b, x[0])
8084
end

0 commit comments

Comments
 (0)