Skip to content

Commit 06c8686

Browse files
Merge pull request #237 from JuliaDiffEq/nonsquare
fix non-square build_function
2 parents 12740a9 + 1687b58 commit 06c8686

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

src/utils.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ function build_function(rhss, vs, ps = (), args = (), conv = simplified_expr, ex
5757
tuple_sys_expr = build_expr(:tuple, [conv(rhs) for rhs rhss])
5858

5959
if rhss isa Matrix
60-
arr_sys_expr = build_expr(:vcat, [build_expr(:row,[conv(rhs) for rhs rhss[i,:]]) for i in 1:size(rhss,2)])
60+
arr_sys_expr = build_expr(:vcat, [build_expr(:row,[conv(rhs) for rhs rhss[i,:]]) for i in 1:size(rhss,1)])
6161
elseif typeof(rhss) <: Array && !(typeof(rhss) <: Vector)
6262
vector_form = build_expr(:vect, [conv(rhs) for rhs rhss])
6363
arr_sys_expr = :(reshape($vector_form,$(size(rhss)...)))

test/direct.jl

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,20 @@ J2 = copy(J)
3636
Jiip(J2,[1.0,2.0,3.0],[1.0,2.0,3.0],1.0)
3737
@test J2 == J
3838

39+
Joop,Jiip = eval.(ModelingToolkit.build_function(vcat(∂,∂),[x,y,z],[σ,ρ,β],[t.op.name]))
40+
J = Joop([1.0,2.0,3.0],[1.0,2.0,3.0],1.0)
41+
@test J isa Matrix
42+
J2 = copy(J)
43+
Jiip(J2,[1.0,2.0,3.0],[1.0,2.0,3.0],1.0)
44+
@test J2 == J
45+
46+
Joop,Jiip = eval.(ModelingToolkit.build_function(hcat(∂,∂),[x,y,z],[σ,ρ,β],[t.op.name]))
47+
J = Joop([1.0,2.0,3.0],[1.0,2.0,3.0],1.0)
48+
@test J isa Matrix
49+
J2 = copy(J)
50+
Jiip(J2,[1.0,2.0,3.0],[1.0,2.0,3.0],1.0)
51+
@test J2 == J
52+
3953
∂3 = cat(∂,∂,dims=3)
4054
Joop,Jiip = eval.(ModelingToolkit.build_function(∂3,[x,y,z],[σ,ρ,β],[t.op.name]))
4155
J = Joop([1.0,2.0,3.0],[1.0,2.0,3.0],1.0)

0 commit comments

Comments
 (0)