From 70cde4467331ce6abc32aa43848523b9c5e7bbaa Mon Sep 17 00:00:00 2001 From: kalmarek Date: Wed, 8 Nov 2017 11:09:29 +0100 Subject: [PATCH] much faster generate_balls (using Base.product) --- src/Groups.jl | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/Groups.jl b/src/Groups.jl index d471d81..71929b7 100644 --- a/src/Groups.jl +++ b/src/Groups.jl @@ -390,6 +390,17 @@ function generate_balls{T<:GroupElem}(S::Vector{T}, Id::T=parent(first(S))(); ra return B, sizes end +function generate_balls{T<:RingElem}(S::Vector{T}, Id::T=one(parent(first(S))); radius=2, op=*) + sizes = Int[] + B = [Id] + for i in 1:radius + BB = [op(i,j) for (i,j) in Base.product(B,S)] + B = unique([B; vec(BB)]) + push!(sizes, length(B)) + end + return B, sizes +end + ############################################################################### # # Includes