Produces a triangulated pile of hyper cubes: Each cube is split into
d! tetrahedra, and the tetrahedra are all grouped around one of the
diagonal axes of the cube.
Produce a surface of genus g. For g >= 0 the client produces
an orientable surface, otherwise it produces an nonorientable one.
Vertices may be specified.
Another important way of constructing simplicial complexes is to modify an
already existing one. Actually, these clients don't alter the input
file, but create a copy and modify it.
The clients try to preserve existing vertex labels or choose the new labels
according to the old ones to help you keep track of special vertices
throughout a series of constructions. You may suppress the
labeling of the vertices of the new complex by using the
-nol flag if it is of no
interest to you.
Create a simplicial complex as a barycentric subdivision of a given complex.
Each vertex in the new complex corresponds to a face in the old complex.
The option @c -relabel creates an additional section VERTEX_LABELS.
The labels are, most naturally, the faces of the original complex.
The option @c -geom_real reads the GEOMETRIC_REALIZATION of the input complex,
computes the coordinates of the new vertices and stores them in GEOMETRIC_REALIZATION of the produced complex.
Produce the k-cone over a given simplicial complex.
Default for the parameter k is 1.
The option @c -l specifies how to label the apex vertices. Default labels have the form
apex_0, apex_1, ... . In the case the input complex
has already vertex labels of this kind, the duplicates are avoided.
The @c -nol flag tells the client not to write any labels at all.
Parameters @i f_1 and @i f_2 specify which facet of the first and second complex correspondingly are glued together.
Default is the 0-th facet of both.
The vertices in the selected facets are identified with each other according to their order in the facet
(that is, in icreasing index order). The option @c -p allows to get an alternative identification. It should specify a
permutation of the vertices in the second facet. If the permutation contains contiguous sequences, they can be shortened
as @i n_1 ... @i n_2 (perl lovers might use just two points.) For example, (7 2 ... 4 12) = (7 2 3 4 12).
The vertices of the new complex get the original labels with `_1' or `_2' appended, according to the input complex
they came from. If you specify the @c -nol flag, the label generation will be omitted.
Extracts a subcomplex of a given complex and creates a new complex.
The indices of the selected vertices have to be stored as an ordered set
in a separate file section @i subcomplex_section.
The vertex labels are preserved unless the @c -nol flag is specified.
The new complex is produced by replacing all vertices from
each glueing set by one representative and removing
all redundancies.
The glueing sets have to be stored in a separate file section @i glueing_section
as an array of sets of vertex indices. If two sets are not disjoint, their union serves as
a single glueing set instead, thus providing transitivity. Vertices
not contained in any glueing set are considered to
be in a glueing set by themselves, therefore will not be
glued at all.
The labels of the new vertices are the original labels of the representative
vertices (that is, with the smallest index) of their glueing sets.
Let C be the given simplicial complex and A the subcomplex induced by
the given vertices. Then this client produces a simplicial complex
homotopy equivalent to C mod A, by adding the cone over A with
apex a to C.
The apex a may be specified (by its label) and vertices can
be specified by their indices (using the @c -v option) or by their
labels (using the @c -l option).
Indices may be specified individually or as a sequence.
e.g. {1 7...9 20} = {1 7 8 9 20}. (perl lovers might use just two points
to indicate a sequence.)
The @c -nol flag tells the client not to write any labels.
Produce the subcomplex induced by the given vertices.
Vertices can be specified by their indices (using the @c -v option)
or by their labels (using the @c -l option).
Indices may be specified individually or as a sequence.
e.g. {1 7...9 20} = {1 7 8 9 20}. (perl lovers might use just two points
to indicate a sequence.)
The @c -nol flag tells the client not to write any labels.
Produce the k-suspension over a given simplicial complex.
Default for the parameter k is 1.
The labels of the apexes may be specified. In case too few
apexes are specified the client labels the remaining ones
apex_0+, apex_0-, apex_1+, apex_1-, ... . In case one of the labels exists
already, the client chooses a unique one by appending _i
where i is the smallest integer which makes the label unique.
The @c -nol flag tells the client not to write any labels.
Produce the link of the face specified by the given vertices.
Vertices can be specified by their indices (using the @c -v option)
or by their labels (using the @c -l option).
Indices may be specified individually or as a sequence.
e.g. {1 7...9 20} = {1 7 8 9 20}. (perl lovers might use just two points
to indicate a sequence.)
The @c -nol flag tells the client not to write any labels.
Produce the star of the face specified by the given vertices.
Vertices can be specified by their indices (using the @c -v option)
or by their labels (using the @c -l option).
Indices may be specified individually or as a sequence.
e.g. {1 7...9 20} = {1 7 8 9 20}. (perl lovers might use just two points
to indicate a sequence.)
The @c -nol flag tells the client not to write any labels.
Produce the boundary complex which arises out of a triangulation of the boundary of polytope.
If the @c -noc flag is set, no coordinates for the GEOMETRIC_REALIZATION will be written.
This client lives in between the applications poly and topaz.
Since it produces a simplicial complex (from a polytope), it
is counted as a client for the topaz application.
Produce the crosscut complex which arises out of a triangulation of the boundary of polytope.
If the @c -noc flag is set, no coordinates for the GEOMETRIC_REALIZATION will be written.
This client lives in between the applications poly and topaz.
Since it produces a simplicial complex (from a polytope), it
is counted as a client for the topaz application.
If the @c -auto flag is set and @c complex_section does
not equal FACETS,
the client writes the correct facets into FACETS and the old numbering
(if the numbering has changed at all) into VERTEX_LABELS.
These clients are called by polymake automatically via the rules. They compute
some new properties of a simplicial complex. You will hardly ever need to call them
directly. They are documented here first of all for the sake of completeness.
Produces the minimal (with respect to inclusion) non-faces of a simplicial complex.
Only the facets of the complex are used as input, i.e., no hasse diagram is computed.
This implements an old algorithm described by Lawler:
"Covering problems: duality relations and a new method of solution"
SIAM J. Appl. Math., Vol. 14, No. 5, 1966
See also Chapter 2 of "Hypergraphs", C. Berge, North-Holland, Amsterdam, 1989
Computes all inclusion maximal cliques of a graph.
spring_embedderfilegraph_sectionembedding_section
[ {-objective,-selection} section -seed s ]
[ {-scale,-balance,-viscosity,-inertion,-orientation,-separation} x ... ]
Produce a 3-d embedding for the graph using the spring embedding algorithm
along the lines of
Thomas Fruchtermann and Edward Reingold:
Graph Drawing by Force-directed Placement.
Software Practice and Experience Vol. 21, 1129-1164 (1992), no. 11
The initial node coordinates are chosen randomly on the unit sphere.
The optional parameter @c seed controls the initial setting.
If the nodes already have an embedding in Rd and there is a linear objective function defined
in the coordinate space, it can be used to rearrange the 3-d embedding along the z-axis corresponding
to the objective function growth. This mode is enabled with option @c objective.
Alternatively, a selected subset of nodes can be requested to be set apart from the rest of the
graph. The numbers of selected nodes are read as a set from the section specified in option @c
selection.
The embedding algorithm can be fine-tuned with several "black magic" options.
All of them take double values, which are multiplied with internal initial settings,
so all defaults are equal to 1.
@c scale enlarges the ideal edge length. @c balance changes the balance between the
edge contraction and node repulsion forces. @c inertion and @c viscosity affects how the nodes
are moved, and can be used to restrain oscillations. @c orientation changes the relative influence
of the linear objective function on the embedding. @c separation changes the additional repulsion force
between the selected and non-selected nodes.