Regina 7.0 Calculation Engine
|
Normal hypersurfaces in 4-manifold triangulations. More...
Classes | |
class | regina::HyperEncoding |
Indicates precisely how a normal hypersurface within a 4-manifold triangulation is encoded by an integer vector. More... | |
class | regina::HyperInfo |
A class used to query general information about different normal hypersurface coordinate systems. More... | |
class | regina::NormalHypersurface |
Represents a single normal hypersurface in a 4-manifold triangulation. More... | |
class | regina::NormalHypersurfaces |
A collection of normal hypersurfaces in a 4-manifold triangulation. More... | |
Typedefs | |
using | regina::HyperList = regina::Flags< HyperListFlags > |
A combination of flags for types of normal hypersurface lists. More... | |
using | regina::HyperAlg = regina::Flags< HyperAlgFlags > |
A combination of flags for normal hypersurface enumeration algorithms. More... | |
Enumerations | |
enum | regina::HyperCoords { regina::HS_STANDARD = 0 , regina::HS_PRISM = 1 , regina::HS_EDGE_WEIGHT = 200 } |
Represents different coordinate systems that can be used for enumerating and/or displaying normal hypersurfaces within 4-manifold triangulations. More... | |
enum | regina::HyperListFlags { regina::HS_LIST_DEFAULT = 0x0000 , regina::HS_EMBEDDED_ONLY = 0x0001 , regina::HS_IMMERSED_SINGULAR = 0x0002 , regina::HS_VERTEX = 0x0004 , regina::HS_FUNDAMENTAL = 0x0008 , regina::HS_LEGACY = 0x4000 , regina::HS_CUSTOM = 0x8000 } |
Represents different lists of normal hypersurfaces that might be constructed for a given 4-manifold triangulation. More... | |
enum | regina::HyperAlgFlags { regina::HS_ALG_DEFAULT = 0x0000 , regina::HS_VERTEX_DD = 0x0020 , regina::HS_HILBERT_PRIMAL = 0x0100 , regina::HS_HILBERT_DUAL = 0x0200 , regina::HS_ALG_LEGACY = 0x4000 , regina::HS_ALG_CUSTOM = 0x8000 } |
Represents options and variants of algorithms for enumerating various types of normal hypersurfaces in 4-manifold triangulations. More... | |
Functions | |
HyperList | regina::operator| (HyperListFlags lhs, HyperListFlags rhs) |
Returns the bitwise OR of the two given flags. More... | |
HyperAlg | regina::operator| (HyperAlgFlags lhs, HyperAlgFlags rhs) |
Returns the bitwise OR of the two given flags. More... | |
void | regina::swap (NormalHypersurface &a, NormalHypersurface &b) noexcept |
Swaps the contents of the given normal hypersurfaces. More... | |
void | regina::swap (NormalHypersurfaces &lhs, NormalHypersurfaces &rhs) |
Swaps the contents of the two given lists. More... | |
MatrixInt | regina::makeMatchingEquations (const Triangulation< 4 > &triangulation, HyperCoords coords) |
Generates the set of normal hypersurface matching equations for the given triangulation using the given coordinate system. More... | |
ValidityConstraints | regina::makeEmbeddedConstraints (const Triangulation< 4 > &triangulation, HyperCoords coords) |
Generates the validity constraints representing the condition that normal hypersurfaces be embedded. More... | |
Normal hypersurfaces in 4-manifold triangulations.
using regina::HyperAlg = typedef regina::Flags<HyperAlgFlags> |
A combination of flags for normal hypersurface enumeration algorithms.
If a function requires a HyperAlg object as an argument, you can pass a single HyperAlgFlags constant, or a combination of such constants using the bitwise OR operator, or empty braces {} to indicate no flags at all.
using regina::HyperList = typedef regina::Flags<HyperListFlags> |
A combination of flags for types of normal hypersurface lists.
If a function requires a HyperList object as an argument, you can pass a single HyperListFlags constant, or a combination of such constants using the bitwise OR operator, or empty braces {} to indicate no flags at all.
Represents options and variants of algorithms for enumerating various types of normal hypersurfaces in 4-manifold triangulations.
These options can be combined using the bitwise OR operator, and then passed to enumeration routines such as the NormalHypersurfaces class constructor.
enum regina::HyperCoords |
Represents different coordinate systems that can be used for enumerating and/or displaying normal hypersurfaces within 4-manifold triangulations.
IDs 0-9999 are reserved for future use by Regina. If you are extending Regina to include your own coordinate system, you should choose an ID >= 10000.
Represents different lists of normal hypersurfaces that might be constructed for a given 4-manifold triangulation.
The HyperList enumeration refers to the contents of the list, whereas the HyperAlgFlags enumeration refers to the algorithm used to build it.
These flags can be combined using the bitwise OR operator, and then passed to enumeration routines such as the NormalHypersurfaces class constructor.
ValidityConstraints regina::makeEmbeddedConstraints | ( | const Triangulation< 4 > & | triangulation, |
HyperCoords | coords | ||
) |
Generates the validity constraints representing the condition that normal hypersurfaces be embedded.
The validity constraints will be expressed relative to the given coordinate system.
These are the constraints that will be used when enumerating embedded hypersurfaces in the given coordinate system (i.e., when the default HS_EMBEDDED_ONLY flag is used). They will not be used when the enumeration allows for immersed and/or singular hypersurfaces.
triangulation | the triangulation upon which these validity constraints will be based. |
coords | the coordinate system to be used; this must be one of the predefined coordinate system constants in NormalHypersurfaces. |
MatrixInt regina::makeMatchingEquations | ( | const Triangulation< 4 > & | triangulation, |
HyperCoords | coords | ||
) |
Generates the set of normal hypersurface matching equations for the given triangulation using the given coordinate system.
These are the matching equations that will be used when enumerating normal hypersurfaces in the coordinate system coords.
Each equation will be represented as a row of the resulting matrix. Each column of the matrix represents a coordinate in the given coordinate system.
InvalidArgument | the matching equations could not be created for the given triangulation in the given coordinate system, due to an error that should have been preventable with the right checks in advance. This can only happen in certain coordinate systems, and for all such coordinate systems this is explicitly described in the HyperCoords enum documentation. |
UnsolvedCase | the matching equations could not be created for the given triangulation in the given coordinate system, due to an error that was "genuinely" unforseeable. Again this can only happen in certain coordinate systems, where this is explicitly described in the HyperCoords enum documentation. |
triangulation | the triangulation upon which these matching equations will be based. |
coords | the coordinate system to be used. |
|
inline |
Returns the bitwise OR of the two given flags.
lhs | the first flag to combine. |
rhs | the second flag to combine. |
|
inline |
Returns the bitwise OR of the two given flags.
lhs | the first flag to combine. |
rhs | the second flag to combine. |
|
inlinenoexcept |
Swaps the contents of the given normal hypersurfaces.
This is a fast (constant time) operation.
This global routine simply calls NormalHypersurface::swap(); it is provided so that NormalHypersurface meets the C++ Swappable requirements.
a | the first normal hypersurface whose contents should be swapped. |
b | the second normal hypersurface whose contents should be swapped. |
|
inline |
Swaps the contents of the two given lists.
This global routine simply calls NormalHypersurfaces::swap(); it is provided so that NormalHypersurfaces meets the C++ Swappable requirements.
See NormalHypersurfaces::swap() for more details.
noexcept
, since it fires change events on both lists which may in turn call arbitrary code via any registered packet listeners.lhs | the list whose contents should be swapped with rhs. |
rhs | the list whose contents should be swapped with lhs. |