Macaulay2 » Documentation
Packages » Triangulations :: secondaryCone
next | previous | forward | backward | up | index | toc

secondaryCone -- secondary cone of a triangulation, in charge-lattice coordinates

Description

Working modulo the lineality space. In ambient $\mathbb{R}^N$, every weight vector $w$ inducing the triangulation $T$ yields the same regular subdivision when shifted by an element of $\mathrm{rowspan}(A)$ (linear/affine functions of the configuration), so the secondary cone has lineality of dimension $\mathrm{rank}(A)$. Quotienting by this lineality via $t = Q w$ -- where $Q$ is the charge matrix -- produces a pointed cone in $\mathbb{R}^{N-d}$, the natural home of the secondary cone (and, in due course, the secondary fan).

Each row of $M$ comes from one wall circuit $z$ of $T$ (see wallCircuits): solving $z = z' Q$ over $\mathbb{Z}$ gives the reduced inequality $z'$, and the rows of $M$ are these $z'$. When the user supplies their own DegreeMatrix, each row of $M$ is expressed in that basis instead.

The triangulation is regular iff this cone has nonempty interior in $\mathbb{R}^{N-d}$, which can be tested with the engine LP rawConeInteriorPoint (see isRegularTriangulation).

To recover a weight vector $w \in \mathbb{R}^N$ from an interior point $t$ of the reduced cone, lift via any $w$ with $Q w = t$ (for instance $w = \mathrm{solve}(Q, t)$). Any such $w$ induces the triangulation; different lifts differ by an element of the lineality and produce the same triangulation.

i1 : A = transpose matrix {{0,0},{1,0},{0,1},{1,1}}

o1 = | 0 1 0 1 |
     | 0 0 1 1 |

              2       4
o1 : Matrix ZZ  <-- ZZ
i2 : T1 = triangulation(A, {{0,1,3},{0,2,3}})

o2 = triangulation {{0, 1, 3}, {0, 2, 3}}

o2 : Triangulation
i3 : T2 = triangulation(A, {{0,1,2},{1,2,3}})

o3 = triangulation {{0, 1, 2}, {1, 2, 3}}

o3 : Triangulation
i4 : secondaryCone T1

o4 = | -1 |

              1       1
o4 : Matrix ZZ  <-- ZZ
i5 : secondaryCone T2

o5 = | 1 |

              1       1
o5 : Matrix ZZ  <-- ZZ

A vector configuration: 8 corners of a 3-cube, treated as a $4 \times 8$ vector configuration (homogenized by hand with a row of $1$'s). The reduced cone lives in $\mathbb{R}^{8-4} = \mathbb{R}^4$.

i6 : V = transpose matrix {{1,1,1,1},{0,1,1,1},{1,0,1,1},{1,1,0,1},{0,0,1,1},{0,1,0,1},{1,0,0,1},{0,0,0,1}}

o6 = | 1 0 1 1 0 0 1 0 |
     | 1 1 0 1 0 1 0 0 |
     | 1 1 1 0 1 0 0 0 |
     | 1 1 1 1 1 1 1 1 |

              4       8
o6 : Matrix ZZ  <-- ZZ
i7 : Tv = triangulation(V, {{0,1,2,3},{1,2,3,4},{1,3,4,5},{2,3,4,6},{3,4,5,6},{4,5,6,7}})

o7 = triangulation {{0, 1, 2, 3}, {1, 2, 3, 4}, {1, 3, 4, 5}, {2, 3, 4, 6}, {3, 4, 5, 6}, {4, 5, 6, 7}}

o7 : Triangulation
i8 : M = secondaryCone Tv

o8 = | -1 0  1  1 |
     | 1  -1 0  0 |
     | 1  0  0  0 |
     | -1 1  -1 0 |

              4       4
o8 : Matrix ZZ  <-- ZZ
i9 : Q = degreeMatrix Tv

o9 = | 0 1 0  -1 -1 0  1 0  |
     | 0 1 -1 0  0  -1 1 0  |
     | 0 0 -1 0  1  0  1 -1 |
     | 1 0 0  -1 -1 0  0 1  |

              4       8
o9 : Matrix ZZ  <-- ZZ
i10 : M * Q * (transpose matrix {regularTriangulationWeights Tv})

o10 = | 1 |
      | 1 |
      | 1 |
      | 1 |

               4       1
o10 : Matrix ZZ  <-- ZZ

See also

Ways to use secondaryCone:

  • secondaryCone(Matrix,List)
  • secondaryCone(Triangulation)

For the programmer

The object secondaryCone is a method function with options.


The source of this document is in Triangulations.m2:2340:0.