next | previous | forward | backward | up | index | toc

# symbolicSlackOfPlucker -- fill the slack matrix with Plücker variables

## Synopsis

• Usage:
fillPl = symbolicSlackOfPlucker(v, B)
fillPl = symbolicSlackOfPlucker(V, B)
fillPl = symbolicSlackOfPlucker V
fillPl = symbolicSlackOfPlucker(S, B)
fillPl = symbolicSlackOfPlucker S
fillPl = symbolicSlackOfPlucker P
fillPl = symbolicSlackOfPlucker M
• Inputs:
• v, an integer, number of polytope vertices, cone generators, or matroid vectors
• B, a list, set of hyperplane spanning set indices
• V, a list, list of coordinates for polytope vertices, cone generators, or matroid vectors
• S, , (symbolic) slack matrix
• P, , a polytope
• M, , a matroid
• Optional inputs:
• CoefficientRing => ..., default value QQ, specifies the coefficient ring of the underlying ring of the matrix
• Object => ..., default value "polytope", specify combinatorial object
• Outputs:
• fillPl, , slack matrix filled with Plücker variables

## Description

Given the number of polytope vertices, cone generators, or matroid vectors, or a set of polytope vertices, cone generators, or matroid vectors, or a slack matrix and a set of set of hyperplane spanning set indices, it fills the slack matrix with Plücker variables.

 i1 : v = 6; i2 : B = {{1, 2, 4}, {0, 2, 3}, {0, 1, 4}, {3, 4, 5}, {0, 1, 2}}; i3 : fillPl = symbolicSlackOfPlucker(v, B) o3 = | -p_(0,1,2,4) 0 0 -p_(0,3,4,5) 0 | | 0 p_(0,1,2,3) 0 -p_(1,3,4,5) 0 | | 0 0 -p_(0,1,2,4) -p_(2,3,4,5) 0 | | -p_(1,2,3,4) 0 -p_(0,1,3,4) 0 p_(0,1,2,3) | | 0 p_(0,2,3,4) 0 0 p_(0,1,2,4) | | p_(1,2,4,5) p_(0,2,3,5) p_(0,1,4,5) 0 p_(0,1,2,5) | 6 5 o3 : Matrix (QQ[p ..p , p , p , p , p , p , p , p , p , p , p , p , p , p ]) <-- (QQ[p ..p , p , p , p , p , p , p , p , p , p , p , p , p , p ]) 0,1,2,3 0,1,2,4 0,1,3,4 0,2,3,4 1,2,3,4 0,1,2,5 0,1,3,5 0,2,3,5 1,2,3,5 0,1,4,5 0,2,4,5 1,2,4,5 0,3,4,5 1,3,4,5 2,3,4,5 0,1,2,3 0,1,2,4 0,1,3,4 0,2,3,4 1,2,3,4 0,1,2,5 0,1,3,5 0,2,3,5 1,2,3,5 0,1,4,5 0,2,4,5 1,2,4,5 0,3,4,5 1,3,4,5 2,3,4,5
 i4 : V = {{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {1, 0, 1}, {1, 1, 0}}; i5 : B = {{1, 2, 4}, {0, 2, 3}, {0, 1, 4}, {3, 4, 5}, {0, 1, 2}}; i6 : fillPl = symbolicSlackOfPlucker(V, B) o6 = | -p_(0,1,2,4) 0 0 -p_(0,3,4,5) 0 | | 0 p_(0,1,2,3) 0 -p_(1,3,4,5) 0 | | 0 0 -p_(0,1,2,4) -p_(2,3,4,5) 0 | | -p_(1,2,3,4) 0 -p_(0,1,3,4) 0 p_(0,1,2,3) | | 0 p_(0,2,3,4) 0 0 p_(0,1,2,4) | | p_(1,2,4,5) p_(0,2,3,5) p_(0,1,4,5) 0 p_(0,1,2,5) | 6 5 o6 : Matrix (QQ[p ..p , p , p , p , p , p , p , p , p , p , p , p , p , p ]) <-- (QQ[p ..p , p , p , p , p , p , p , p , p , p , p , p , p , p ]) 0,1,2,3 0,1,2,4 0,1,3,4 0,2,3,4 1,2,3,4 0,1,2,5 0,1,3,5 0,2,3,5 1,2,3,5 0,1,4,5 0,2,4,5 1,2,4,5 0,3,4,5 1,3,4,5 2,3,4,5 0,1,2,3 0,1,2,4 0,1,3,4 0,2,3,4 1,2,3,4 0,1,2,5 0,1,3,5 0,2,3,5 1,2,3,5 0,1,4,5 0,2,4,5 1,2,4,5 0,3,4,5 1,3,4,5 2,3,4,5
 i7 : V = {{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {1, 0, 1}, {1, 1, 0}}; i8 : fillPl = symbolicSlackOfPlucker V Input has been reordered to {{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {1, 1, 0}, {0, 0, 1}, {1, 0, 1}} o8 = | 0 -p_(0,1,3,5) 0 0 -p_(0,2,3,4) | | p_(0,1,2,4) 0 0 0 -p_(1,2,3,4) | | 0 p_(1,2,3,5) -p_(0,1,2,4) 0 0 | | -p_(0,2,3,4) 0 -p_(0,1,3,4) p_(0,1,2,3) 0 | | 0 -p_(1,3,4,5) 0 p_(0,1,2,4) 0 | | p_(0,2,4,5) 0 p_(0,1,4,5) p_(0,1,2,5) p_(2,3,4,5) | 6 5 o8 : Matrix (QQ[p ..p , p , p , p , p , p , p , p , p , p , p , p , p , p ]) <-- (QQ[p ..p , p , p , p , p , p , p , p , p , p , p , p , p , p ]) 0,1,2,3 0,1,2,4 0,1,3,4 0,2,3,4 1,2,3,4 0,1,2,5 0,1,3,5 0,2,3,5 1,2,3,5 0,1,4,5 0,2,4,5 1,2,4,5 0,3,4,5 1,3,4,5 2,3,4,5 0,1,2,3 0,1,2,4 0,1,3,4 0,2,3,4 1,2,3,4 0,1,2,5 0,1,3,5 0,2,3,5 1,2,3,5 0,1,4,5 0,2,4,5 1,2,4,5 0,3,4,5 1,3,4,5 2,3,4,5
 i9 : V = {{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {1, 0, 1}, {1, 1, 0}}; i10 : B = {{1, 2, 4}, {0, 2, 3}, {0, 1, 4}, {3, 4, 5}, {0, 1, 2}}; i11 : fillPl = symbolicSlackOfPlucker(slackMatrix V, B) Order of vertices is {{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {1, 1, 0}, {0, 0, 1}, {1, 0, 1}} o11 = | -p_(0,1,2,4) 0 0 -p_(0,3,4,5) 0 | | 0 p_(0,1,2,3) 0 -p_(1,3,4,5) 0 | | 0 0 -p_(0,1,2,4) -p_(2,3,4,5) 0 | | -p_(1,2,3,4) 0 -p_(0,1,3,4) 0 p_(0,1,2,3) | | 0 p_(0,2,3,4) 0 0 p_(0,1,2,4) | | p_(1,2,4,5) p_(0,2,3,5) p_(0,1,4,5) 0 p_(0,1,2,5) | 6 5 o11 : Matrix (QQ[p ..p , p , p , p , p , p , p , p , p , p , p , p , p , p ]) <-- (QQ[p ..p , p , p , p , p , p , p , p , p , p , p , p , p , p ]) 0,1,2,3 0,1,2,4 0,1,3,4 0,2,3,4 1,2,3,4 0,1,2,5 0,1,3,5 0,2,3,5 1,2,3,5 0,1,4,5 0,2,4,5 1,2,4,5 0,3,4,5 1,3,4,5 2,3,4,5 0,1,2,3 0,1,2,4 0,1,3,4 0,2,3,4 1,2,3,4 0,1,2,5 0,1,3,5 0,2,3,5 1,2,3,5 0,1,4,5 0,2,4,5 1,2,4,5 0,3,4,5 1,3,4,5 2,3,4,5
 i12 : V = {{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {1, 0, 1}, {1, 1, 0}}; i13 : fillPl = symbolicSlackOfPlucker(slackMatrix V) Order of vertices is {{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {1, 1, 0}, {0, 0, 1}, {1, 0, 1}} o13 = | 0 -p_(0,1,3,5) 0 0 -p_(0,2,3,4) | | p_(0,1,2,4) 0 0 0 -p_(1,2,3,4) | | 0 p_(1,2,3,5) -p_(0,1,2,4) 0 0 | | -p_(0,2,3,4) 0 -p_(0,1,3,4) p_(0,1,2,3) 0 | | 0 -p_(1,3,4,5) 0 p_(0,1,2,4) 0 | | p_(0,2,4,5) 0 p_(0,1,4,5) p_(0,1,2,5) p_(2,3,4,5) | 6 5 o13 : Matrix (QQ[p ..p , p , p , p , p , p , p , p , p , p , p , p , p , p ]) <-- (QQ[p ..p , p , p , p , p , p , p , p , p , p , p , p , p , p ]) 0,1,2,3 0,1,2,4 0,1,3,4 0,2,3,4 1,2,3,4 0,1,2,5 0,1,3,5 0,2,3,5 1,2,3,5 0,1,4,5 0,2,4,5 1,2,4,5 0,3,4,5 1,3,4,5 2,3,4,5 0,1,2,3 0,1,2,4 0,1,3,4 0,2,3,4 1,2,3,4 0,1,2,5 0,1,3,5 0,2,3,5 1,2,3,5 0,1,4,5 0,2,4,5 1,2,4,5 0,3,4,5 1,3,4,5 2,3,4,5

• getFacetBases -- get a list of d-spanning elements for each facet
• slackFromPlucker -- fill the slack matrix of a given polytope, cone or matroid with Plücker coordinates
• slackFromGalePlucker -- fill the slack matrix with Plücker coordinates of the Gale transform

## Ways to use symbolicSlackOfPlucker :

• symbolicSlackOfPlucker(List)
• symbolicSlackOfPlucker(List,List)
• symbolicSlackOfPlucker(Matrix)
• symbolicSlackOfPlucker(Matrix,List)
• symbolicSlackOfPlucker(Matroid)
• symbolicSlackOfPlucker(Polyhedron)
• symbolicSlackOfPlucker(ZZ,List)

## For the programmer

The object symbolicSlackOfPlucker is .