Regina 7.3 Calculation Engine
Classes | Functions
Vertex Enumeration

Polytope vertex enumeration algorithms. More...

Classes

class  regina::DoubleDescription
 Implements a modified double description method for polytope vertex enumeration. More...
 
class  regina::HilbertCD
 Implements a modified Contejean-Devie algorithm for enumerating Hilbert bases. More...
 
class  regina::HilbertDual
 Implements a modified dual algorithm for enumerating Hilbert bases. More...
 
class  regina::HilbertPrimal
 Implements a modified primal algorithm for enumerating Hilbert bases. More...
 
class  regina::MaxAdmissible
 Used to enumerate all maximal admissible faces of a polyhedral cone under a given set of admissibility constraints. More...
 
class  regina::PosOrder
 A comparison object that sorts hyperplanes by position vectors. More...
 
class  regina::LPConstraintBase
 A base class for additional linear constraints that we can add to the tableaux of normal surface or angle structure matching equations. More...
 
class  regina::LPConstraintSubspace
 A subclass of LPConstraintBase used for constraints defined entirely by homogeneous linear equations. More...
 
class  regina::LPConstraintNone
 A do-nothing class that imposes no additional linear constraints on the tableaux of normal surface or angle structure matching equations. More...
 
class  regina::LPConstraintEulerPositive
 A class that constraints the tableaux of normal surface matching equations to ensure that Euler characteristic is strictly positive. More...
 
class  regina::LPConstraintEulerZero
 A class that constraints the tableaux of normal surface matching equations to ensure that Euler characteristic is zero. More...
 
class  regina::LPConstraintNonSpun
 A class that constraints the tableaux of normal surface matching equations to ensure that normal surfaces in an ideal triangulation are compact (thereby avoiding spun normal surfaces with infinitely many triangles). More...
 
class  regina::BanConstraintBase
 A base class for additional banning and marking constraints that we can place on tree traversal algorithms. More...
 
class  regina::BanNone
 A do-nothing class that bans no coordinates and marks no coordinates. More...
 
class  regina::BanBoundary
 A class that bans normal disc types that meet the boundary of the underlying triangulation. More...
 
class  regina::BanEdge
 A class that bans normal disc types that meet a particular edge of the underlying triangulation. More...
 
class  regina::BanTorusBoundary
 A class that bans and marks disc types associated with torus boundary components. More...
 
class  regina::LPMatrix< IntType >
 A matrix class for use with linear programming. More...
 
struct  regina::LPCol< LPConstraint >
 Used by LPInitialTableaux<LPConstraint> to store a single column of the adjusted matching equation matrix in sparse form. More...
 
class  regina::LPSystem
 Indicates which broad class of vector encodings a particular tableaux is designed to work with. More...
 
class  regina::LPInitialTableaux< LPConstraint >
 Stores an adjusted matrix of homogeneous linear matching equations based on a given triangulation, in sparse form. More...
 
class  regina::LPData< LPConstraint, IntType >
 Stores an intermediate tableaux for the dual simplex method, and contains all of the core machinery for using the dual simplex method. More...
 
class  regina::TreeTraversal< LPConstraint, BanConstraint, IntType >
 A base class for searches that employ the tree traversal algorithm for enumerating and locating vertex normal surfaces and taut angle structures. More...
 
class  regina::TreeEnumeration< LPConstraint, BanConstraint, IntType >
 The main entry point for the tree traversal algorithm to enumerate all vertex normal or almost normal surfaces in a 3-manifold triangulation. More...
 
class  regina::TautEnumeration< LPConstraint, BanConstraint, IntType >
 The main entry point for the tree traversal algorithm to enumerate all taut angle structures in a 3-manifold triangulation. More...
 
class  regina::TreeSingleSoln< LPConstraint, BanConstraint, IntType >
 The main entry point for the tree traversal / branching algorithm to locate a single non-trivial normal surface satisfying given constraints within a 3-manifold triangulation. More...
 
class  regina::TypeTrie< nTypes >
 A trie that stores a set of type vectors of a fixed length. More...
 
class  regina::ValidityConstraints
 Represents a set of combinatorial validity constraints for use with polytope vertex enumeration. More...
 

Functions

template<typename IntType >
void regina::swap (LPMatrix< IntType > &a, LPMatrix< IntType > &b) noexcept
 Swaps the contents of the given matrices. More...
 
template<typename IntType >
void regina::swap (LPInitialTableaux< IntType > &a, LPInitialTableaux< IntType > &b) noexcept
 Swaps the contents of the given matrices. More...
 
template<class LPConstraint , typename IntType >
void regina::swap (LPData< LPConstraint, IntType > &a, LPData< LPConstraint, IntType > &b) noexcept
 Swaps the contents of the given tableaux. More...
 
template<int nTypes>
void regina::swap (TypeTrie< nTypes > &a, TypeTrie< nTypes > &b) noexcept
 Swaps the contents of the two given tries. More...
 
void regina::swap (ValidityConstraints &a, ValidityConstraints &b) noexcept
 Swaps the contents of the two given constraint sets. More...
 

Detailed Description

Polytope vertex enumeration algorithms.

Function Documentation

◆ swap() [1/5]

template<class LPConstraint , typename IntType >
void regina::swap ( LPData< LPConstraint, IntType > &  a,
LPData< LPConstraint, IntType > &  b 
)
inlinenoexcept

Swaps the contents of the given tableaux.

This global routine simply calls LPData<LPConstraint, IntType>::swap(); it is provided so that LPData<LPConstraint, IntType> meets the C++ Swappable requirements.

Parameters
athe first tableaux whose contents should be swapped.
bthe second tableaux whose contents should be swapped.

◆ swap() [2/5]

template<typename IntType >
void regina::swap ( LPInitialTableaux< IntType > &  a,
LPInitialTableaux< IntType > &  b 
)
inlinenoexcept

Swaps the contents of the given matrices.

This global routine simply calls LPInitialTableaux<IntType>::swap(); it is provided so that LPInitialTableaux<IntType> meets the C++ Swappable requirements.

Parameters
athe first matrix whose contents should be swapped.
bthe second matrix whose contents should be swapped.

◆ swap() [3/5]

template<typename IntType >
void regina::swap ( LPMatrix< IntType > &  a,
LPMatrix< IntType > &  b 
)
inlinenoexcept

Swaps the contents of the given matrices.

This global routine simply calls LPMatrix<IntType>::swap(); it is provided so that LPMatrix<IntType> meets the C++ Swappable requirements.

Parameters
athe first matrix whose contents should be swapped.
bthe second matrix whose contents should be swapped.

◆ swap() [4/5]

template<int nTypes>
void regina::swap ( TypeTrie< nTypes > &  a,
TypeTrie< nTypes > &  b 
)
inlinenoexcept

Swaps the contents of the two given tries.

Parameters
athe first trie whose contents should be swapped.
bthe second trie whose contents should be swapped.

◆ swap() [5/5]

void regina::swap ( ValidityConstraints a,
ValidityConstraints b 
)
inlinenoexcept

Swaps the contents of the two given constraint sets.

This global routine simply calls ValidityConstraints::swap(); it is provided so that ValidityConstraints meets the C++ Swappable requirements.

Parameters
athe first constraint set whose contents should be swapped.
bthe second constraint set whose contents should be swapped.

Copyright © 1999-2023, 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@maths.uq.edu.au).