File tree Expand file tree Collapse file tree 1 file changed +18
-0
lines changed
src/structural_transformation Expand file tree Collapse file tree 1 file changed +18
-0
lines changed Original file line number Diff line number Diff line change @@ -482,11 +482,29 @@ function lower_shift_varname(var, iv)
482
482
end
483
483
end
484
484
485
+ function descend_lower_shift_varname_with_unit (var, iv)
486
+ symbolic_type (var) == NotSymbolic () && return var
487
+ ModelingToolkit. _with_unit (descend_lower_shift_varname, var, iv, iv)
488
+ end
489
+ function descend_lower_shift_varname (var, iv)
490
+ iscall (var) || return var
491
+ op = operation (var)
492
+ if op isa Shift
493
+ return shift2term (var)
494
+ else
495
+ args = arguments (var)
496
+ args = map (Base. Fix2 (descend_lower_shift_varname, iv), args)
497
+ return maketerm (typeof (var), op, args, Symbolics. metadata (var))
498
+ end
499
+ end
500
+
485
501
"""
486
502
Rename a Shift variable with negative shift, Shift(t, k)(x(t)) to xₜ₋ₖ(t).
487
503
"""
488
504
function shift2term (var)
505
+ iscall (var) || return var
489
506
op = operation (var)
507
+ op isa Shift || return var
490
508
iv = op. t
491
509
arg = only (arguments (var))
492
510
if operation (arg) === getindex
You can’t perform that action at this time.
0 commit comments