From 85e07a5a57f45b8095fbfe30a11a8100f48e236f Mon Sep 17 00:00:00 2001 From: kalmar Date: Mon, 10 Apr 2017 21:46:33 +0200 Subject: [PATCH] add common routines for (unique) products and generation of balls --- src/PropertyT.jl | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/PropertyT.jl b/src/PropertyT.jl index 44fa1f7..a97efd2 100644 --- a/src/PropertyT.jl +++ b/src/PropertyT.jl @@ -10,6 +10,32 @@ const solver_logger = basic_config("info", fmt="{msg}") include("sdps.jl") include("checksolution.jl") +function products{T}(X::AbstractVector{T}, Y::AbstractVector{T}) + result = Vector{T}() + seen = Set{T}() + for x in X + for y in Y + z = x*y + if !in(z, seen) + push!(seen, z) + push!(result, z) + end + end + end + return result +end + +function generate_balls{T}(S::Vector{T}, Id::T; radius=4) + sizes = Vector{Int}() + S = vcat([Id], S) + B = [Id] + for i in 1:radius + B = products(B, S); + push!(sizes, length(B)) + end + return B, sizes +end + function pmĪ”filenames(name::String) if !isdir(name) mkdir(name)