diff --git a/Orb_AutFN.jl b/Orb_AutFN.jl index 626e55d..121a5bd 100644 --- a/Orb_AutFN.jl +++ b/Orb_AutFN.jl @@ -31,29 +31,6 @@ sparsify{T}(U::AbstractArray{T}, eps=eps(T)) = sparsify!(deepcopy(U), eps) small_to_zero!{T}(A::AbstractArray{T}, eps=eps(T)) = A[abs(A) .< eps] = zero(T) -function orbit_spvector(vect::AbstractVector, orbits) - orb_vector = spzeros(length(orbits)) - - for (i,o) in enumerate(orbits) - k = vect[collect(o)] - val = k[1] - @assert all(k .== val) - orb_vector[i] = val - end - - return orb_vector -end - -function orbit_constraint(cnstrs::Vector{Vector{Vector{Int64}}}, n) - result = spzeros(n,n) - for cnstr in cnstrs - for p in cnstr - result[p[1],p[2]] += 1.0 - end - end - return 1/length(cnstrs)*result -end - function init_model(Uπs) m = JuMP.Model(); l = size(Uπs,1) diff --git a/OrbitDecomposition.jl b/OrbitDecomposition.jl index f98545e..8694dbb 100644 --- a/OrbitDecomposition.jl +++ b/OrbitDecomposition.jl @@ -65,6 +65,11 @@ function (p::Nemo.perm)(A::Nemo.MatElem) return R(Nemo.matrix_repr(p))*A*R(Nemo.matrix_repr(inv_p)) end +############################################################################### +# +# Orbit stuff +# +############################################################################### function orbit_decomposition(G::Nemo.Group, E::Vector, rdict=GroupRings.reverse_dict(E)) @@ -88,11 +93,27 @@ function orbit_decomposition(G::Nemo.Group, E::Vector, rdict=GroupRings.reverse_ return orbits end +function orbit_spvector(vect::AbstractVector, orbits) + orb_vector = spzeros(length(orbits)) + for (i,o) in enumerate(orbits) + k = vect[collect(o)] + val = k[1] + @assert all(k .== val) + orb_vector[i] = val + end + return orb_vector end +function orbit_constraint(cnstrs::Vector{Vector{Vector{Int64}}}, n) + result = spzeros(n,n) + for cnstr in cnstrs + for p in cnstr + result[p[1],p[2]] += 1.0 + end end + return 1/length(cnstrs)*result end ###############################################################################