Regina Calculation Engine
Public Member Functions | List of all members
regina::NEnumConstraintList Class Reference

Represents an individual validity constraint for use with polytope vertex enumeration. More...

#include <enumerate/nenumconstraint.h>

Inheritance diagram for regina::NEnumConstraintList:

Public Member Functions

 NEnumConstraintList ()
 Creates an empty list of constraints. More...
 
 NEnumConstraintList (size_t size)
 Creates a new list of constraints with the given size. More...
 

Detailed Description

Represents an individual validity constraint for use with polytope vertex enumeration.

Vertex enumeration routines such as NDoubleDescription::enumerateExtremalRays() take a cone (specifically the non-negative orthant), form the intersection of that cone with a given linear subspace, and return the extremal rays of the new cone that results.

In some cases we are only interested in valid rays of the new cone. The NEnumConstraintList class stores a number of "validity constraints"; a ray is then "valid" if it satisfies all of these constraints.

Each individual constraint is presented as a set of integers; the meaning of such a constraint is as follows. We number the facets of the original cone 0,1,2,... (where the ith facet is the plane perpendicular to the ith coordinate axis). If a constraint is described by the integers x, y, z, ..., then it indicates that a ray can only lie outside at most one of the facets numbered x, y, z, ... .

In practice, this allows us to represent constraints in normal surface theory. For instance, to insist that some tetrahedron contains at most one quadrilateral disc type, we add a constraint with three integers, representing the original facets q1=0, q2=0, q3=0 (where q1, q2 and q3 are the three quadrilateral coordinates for that tetrahedron).

The NEnumConstraintList class is simply a std::vector of constraints, where each constraint is a std::set of unsigned integers. Typically one will create a vector containing the desired number of constraints and then walk through each constraint, filling the sets as appropriate.

Python:
Not present.

Constructor & Destructor Documentation

regina::NEnumConstraintList::NEnumConstraintList ( )
inline

Creates an empty list of constraints.

regina::NEnumConstraintList::NEnumConstraintList ( size_t  size)
inline

Creates a new list of constraints with the given size.

Each constraint will be initialised to an empty set.

Parameters
sizethe number of constraints to include in the new list.

The documentation for this class was generated from the following file:

Copyright © 1999-2014, The Regina development team
This software is released under the GNU General Public License, with some additional permissions; see the source code for details.
For further information, or to submit a bug or other problem, please contact Ben Burton (bab@debian.org).