slackMatrix -- computes the slack matrix of a given realization

Synopsis

• Usage:
S = slackMatrix V
S = slackMatrix M
S = slackMatrix P
S = slackMatrix C
• Inputs:
• V, a list, a list of vertices of a polytope, or the vectors of a linear matroid
• M, , a matroid
• P, , a polytope
• C, , a cone
• Optional inputs:
• Outputs:
• S, , a slack matrix of the realization

Description

A slack matrix depends on the given representation. Its rows are indexed by vertices/ground set elements and its columns are indexed by facets/hyperplanes. The (i, j)-entry is the j-th inequality evaluated on element i.

 `i1 : V = {{0, 0}, {0, 1}, {1, 1}, {1, 0}};` ```i2 : SP = slackMatrix V Order of vertices is {{0, 0}, {1, 0}, {0, 1}, {1, 1}} o2 = | 0 1 0 1 | | 1 0 0 1 | | 0 1 1 0 | | 1 0 1 0 | 4 4 o2 : Matrix QQ <--- QQ``` ```i3 : SM = slackMatrix(V, Object => "matroid") o3 = | -1 -1 0 -1 0 0 | | -1 0 1 0 1 0 | | 0 1 1 0 0 -1 | | 0 0 0 -1 -1 -1 | 4 6 o3 : Matrix ZZ <--- ZZ```
 `i4 : C = posHull(matrix{{1, 0, 0}, {0, 1, 0}, {0, 0, 1}});` ```i5 : S = slackMatrix C Order of rays is {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}} o5 = | 1 0 0 | | 0 1 0 | | 0 0 1 | 3 3 o5 : Matrix ZZ <--- ZZ```

Caveat

When giving a Matroid as input, the ground set must be a set of vectors giving a representation of the matroid.