regina::LPConstraintEuler Class Reference
Vertex Enumeration

A class that constraints the tableaux of normal surface matching equations to ensure that Euler characteristic is strictly positive. More...

`#include <enumerate/ntreeconstraint.h>`

Inheritance diagram for regina::LPConstraintEuler:

## Classes

struct | Coefficients
| Stores the extra coefficients in the tableaux associated with this constraint class (in this case, one extra integer per column). More...

## Public Types

enum | { nConstraints = 1 }
Public Types inherited from regina::LPConstraintBase
enum | { nConstraints }

## Static Public Member Functions

static bool | addRows (LPInitialTableaux< regina::LPConstraintEuler >::Col *col, const int *columnPerm, NTriangulation *tri)
template<typename Integer >
static void | constrain (LPData< regina::LPConstraintEuler, Integer > &lp, unsigned numCols)
static bool | verify (const NNormalSurface *s)
static bool | supported (NormalCoords coords)
Static Public Member Functions inherited from regina::LPConstraintBase
static bool | addRows (LPInitialTableaux< LPConstraintBase >::Col *col, const int *columnPerm, NTriangulation *tri)
| Explicitly constructs equations for the linear function(s) constrained by this class. More...
template<typename Integer >
static void | constrain (LPData< LPConstraintNone, Integer > &lp, unsigned numCols)
| Explicitly constraints each of these linear functions to an equality or inequality in the underlying tableaux. More...
static bool | verify (const NNormalSurface *s)
| Ensures that the given normal surface satisfies the extra constraints described by this class. More...
static bool | supported (NormalCoords coords)
| Indicates whether the given coordinate system is supported by this constraint class. More...

## Detailed Description

A class that constraints the tableaux of normal surface matching equations to ensure that Euler characteristic is strictly positive.

There are many ways of writing Euler characteritic as a linear function. The function constructed here has integer coefficients, but otherwise has no special properties of note.

This constraint can work with either normal or almost normal coordinates. In the case of almost normal coordinates, the function is modified to measure Euler characteristic minus the number of octagons (a technique of Casson, also employed by Jaco and Rubinstein, that is used to ensure we do not have more than two octagons when searching for a normal or almost normal sphere in the 3-sphere recognition algorithm).

See the LPConstraintBase class notes for details on all member functions and structs.

Precondition
  We are working in standard normal or almost normal coordinates (not quadrilateral or quadrilateral-octagon coordinates). In particular, the coordinate system passed to the corresponding LPInitialTableaux class constructor must be NS_STANDARD.

Warning
  The API for this class has not yet been finalised. This means that the class interface may change in new versions of Regina, without maintaining backward compatibility. If you use this class directly in your own code, please watch the detailed changelogs upon new releases to see if you need to make changes to your code.

Python:
  Not present.

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

- enumerate/ntreeconstraint.h

Copyright © 1999-2013, 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).