hypersurfaces

5reg

hypersurfaces

A normal hypersurface list packet

Content Model
    hypersurfaces ::= (&xml-hypersurface;*,
                       &xml-tag;*,
                       &packetsyn1;
                       &packetsyn2;
                       &packetsyn3;
                       &packetsyn4;
                       &packetsyn5;*)
Attributes
Name | Type
`algorithm` | `NUMBER` (required)
`coords` | `NUMBER` (required)
`tri` | `CDATA` (required)
`type` | `NUMBER` (required)
&packetattrlist2col;

&eltaddedver;7.0

## Description

This represents a normal hypersurface list packet, one of the many types of packet that together form the packet tree that a user sees when they open a ®ina; data file.

A normal hypersurface list stores a list of normal hypersurfaces in a particular 4-manifold triangulation. This list will often contain the vertex hypersurfaces whose convex span is the set of all normal hypersurfaces in the triangulation that satisfy certain constraints, though other lists (such as fundamental hypersurfaces, or other customised lists) can be stored also.

Since ®ina; 7.0, a normal hypersurface list no longer needs to be a child packet of its underlying triangulation. Instead, the triangulation is denoted by the `tri` attribute. This must be the ID of a 4-dimensional triangulation packet that appears before this list in the packet tree, with respect to a pre-order depth-first traversal (i.e., the triangulation must appear before this list in the &xml; data file). The triangulation may be an anonymous packet (see &xml-anon;).

The individual normal hypersurfaces in this list are contained in the child &xml-hypersurface; elements. Since ®ina; 7.0, the parameters of the normal hypersurface enumeration that created this list are stored in the attributes; there is no longer a child &xml-params; element.

&packetchilddesc;

### Parents

&packetparents;

### Children

The following elements occur in `hypersurfaces`, and are specific to the normal hypersurface list packet type:

- &xml-hypersurface;

. &packetchildren;

## Attributes

The following attributes are specific to normal hypersurface lists:

`algorithm`

- Specifies the algorithm that was used to enumerate these normal hypersurfaces.

  This must be an integer, formed as a bitwise OR combination of constants from the `HyperAlg` enumeration in ®ina;'s calculation engine.

  An example of such an integer might be 32, which is the constant `HyperAlg::VertexDD`, indicating that the double description method was used.

`coords`

- Specifies which coordinate system was used in the normal hypersurface enumeration.

  This must be a non-negative integer that matches one of the constants from the `HyperCoords` enumeration in ®ina;'s calculation engine.

  An example of such an integer might be 1, which is the constant `HyperCoords::Prism` that represents prism coordinates for normal hypersurfaces.

`tri`

- The ID of the triangulation in which these normal hypersurfaces live. This must match the `id` attribute of a 4-dimensional triangulation that appears before this list in a pre-order depth-first traversal of the full packet tree.

`type`

- Specifies exactly which normal hypersurfaces this list contains. In particular, this flag indicates whether the list contains all vertex hypersurfaces, all fundamental hypersurfaces, or some other customised list. It also indicates whether the list is restricted to properly embedded hypersurfaces.

  This must be an integer, formed as a bitwise OR combination of constants from the `HyperList` enumeration in ®ina;'s calculation engine.

  An example of such an integer might be 5, which combines the constants `HyperList::EmbeddedOnly` (1) and `HyperList::Vertex` (4).

&packetattrdesc;