A bevy of requests
Posted: 22 Jan 2015, 03:59
It would be great if support for the E6 and E7 groups could be added to the \( \texttt{wythoff} \) polytope constructor. Looking at simple_roots.cc, it seems this is just a matter of adding the root systems, which can be found on e.g. Wikipedia. At first I thought that the obstruction was that the simple roots include square roots, so they're not of type \( \texttt{SparseMatrix<Rational>} \), but then I saw that \( \texttt{simple_roots_type_H4} \) returns a \( \texttt{SparseMatrix<QE>} \) with square roots.
Is there some other obstruction?
E8 is implemented, but the labeling of the nodes is unclear. The source code in simple_roots.cc says
But in the perl interface, \( \texttt{help 'simple_roots_type_E8'} \) says
It would be nice if the function \( \texttt{pyramid(P, z)} \), where z is a Rational giving the height of the new apex, took z of type QuadraticExtension as well. This would allow, for example, the recursive construction of a full-dimensional regular simplex via
(starting from \( n=1 \), with $t a length-1 line segment.)
Speaking of this, constructing a full-dimensional regular simplex seems overly difficult. I would really appreciate a \( \texttt{regular_simplex} \) method, to go along with \( \texttt{cube} \) and \( \texttt{cross} \) (\( \texttt{simplex} \) produces a "standard" simplex, which is not regular.)
The function \( \texttt{wythoff("An", new Set<Int>(0))} \) produces a regular n-simplex in (n+1) dimensions, which is not full dimensional, and using \( \texttt{projection_full} \) on this results in a standard simplex again.
Other polytope construction functions, such as \( \texttt{edge_middle} \) and \( \texttt{truncation} \), could also be updated to work with QuadraticExtension. In polymake 2.13 (and the current perpetual beta), both fail to produce a rectified 120-cell, presumably due to rational approximation.
Here, \( \texttt{edge_middle} \) produces spurious edges and faces, and misses many cells (the correct F_VECTOR is 1200 3600 3120 720.)
Here, \( \texttt{truncation} \) produces spurious vertices.
\( \texttt{wythoff("H4", range(1,1))} \) produces the correct polytope.
Is there some other obstruction?
E8 is implemented, but the labeling of the nodes is unclear. The source code in simple_roots.cc says
Code: Select all
7
|
|
0 ---- 1 ---- 2 ---- 3 ---- 4 ---- 5 ---- 6
Code: Select all
7
|
|
0 ---- 1 ---- 2 ---- 3 ---- 4 ---- 5 ---- 6
Code: Select all
$n++;
$t = pyramid($t, new QuadraticExtension(0,new Rational(1,2*$n),2*$n*($n+1)));
Speaking of this, constructing a full-dimensional regular simplex seems overly difficult. I would really appreciate a \( \texttt{regular_simplex} \) method, to go along with \( \texttt{cube} \) and \( \texttt{cross} \) (\( \texttt{simplex} \) produces a "standard" simplex, which is not regular.)
The function \( \texttt{wythoff("An", new Set<Int>(0))} \) produces a regular n-simplex in (n+1) dimensions, which is not full dimensional, and using \( \texttt{projection_full} \) on this results in a standard simplex again.
Other polytope construction functions, such as \( \texttt{edge_middle} \) and \( \texttt{truncation} \), could also be updated to work with QuadraticExtension. In polymake 2.13 (and the current perpetual beta), both fail to produce a rectified 120-cell, presumably due to rational approximation.
Code: Select all
> $reg120 = regular_120_cell();
> $rect120 = edge_middle($reg120);
> print $rect120->F_VECTOR;
1200 4896 5472 177
Code: Select all
> $rect120 = truncation($reg120,All,cutoff=>1);
> print $rect120->F_VECTOR;
2400 4800 3120 720
\( \texttt{wythoff("H4", range(1,1))} \) produces the correct polytope.