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

A subclass of LPConstraintBase used for constraints defined entirely by homogeneous linear equations. More...

#include <enumerate/ntreeconstraint.h>

Inheritance diagram for regina::LPConstraintSubspace:
regina::LPConstraintBase regina::LPConstraintNone regina::LPConstraintNonSpun

Public Types

enum  { nConstraints }
 

Static Public Member Functions

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...
 
static bool verify (const NNormalSurface *s)
 Ensures that the given normal surface satisfies the extra constraints described by this class. More...
 
static bool verify (const NAngleStructure *s)
 Ensures that the given angle structure 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 subclass of LPConstraintBase used for constraints defined entirely by homogeneous linear equations.

Any set of constraints defined entirely by homogeneous linear equations should derive from LPConstraintSubspace, not LPConstraintBase. In other words, any set of constraints derived from LPConstraintSubspace should simply restrict our attention to a vector subspace of the normal surface or angle structure coordinate system.

This class does not provide any additional functionality. It is merely a convenience to help describe and enforce preconditions.

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