@@ -33,8 +33,6 @@ function flatten_expr!(x)
3333 x
3434end
3535
36- default_tensor_constructor (x) = x-> (out = similar (typeof (u),$ (size (rhss)... )); out .= x)
37-
3836function build_function (rhss, vs, ps = (), args = (), conv = simplified_expr, expression = Val{true };
3937 checkbounds = false , constructor= nothing , linenumbers = true )
4038 _vs = map (x-> x isa Operation ? x. op : x, vs)
@@ -61,11 +59,11 @@ function build_function(rhss, vs, ps = (), args = (), conv = simplified_expr, ex
6159 if rhss isa Matrix
6260 arr_sys_expr = build_expr (:vcat , [build_expr (:row ,[conv (rhs) for rhs ∈ rhss[i,:]]) for i in 1 : size (rhss,1 )])
6361 # : x because ??? what to do in the general case?
64- _constructor = constructor === nothing ? :(u isa ModelingToolkit. StaticArrays. StaticArray ? ModelingToolkit. StaticArrays. SMatrix{$ (size (rhss)... )} : default_tensor_constructor ) : constructor
62+ _constructor = constructor === nothing ? :(u isa ModelingToolkit. StaticArrays. StaticArray ? ModelingToolkit. StaticArrays. SMatrix{$ (size (rhss)... )} : x -> (out = similar ( typeof (u), $ ( size (rhss) ... )); out . = x) ) : constructor
6563 elseif typeof (rhss) <: Array && ! (typeof (rhss) <: Vector )
6664 vector_form = build_expr (:vect , [conv (rhs) for rhs ∈ rhss])
6765 arr_sys_expr = :(reshape ($ vector_form,$ (size (rhss)... )))
68- _constructor = constructor === nothing ? :(u isa ModelingToolkit. StaticArrays. StaticArray ? ModelingToolkit. StaticArrays. SArray{$ (size (rhss)... )} : default_tensor_constructor ) : constructor
66+ _constructor = constructor === nothing ? :(u isa ModelingToolkit. StaticArrays. StaticArray ? ModelingToolkit. StaticArrays. SArray{$ (size (rhss)... )} : x -> (out = similar ( typeof (u), $ ( size (rhss) ... )); out . = x) ) : constructor
6967 elseif rhss isa SparseMatrixCSC
7068 vector_form = build_expr (:vect , [conv (rhs) for rhs ∈ nonzeros (rhss)])
7169 arr_sys_expr = :(SparseMatrixCSC {eltype(u),Int} ($ (size (rhss)... ), $ (rhss. colptr), $ (rhss. rowval), $ vector_form))
0 commit comments