Skip to content

Commit 259a46f

Browse files
Remove duplicate DiffEq construction
1 parent 64086d1 commit 259a46f

File tree

1 file changed

+7
-10
lines changed

1 file changed

+7
-10
lines changed

src/systems/diffeqs/first_order_transform.jl

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ function ode_order_lowering(eqs, iv)
2727
var_order[var] = maxorder
2828
var vars || push!(vars, var)
2929
end
30-
eq = lhs_renaming(eq, D)
31-
eq = rhs_renaming(eq)
32-
new_eqs[i] = eq
30+
var′ = lower_varname(eq.D, eq.var, lower = true)
31+
rhs′ = rename(eq.rhs)
32+
new_eqs[i] = DiffEq(D, var′, rhs′)
3333
end
3434

3535
for var vars
@@ -45,13 +45,10 @@ function ode_order_lowering(eqs, iv)
4545
return new_eqs
4646
end
4747

48-
lhs_renaming(eq::DiffEq, D) = DiffEq(D, lower_varname(eq.D, eq.var, lower=true), eq.rhs)
49-
rhs_renaming(eq::DiffEq) = DiffEq(eq.D, eq.var, _rec_renaming(eq.rhs))
50-
51-
function _rec_renaming(rhs)
52-
isa(rhs, Operation) || return rhs
53-
isa(rhs.op, Differential) && return lower_varname(rhs.op, rhs.args[1])
54-
return Operation(rhs.op, _rec_renaming.(rhs.args))
48+
function rename(O::Expression)
49+
isa(O, Operation) || return O
50+
isa(O.op, Differential) && return lower_varname(O.op, O.args[1])
51+
return Operation(O.op, rename.(O.args))
5552
end
5653

5754
extract_var_order(eq::DiffEq) = (eq.var, eq.D.order)

0 commit comments

Comments
 (0)