next | previous | forward | backward | up | top | index | toc | Macaulay2 website
SlackIdeals :: symbolicSlackMatrix

symbolicSlackMatrix -- computes the symbolic slack matrix

Synopsis

Description

The symbolic slack matrix records the combinatorial structure of the given object. Its (i, j)-entry is 0 if element i is in hyperplane j and it is a variable otherwise. Variables are indexed left to right by rows.

i1 : V = {{0, 0}, {0, 1}, {1, 1}, {1, 0}};
i2 : S = symbolicSlackMatrix V

Order of vertices is 
{{0, 0}, {1, 0}, {0, 1}, {1, 1}}

o2 = | 0   x_0 0   x_1 |
     | x_2 0   0   x_3 |
     | 0   x_4 x_5 0   |
     | x_6 0   x_7 0   |

                        4                  4
o2 : Matrix (QQ[x ..x ])  <--- (QQ[x ..x ])
                 0   7              0   7
i3 : M = matroid({0, 1, 2, 3, 4, 5}, {{1, 2, 3}, {0, 2, 4}, {0, 3, 5}, {1, 4, 5}}, EntryMode => "nonbases");
i4 : S = symbolicSlackMatrix M

o4 = | x_0  0    x_1  x_2  0    x_3  0    |
     | 0    x_4  x_5  x_6  x_7  0    0    |
     | x_8  x_9  0    x_10 0    0    x_11 |
     | x_12 0    x_13 0    x_14 0    x_15 |
     | 0    x_16 x_17 0    0    x_18 x_19 |
     | 0    0    0    x_20 x_21 x_22 x_23 |

                         6                   7
o4 : Matrix (QQ[x ..x  ])  <--- (QQ[x ..x  ])
                 0   23              0   23
i5 : V = {{1, 2, 3}, {4, 5, 6}, {1, 2, 4, 5}, {1, 3, 4, 6}, {2, 3, 5, 6}};
i6 : S = symbolicSlackMatrix(V, Object => "abstractPolytope")

o6 = | 0    x_0 0    0   x_1 |
     | 0    x_2 0    x_3 0   |
     | 0    x_4 x_5  0   0   |
     | x_6  0   0    0   x_7 |
     | x_8  0   0    x_9 0   |
     | x_10 0   x_11 0   0   |

                         6                   5
o6 : Matrix (QQ[x ..x  ])  <--- (QQ[x ..x  ])
                 0   11              0   11

See also

Ways to use symbolicSlackMatrix :

For the programmer

The object symbolicSlackMatrix is a method function with options.