1
0
mirror of https://github.com/kalmarek/PropertyT.jl.git synced 2024-08-08 15:58:52 +02:00

make the laplacian generation code more generic

This commit is contained in:
kalmar 2017-02-11 13:34:28 +01:00
parent 7f707e60a0
commit f9f96acb9a

View File

@ -37,24 +37,21 @@ function constraints_from_pm(pm, total_length=maximum(pm))
end end
return constraints return constraints
end end
function Laplacian_sparse(S::Array{Array{Float64,2},1},
basis::Array{Array{Float64,2},1})
function splaplacian_coeff(S, basis, n=length(basis))
squares = unique(vcat([basis[1]], S, products(S,S))) squares = unique(vcat([basis[1]], S, products(S,S)))
result = spzeros(length(basis)) result = spzeros(n)
result[1] = length(S) result[1] = length(S)
for s in S for s in S
ind = find(basis, s) ind = findfirst(basis, s)
result[ind] += -1 result[ind] += -1
end end
return result return result
end end
function Laplacian(S::Array{Array{Float64,2},1}, function laplacian_coeff(S, basis)
basis:: Array{Array{Float64,2},1}) return full(splaplacian_coeff(S,basis))
return full(Laplacian_sparse(S,basis))
end end