Regina Calculation Engine
Classes | Public Types | Static Public Member Functions | List of all members
regina::LPConstraintEuler Class Reference

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:
regina::LPConstraintBase

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 }
 
enum  { nConstraints }
 

Static Public Member Functions

static bool addRows (LPInitialTableaux< regina::LPConstraintEuler >::Col *col, const int *columnPerm, const NTriangulation *tri)
 
template<typename Integer >
static void constrain (LPData< regina::LPConstraintEuler, Integer > &lp, unsigned numCols)
 
static bool verify (const NNormalSurface *s)
 
static bool verify (const NAngleStructure *)
 
static bool supported (NormalCoords coords)
 
static bool addRows (LPInitialTableaux< LPConstraintBase >::Col *col, const int *columnPerm, const 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...
 

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:

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).