From e5b4b9220b91711ee579d085dcfe45d862676220 Mon Sep 17 00:00:00 2001 From: kalmarek Date: Thu, 22 Mar 2018 10:52:53 +0100 Subject: [PATCH] make orbit decomposition slightly faster by allocating orbit only once --- src/OrbitDecomposition.jl | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/OrbitDecomposition.jl b/src/OrbitDecomposition.jl index 2fd79d5..9dee717 100644 --- a/src/OrbitDecomposition.jl +++ b/src/OrbitDecomposition.jl @@ -52,12 +52,13 @@ function orbit_decomposition(G::Nemo.Group, E::Vector, rdict=GroupRings.reverse_ tovisit = trues(E); orbits = Vector{Vector{Int}}() + orbit = zeros(Int, length(elts)) + for i in 1:endof(E) if tovisit[i] - orbit = zeros(Int, length(elts)) - a = E[i] - Threads.@threads for i in 1:length(elts) - orbit[i] = rdict[elts[i](a)] + g = E[i] + Threads.@threads for j in 1:length(elts) + orbit[j] = rdict[elts[j](g)] end tovisit[orbit] = false push!(orbits, unique(orbit))