Can polymake express a vertex map of hom(p, q) explicitly as a map, i.e., as a linear-map-matrix and a shift vector?

Thank you!

Can polymake express a vertex map of hom(p, q) explicitly as a map, i.e., as a linear-map-matrix and a shift vector?

Thank you!

Thank you!

Each point in the mapping polytope/Hom-polytope is encoded as the constant 1 (for homogenization) plus a matrix encoded as consecutive row vectors.

That matrix encodes a projective transformation (yielding affine coordinates, however), such that it can be applied to points in the polytope corresponding to the first argument directly.

Here is a use case (which will become part of the interactive help in the next polymake release):

Let us look at the mapping polytope of the unit interval and the standard unimodular triangle.
The dimension equals (dim I + 1) * dim T.
This is how to turn, e.g., the first vertex into a linear map.
The above are coordinates in R^2, without the homogenization commonly used in polymake.

That matrix encodes a projective transformation (yielding affine coordinates, however), such that it can be applied to points in the polytope corresponding to the first argument directly.

Here is a use case (which will become part of the interactive help in the next polymake release):

Let us look at the mapping polytope of the unit interval and the standard unimodular triangle.

Code: Select all

```
> $I=simplex(1); $T=simplex(2); $Hom_IT=mapping_polytope($I,$T);
```

Code: Select all

```
> print $Hom_IT->DIM
4
> print rows_labeled($Hom_IT->FACETS,$Hom_IT->FACET_LABELS);
v0*F0:0 1 0 0 0
v0*F1:0 0 0 1 0
v0*F2:1 -1 0 -1 0
v1*F0:0 1 1 0 0
v1*F1:0 0 0 1 1
v1*F2:1 -1 -1 -1 -1
> print $Hom_IT->N_VERTICES;
9
```

Code: Select all

```
> $v=$Hom_IT->VERTICES->[0];
> $M=new Matrix([$v->slice([1..2]),$v->slice([3..4])]);
> print $I->VERTICES * transpose($M);
0 0
1 0
```

Powered by phpBB® Forum Software © phpBB Limited