1
0
mirror of https://github.com/kalmarek/PropertyT.jl.git synced 2024-11-27 01:10:28 +01:00

add keyword for twisted product_matrix

This commit is contained in:
kalmar 2017-04-17 15:23:36 +02:00
parent c0da44754d
commit e93ec0c422

View File

@ -1,14 +1,18 @@
using JuMP
import MathProgBase: AbstractMathProgSolver
function create_product_matrix{T}(basis::Vector{T}, limit)
function create_product_matrix{T}(basis::Vector{T}, limit; twisted=true)
product_matrix = zeros(Int, (limit,limit))
basis_dict = Dict{T, Int}(x => i
for (i,x) in enumerate(basis))
for i in 1:limit
x_inv::eltype(basis) = inv(basis[i])
if twisted
x = inv(basis[i])
else
x = basis[i]
end
for j in 1:limit
w = x_inv*basis[j]
w = x*basis[j]
product_matrix[i,j] = basis_dict[w]
# index = findfirst(basis, w)
# index ≠ 0 || throw(ArgumentError("Product is not supported on basis: $w"))
@ -18,6 +22,8 @@ function create_product_matrix{T}(basis::Vector{T}, limit)
return product_matrix
end
create_product_matrix{T}(basis::Vector{T}; twisted=twisted) = create_product_matrix(basis, length(basis); twisted=twisted)
function constraints_from_pm(pm, total_length)
n = size(pm,1)
constraints = constraints = [Array{Int,1}[] for x in 1:total_length]