@@ -8,7 +8,7 @@ function alias_eliminate_graph!(state::TransformationState)
8
8
mm = linear_subsys_adjmat (state)
9
9
if size (mm, 1 ) == 0
10
10
ag = AliasGraph (ndsts (state. structure. graph))
11
- return ag, ag, mm, BitSet () # No linear subsystems
11
+ return ag, ag, mm, mm, BitSet () # No linear subsystems
12
12
end
13
13
14
14
@unpack graph, var_to_diff = state. structure
@@ -42,7 +42,7 @@ alias_elimination(sys) = alias_elimination!(TearingState(sys; quick_cancel = tru
42
42
function alias_elimination! (state:: TearingState )
43
43
sys = state. sys
44
44
complete! (state. structure)
45
- ag, complete_ag, mm , updated_diff_vars = alias_eliminate_graph! (state)
45
+ ag, mm, complete_ag, complete_mm , updated_diff_vars = alias_eliminate_graph! (state)
46
46
isempty (ag) && return sys
47
47
48
48
fullvars = state. fullvars
@@ -801,7 +801,8 @@ function alias_eliminate_graph!(graph, var_to_diff, mm_orig::SparseMatrixCLIL)
801
801
update_graph_neighbors! (graph, ag)
802
802
end
803
803
804
- return ag, complete_ag, mm, updated_diff_vars
804
+ complete_mm = reduce! (copy (echelon_mm), mm_orig, complete_ag, size (echelon_mm, 1 ))
805
+ return ag, mm, complete_ag, complete_mm, updated_diff_vars
805
806
end
806
807
807
808
function update_graph_neighbors! (graph, ag)
0 commit comments