File tree Expand file tree Collapse file tree 1 file changed +7
-9
lines changed
src/structural_transformation Expand file tree Collapse file tree 1 file changed +7
-9
lines changed Original file line number Diff line number Diff line change @@ -433,20 +433,18 @@ end
433
433
434
434
function simplify_shifts (var)
435
435
ModelingToolkit. hasshift (var) || return var
436
- r = @rule ~ x :: isdoubleshift => begin
437
- op1 = operation (~ x )
438
- vv1 = arguments (~ x )[1 ]
436
+ if isdoubleshift (var)
437
+ op1 = operation (var )
438
+ vv1 = arguments (var )[1 ]
439
439
op2 = operation (vv1)
440
440
vv2 = arguments (vv1)[1 ]
441
441
s1 = op1. steps
442
442
s2 = op2. steps
443
443
t1 = op1. t
444
444
t2 = op2. t
445
- if t1 === nothing
446
- ModelingToolkit. Shift (t2, s1 + s2)(vv2)
447
- else
448
- ModelingToolkit. Shift (t1, s1 + s2)(vv2)
449
- end
445
+ return simplify_shifts (ModelingToolkit. Shift (t1 === nothing ? t2 : t1, s1 + s2)(vv2))
446
+ else
447
+ return similarterm (var, operation (var), simplify_shifts .(arguments (var)),
448
+ Symbolics. symtype (var); metadata = unwrap (var). metadata)
450
449
end
451
- return Postwalk (PassThrough (r))(var)
452
450
end
You can’t perform that action at this time.
0 commit comments