documentation:release:4.1:tropical:patchwork

Available versions of this document: latest release, release 4.13, release 4.12, release 4.11, release 4.10, release 4.9, release 4.8, release 4.7, release 4.6, release 4.5, release 4.4, release 4.3, release 4.2, release 4.1, release 4.0, release 3.6, release 3.5, nightly master

Reference documentation for older polymake versions: release 3.4, release 3.3, release 3.2

BigObject Patchwork

from application tropical

This encodes a patchworking structure on a hypersurface.

Permutations:
ConesPerm:

UNDOCUMENTED

TermPerm:

UNDOCUMENTED

BETTI_NUMBERS_Z2

The Z_2 Betti numbers of the patchworked hypersurface. See the documentation of CHAIN_COMPLEX_Z2 for details.

Type:
Example:

A patchworked hyperplane in n-dimensional real projective space is topologically the (n-1)-dimensional real projective space:

 > $h = new tropical::Hypersurface<Max>(POLYNOMIAL=>toTropicalPolynomial("max(a,b,c,d,e,f)"));
 > $p = $h->PATCHWORK(SIGNS=>[0,0,0,0,0,0]);
 > print $p->BETTI_NUMBERS_Z2;
 1 1 1 1 1


CHAIN_COMPLEX_Z2

The cellular chain complex with Z_2 coefficients of the patchworked hypersurface. The d-th entry represents the d-th boundary matrix, i.e., the one mapping (d+1)-chains to d-chains. It is computed directly from the dual subdivision, which means that, instead of a tropical polynomial, one may initiate the Hypersurface object via its dual subdivision, which in turn allows this computation to be carried out on non-regular subdivisions.

Type:
Example:

A patchworked line in the real projective plane is combinatorially a triangle:

 > $h = new tropical::Hypersurface<Max>(MONOMIALS=>unit_matrix(3),COEFFICIENTS=>ones_vector(3));
 > $p = $h->PATCHWORK(SIGNS=>[0,1,0]);
 > $c = $p->CHAIN_COMPLEX_Z2;
 > $b = $c->boundary_matrix(1);
 > print $b->rows, "x", $b->cols;
 3x3
 > print rank($b);
 2
Example:

A non-regular example:

 > $points = [[1,4,0,0],[1,0,4,0],[1,0,0,4],[1,2,1,1],[1,1,2,1],[1,1,1,2]];
 > $cells = [[0,1,3],[0,2,5],[0,3,5],[1,2,4],[1,3,4],[2,4,5],[3,4,5]];
 > $moae = new fan::SubdivisionOfPoints(POINTS=>$points, MAXIMAL_CELLS=>$cells);
 > $h = new Hypersurface<Min>(DUAL_SUBDIVISION=>$moae);
 > $p = $h->PATCHWORK(SIGNS=>[0,0,0,0,0,0]);
 > print $p->CHAIN_COMPLEX_Z2->type->full_name;
 ChainComplex<SparseMatrix<GF2, NonSymmetric>>


REAL_FACETS

Facets of the real part of the patchworked hypersurface. Row indices correspond to orthants (ordered lexicographically), column indices correspond to facets of the original hypersurface. This is the transpose of REAL_PHASE.

Type:

REAL_PHASE

Real phase structure of the patchworked hypersurface. Row indices correspond to facets of the original hypersurface, column indices correspond to orthants (ordered lexicographically). I.e., a copy of facet i appears in orthant j, iff the j-th entry in the i-th row is 1. This is the transpose of REAL_FACETS.

Type:
Example:

 > $h = new tropical::Hypersurface<Max>(MONOMIALS=>unit_matrix(3),COEFFICIENTS=>ones_vector(3));
 > $p = $h->PATCHWORK(SIGNS=>[0,1,0]);
 > print $p->REAL_PHASE;
 {0 2}
 {2 3}
 {0 3}
 > $p->realize->VISUAL;


SIGNS

Sign distribution on the support of the POLYNOMIAL. Indices correspond to row indices of MONOMIALS.

Type:

realize(String method)

The real part of the patchworked hypersurface, realized as a polyhedral hypersurface in IR^dim. The vertices of each of the 2^dim copies of the hypersurface will be moved to the interior of the respective orthant (according to method), and relevant unbounded facets will be joined. If method is “rigid” (default), vertices will be translated to the positive orthant, and then reflected to their corresponding orthant. If method is “uniform”, vertices will be moved to the barycenter of the respective dual cell in the dual subdivision of the support, and then reflected to their corresponding orthant (this only works if the hypersurface is simplicial, e.g. for curves).

Parameters:

String method: “rigid” (default) or “uniform”

Returns:
Example:

Visualize a patchworked plane:

 > $h1 = new tropical::Hypersurface<Max>(POLYNOMIAL=>toTropicalPolynomial("max(a,b,c,d)"));
 > $p1 = $h1->PATCHWORK(SIGNS=>[1,0,1,0]);
 > $p1->realize->VISUAL;
Example:

A “nice” visualization for a curve:

 > $h2 = harnack_curve(3);
 > $p2 = $h2->PATCHWORK;
 > $p2->realize("uniform")->VISUAL;


  • documentation/release/4.1/tropical/patchwork.txt
  • Last modified: 2020/06/16 02:41
  • by 127.0.0.1