# 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:
• Object => ..., default value polytope, specify combinatorial object
• 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.

• symbolicSlackMatrix -- computes the symbolic slack matrix
• Object -- select the combinatorial object which the input should be interpreted as

## Ways to use slackMatrix :

• "slackMatrix(Cone)"
• "slackMatrix(List)"
• "slackMatrix(Matroid)"
• "slackMatrix(Polyhedron)"

## For the programmer

The object slackMatrix is .