1
1
extract_idv (eq:: DiffEq ) = eq. D. x
2
2
3
- function lower_varname (D:: Differential , x, naming_scheme ; lower= false )
3
+ function lower_varname (D:: Differential , x; lower= false )
4
4
order = lower ? D. order- 1 : D. order
5
- return lower_varname (x, D. x, order, naming_scheme )
5
+ return lower_varname (x, D. x, order)
6
6
end
7
- function lower_varname (var:: Variable , idv, order:: Int , naming_scheme )
7
+ function lower_varname (var:: Variable , idv, order:: Int )
8
8
sym = var. name
9
- name = order == 0 ? sym : Symbol (sym, naming_scheme , string (idv. name)^ order)
9
+ name = order == 0 ? sym : Symbol (sym, :_ , string (idv. name)^ order)
10
10
return Variable (name, var. subtype, var. dependents)
11
11
end
12
12
@@ -15,8 +15,8 @@ function ode_order_lowering(sys::DiffEqSystem; kwargs...)
15
15
eqs_lowered = ode_order_lowering (eqs; kwargs... )
16
16
DiffEqSystem (eqs_lowered, sys. iv)
17
17
end
18
- ode_order_lowering (eqs; naming_scheme = " _ " ) = ode_order_lowering! (deepcopy (eqs), naming_scheme )
19
- function ode_order_lowering! (eqs, naming_scheme )
18
+ ode_order_lowering (eqs) = ode_order_lowering! (deepcopy (eqs))
19
+ function ode_order_lowering! (eqs)
20
20
idv = extract_idv (eqs[1 ])
21
21
D = Differential (idv, 1 )
22
22
var_order = Dict {Variable,Int} ()
@@ -30,15 +30,15 @@ function ode_order_lowering!(eqs, naming_scheme)
30
30
var_order[var] = maxorder
31
31
var ∈ vars || push! (vars, var)
32
32
end
33
- lhs_renaming! (eq, D, naming_scheme )
34
- rhs_renaming! (eq, naming_scheme )
33
+ lhs_renaming! (eq, D)
34
+ rhs_renaming! (eq)
35
35
end
36
36
37
37
for var ∈ vars
38
38
order = var_order[var]
39
39
for o in (order- 1 ): - 1 : 1
40
- lvar = lower_varname (var, idv, o- 1 , naming_scheme )
41
- rhs = lower_varname (var, idv, o, naming_scheme )
40
+ lvar = lower_varname (var, idv, o- 1 )
41
+ rhs = lower_varname (var, idv, o)
42
42
eq = DiffEq (D, lvar, rhs)
43
43
push! (eqs, eq)
44
44
end
@@ -47,20 +47,20 @@ function ode_order_lowering!(eqs, naming_scheme)
47
47
return eqs
48
48
end
49
49
50
- function lhs_renaming! (eq:: DiffEq , D, naming_scheme )
51
- eq. var = lower_varname (eq. D, eq. var, naming_scheme, lower= true )
50
+ function lhs_renaming! (eq:: DiffEq , D)
51
+ eq. var = lower_varname (eq. D, eq. var, lower= true )
52
52
eq. D = D
53
53
return eq
54
54
end
55
- rhs_renaming! (eq:: DiffEq , naming_scheme ) = _rec_renaming! (eq. rhs, naming_scheme )
55
+ rhs_renaming! (eq:: DiffEq ) = _rec_renaming! (eq. rhs)
56
56
57
- function _rec_renaming! (rhs, naming_scheme )
57
+ function _rec_renaming! (rhs)
58
58
isa (rhs, Operation) && isa (rhs. op, Differential) &&
59
- return lower_varname (rhs. op, rhs. args[1 ], naming_scheme )
59
+ return lower_varname (rhs. op, rhs. args[1 ])
60
60
if rhs isa Operation
61
61
args = rhs. args
62
62
for i in eachindex (args)
63
- args[i] = _rec_renaming! (args[i], naming_scheme )
63
+ args[i] = _rec_renaming! (args[i])
64
64
end
65
65
end
66
66
rhs
0 commit comments