Regina 7.3 Calculation Engine
Classes | Typedefs | Functions | Variables
regina::detail Namespace Reference

Contains implementation details and common functionality for Regina's dimension-agnostic classes. More...

Classes

class  BoundaryComponentBase
 Helper class that provides core functionality for a boundary component of a dim-dimensional triangulation. More...
 
class  ComponentBase
 Helper class that provides core functionality for a connected component of a dim-manifold triangulation. More...
 
struct  ConstArrayOf
 Provides some implementation details for TableView. More...
 
class  ExampleBase
 Provides core functionality for constructing example dim-dimensional triangulations. More...
 
class  ExampleFromLowDim
 Helper class that builds various dim-dimensional triangulations from (dim-1)-dimensional triangulations. More...
 
class  ExampleFromLowDim< dim, false >
 Helper class that builds various dim-dimensional triangulations from (dim-1)-dimensional triangulations. More...
 
class  FaceBase
 Helper class that provides core functionality for a subdim-face in the skeleton of a dim-dimensional triangulation. More...
 
class  FaceEmbeddingBase
 Helper class that provides core functionality for describing how a subdim-face of a dim-dimensional triangulation appears within each top-dimensional simplex. More...
 
class  FaceNumberingAPI
 Placeholder class that outlines the functions provided by FaceNumbering<dim, subdim>. More...
 
class  FaceNumberingImpl
 Implementation details for numbering subdim-faces of a dim-dimensional simplex. More...
 
class  FaceNumberingImpl< 1, 0, 0 >
 
class  FaceNumberingImpl< 2, 1, 0 >
 
class  FaceNumberingImpl< 3, 1, 1 >
 
class  FaceNumberingImpl< 3, 2, 0 >
 
class  FaceNumberingImpl< 4, 1, 2 >
 
class  FaceNumberingImpl< 4, 2, 1 >
 
class  FaceNumberingImpl< 4, 3, 0 >
 
class  FaceNumberingImpl< dim, 0, codim >
 
class  FaceNumberingImpl< dim, subdim, 0 >
 
class  FacetPairingBase
 Provides core functionality for facet pairings (that is, dual graphs) of dim-dimensional triangulations. More...
 
struct  RetriangulateActionTraits
 A traits class that analyses callable objects that are passed to retriangulation or link rewriting functions. More...
 
class  SimplexBase
 Helper class that provides core functionality for a top-dimensional simplex in a dim-manifold triangulation. More...
 
struct  Strings
 Contains a collection of compile-time constant strings that describe features of the dimension dim. More...
 
class  TriangulationBase
 Provides core functionality for dim-dimensional triangulations. More...
 

Typedefs

template<class Object , bool withSig>
using RetriangulateActionFunc = std::conditional_t< withSig, std::function< bool(const std::string &, Object &&)>, std::function< bool(Object &&)> >
 Declares the internal type used to store a callable action that is passed to a retriangulation or link rewriting function. More...
 

Functions

mpz_ptr mpz_from_ll (long long value)
 Returns a raw GMP integer holding the given value. More...
 
mpz_ptr mpz_from_ull (unsigned long long value)
 Returns a raw GMP integer holding the given value. More...
 
template<class Object , bool withSig>
bool retriangulateInternal (const Object &obj, int height, unsigned nThreads, ProgressTrackerOpen *tracker, RetriangulateActionFunc< Object, withSig > &&action)
 The common implementation of all retriangulation and link rewriting functions. More...
 
template<typename Int >
void tightEncodeInteger (std::ostream &out, Int value)
 Internal function that writes the tight encoding of the given integer to the given output stream. More...
 
template<typename Int , typename iterator >
Int tightDecodeInteger (iterator start, iterator limit, bool noTrailingData)
 Internal function that reconstructs an integer from its given tight encoding. More...
 
template<typename Int >
void tightEncodeIndex (std::ostream &out, Int value)
 Internal function that writes the tight encoding of an integer whose value is either non-negative or -1. More...
 
void tightEncodeNoIndex (std::ostream &out)
 Internal function that writes the tight encoding of -1, using an encoding that is compatible with tightEncodeIndex(). More...
 
template<typename Int >
Int tightDecodeIndex (std::istream &input)
 Internal function that reconstructs an integer that was encoded using tightEncodeIndex(). More...
 

Variables

constexpr int binomSmall_ [17][17]
 A lookup table that stores (n choose k) for all n16. More...
 
constexpr int countPermClasses [17]
 Stores the total number of conjugacy classes of permutations on n elements, for all n ≤ 16. More...
 
constexpr int64_t permClassRep [countPermClasses[16]]
 Stores the S_n indices of all minimal representatives of conjugacy classes of permutations on n elements, for all n ≤ 16. More...
 

Detailed Description

Contains implementation details and common functionality for Regina's dimension-agnostic classes.

For most of Regina's dimension-agnostic classes, such as Triangulation<dim>, Simplex<dim> and Face<dim, subdim>, the bulk of the implementation is hidden away in the namespace regina::detail.

Regina's main classes acquire their functionality through inheritance. For example, the end-user class regina::Triangulation<dim> inherits most of its functionality from the implementation class regina::detail::TriangulationBase<dim>.

Because of this inheritance, there is typically no need for end users to explicitly refer to the namespace regina::detail.

Since regina::detail contains implementation details, its classes are subject to change between releases. Specifically:

Function Documentation

◆ mpz_from_ll()

mpz_ptr regina::detail::mpz_from_ll ( long long  value)

Returns a raw GMP integer holding the given value.

Python
Not present.
Parameters
valuethe value to assign to the new GMP integer.
Returns
a corresponding newly created and initialised GMP integer.

◆ mpz_from_ull()

mpz_ptr regina::detail::mpz_from_ull ( unsigned long long  value)

Returns a raw GMP integer holding the given value.

Python
Not present.
Parameters
valuethe value to assign to the new GMP integer.
Returns
a corresponding newly created and initialised GMP integer.

Variable Documentation

◆ countPermClasses

constexpr int regina::detail::countPermClasses[17]
constexpr
Initial value:
= {
1, 1, 2, 3, 5, 7, 11, 15, 22, 30, 42, 56, 77, 101, 135, 176, 231
}

Stores the total number of conjugacy classes of permutations on n elements, for all n ≤ 16.

See OEIS, sequence A000041.

This hard-coded array is an implementation detail; these numbers should be accessed by end users as PermClass<n>::count.

◆ permClassRep

constexpr int64_t regina::detail::permClassRep[countPermClasses[16]]
constexpr

Stores the S_n indices of all minimal representatives of conjugacy classes of permutations on n elements, for all n ≤ 16.

Specifically, for each fixed n, the permutations obtained via Perm<n>::Sn[permClassRep[i]] for 0 ≤ i < countPermClasses[i] will be precisely the same permutations, and seen in the same order, as you would obtain by beginning with a default-constructed PermClass<n> c, repeatedly incrementing c until it is past-the-end, and computing c.rep() at each stage.


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