The scalar representation in the input data is left to the user's
choice, since it is automatically recognized, and the data are converted
when needed. Rationals and floats can be even freely intermixed. The
actual data format used during the computations solely depends on the
object type.
Syntax rules for floating-point numbers are identical to those of C++ and perl
programming languages; rational numbers must look like
numerator or numerator/denominator ,
optionally prepended by the sign.
A textual identifier associated with an object (vertex, facet, etc.)
May contain letters, digits, underscores, punctuation characters, but no white spaces.
The labels are supposed to be unique, but currently this is not checked automatically.
Labels starting with underscore are "magical" in that they are suppressed
by the visualization methods.
Sequence of elements of specified type. Elements of atomic type are written in a single line, separated
by white spaces, while complex elements are written each on a separate line. Arrays of multidimensional objects
are enclosed in an additional pair of angle brackets. Empty section encodes an array of size 0.
Sequence of elements of specified type, enclosed in curly braces. A list is written in a single line,
separated by white spaces, unless its elements occupy several lines by itself. An empty list is just a pair of braces:
{ } .
Sequence of values of (possibly) different types, like a struct in the C language.
A tuple is always enclosed in parentheses. It may extend over several lines.
Looks like list< tuple<cardinal (=index), scalar (=value)> >.
The last tuple has no value component, and its index encodes the vector dimension. All omitted scalars are supposed to be zero.
A sparse vector is allowed to be stored in the dense form as well.
The client programs choose the dense representation automatically if the fill grade of a vector is over 1/2.
An array of vectors. The vectors represent the matrix rows and, obviously,
must have the same dimension. Unless explicitly specified, elements are of scalar type.
Empty section encodes a 0x0 matrix.
An array of sets.
Each line belongs to a node and contains the number of adjacent nodes.
The nodes are numbered from 0 to n-1. An undirected graph is stored redundantly, that is, each
edge occurs in the incidence lists of both incident nodes.
A graph with additional data associated with nodes and/or edges.
An attributed node is represented as a tuple<NodeAttribute, list (=incident edges)>.
An attributed edge is represented as a tuple<EdgeAttribute, cardinal (=target node)>.
The first line encodes the number of nodes in each level (i.e., face dimension.)
The rest of the section is an attributed_graph<set,void>.
Each node corresponds to a face. The node attribute is a set of vertices comprising the face.
Incident edges lead to the containing faces of the next (higher) dimension.
Sequence of +, -, 0.
This data format is specific to the TOPCOM package.
It is not interpreted by polymake itself, but used as an opaque data type for storing
intermediate results of programs from this package.