Skip to content

Commit 8f85320

Browse files
refactor: improve sorted_arguments performance
1 parent 605e45f commit 8f85320

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

src/terminterface.jl

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,11 +89,12 @@ julia> sorted_arguments(expr)
8989
@match x begin
9090
BSImpl.AddMul(; variant) => begin
9191
args = copy(parent(arguments(x)))
92-
@match variant begin
93-
AddMulVariant.ADD => sort!(args; by = get_degrees, lt = monomial_lt)
94-
AddMulVariant.MUL => sort!(args; by = get_degrees)
92+
degrees = map(get_degrees, args)
93+
idxs = @match variant begin
94+
AddMulVariant.ADD => sortperm(degrees; lt = monomial_lt)
95+
AddMulVariant.MUL => sortperm(degrees)
9596
end
96-
return ROArgsT{T}(ArgsT{T}(args))
97+
return ROArgsT{T}(ArgsT{T}(args[idxs]))
9798
end
9899
_ => return arguments(x)
99100
end

0 commit comments

Comments
 (0)