@@ -27,9 +27,9 @@ function ode_order_lowering(eqs, iv)
27
27
var_order[var] = maxorder
28
28
var ∈ vars || push! (vars, var)
29
29
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′)
33
33
end
34
34
35
35
for var ∈ vars
@@ -45,13 +45,10 @@ function ode_order_lowering(eqs, iv)
45
45
return new_eqs
46
46
end
47
47
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))
55
52
end
56
53
57
54
extract_var_order (eq:: DiffEq ) = (eq. var, eq. D. order)
0 commit comments