CDT++ 1.0.0-rc3
Causal Dynamical Triangulations in C++
Loading...
Searching...
No Matches
cdt Namespace Reference

clang-15 does not support std::format More...

Namespaces

namespace  foliated_triangulations
 Supported construction, inspection, classification, and repair operations for foliated Delaunay triangulations.

Classes

struct  Geometry
struct  Geometry< 3 >
 3D Geometry More...
class  MoveCommand
 Queue and execute requested moves against a three-dimensional manifold while tracking attempted and successful transitions. More...
class  MoveRunCadence
 Positive pass count and checkpoint interval for a move run. More...
class  MoveStrategy
 Select a move algorithm. More...
class  MoveStrategy< MoveStrategyKind::METROPOLIS, ManifoldType >
 Metropolis-Hastings algorithm strategy. More...
class  MoveStrategy< MoveStrategyKind::MOVE_ALWAYS, ManifoldType >
 The Move Always algorithm. More...
class  Random
 A run-owned PCG engine with a recorded seed and stream identifier. More...
class  RandomSeed
 Root entropy value used to reproduce a random run. More...
class  RandomStream
 PCG sequence selector derived from a root random seed. More...

Concepts

concept  ConstForwardRange
 A multi-pass range whose const-qualified value can be traversed by classification and materialization helpers.

Typedefs

template<int dimension>
using Causal_vertices_t
 Point/time-label pairs used to build a causal triangulation.
template<int dimension>
using Cell_handle_t
 Mutable CGAL cell handle for a triangulation dimension.
template<int dimension>
using Delaunay_t = typename detail::TriangulationTraits<dimension>::Delaunay
 Delaunay triangulation type for dimension spatial dimensions.
template<int dimension>
using Edge_handle_t
 CGAL edge descriptor for a triangulation dimension.
template<int dimension>
using Facet_t = typename detail::TriangulationTraits<dimension>::Facet
 CGAL facet descriptor for a triangulation dimension.
using Geometry_3 = Geometry<3>
 Three-dimensional simplex-count geometry.
using Gmpzf = CGAL::Gmpzf
using Int_precision = std::int32_t
using Metropolis_3
 Metropolis-Hastings move strategy for the supported 3D manifold.
using MoveAlways_3
 Always-accept-applicable move strategy for the supported 3D manifold.
template<int dimension>
using Point_t = typename detail::TriangulationTraits<dimension>::Point
 Cartesian point type used by a triangulation dimension.
template<int dimension>
using Spherical_points_generator_t
 CGAL random point generator on a sphere of matching dimension.
template<int dimension>
using Vertex_handle_t
 Mutable CGAL vertex handle for a triangulation dimension.

Enumerations

enum class  CellType {
  THREE_ONE = 31 , TWO_TWO = 22 , ONE_THREE = 13 , ACAUSAL = 99 ,
  UNCLASSIFIED = 0
}
 (n,m) is number of vertices on (lower, higher) timeslice More...
enum class  EdgeType { SPACELIKE , TIMELIKE }
 Causal classification of an edge by its endpoint timeslices. More...
enum class  MoveRunCadenceError { NONPOSITIVE_PASSES , NONPOSITIVE_CHECKPOINT }
 Reasons raw move-run cadence cannot become a domain value. More...
enum class  MoveStrategyKind { MOVE_ALWAYS , METROPOLIS }
 The algorithms available to make ergodic moves on triangulations. More...
enum class  Topology { TOROIDAL , SPHERICAL }
 Spatial-topology label stored by configuration and persistence APIs. More...

Functions

template<typename ManifoldType, typename FunctionType, typename... Arguments>
constexpr auto apply_move (ManifoldType const &t_manifold, FunctionType t_move, Arguments &&... arguments) -> decltype(auto)
 An applicative function similar to std::apply on a manifold.
constexpr auto format_as (RandomSeed const seed) noexcept -> std::uint64_t
constexpr auto format_as (RandomStream const stream) noexcept -> std::uint64_t
auto operator<< (std::ostream &output, RandomSeed const seed) -> std::ostream &
auto operator<< (std::ostream &output, RandomStream const stream) -> std::ostream &
auto operator<< (std::ostream &t_os, Topology const &t_topology) -> std::ostream &
 Convert Topology to string output.

Variables

constexpr int ALIGNMENT_32_BIT = 32
 Except when we only need 32 bits.
constexpr int ALIGNMENT_64_BIT = 64
 Aligns data for ease of access on 64-bit CPUs at the expense of padding.
constexpr double FOLIATION_SPACING = 1.0
 Default distance between successive foliated timeslices.
constexpr Int_precision GV_BOUNDING_BOX_SIZE = 100
 Depends on INITIAL_RADIUS and RADIAL_FACTOR.
constexpr double INITIAL_RADIUS = 1.0
 Default initial radius for generated foliated triangulations.
constexpr Int_precision PRECISION = 256
 Sets the precision for MPFR.
constexpr double TOLERANCE = 0.01
 Sets epsilon values for floating point comparisons.

Detailed Description

clang-15 does not support std::format

Typedef Documentation

◆ Causal_vertices_t

template<int dimension>
using cdt::Causal_vertices_t
Initial value:
std::vector<std::pair<Point_t<dimension>, Int_precision>>
std::int32_t Int_precision
Definition Settings.hpp:30

Point/time-label pairs used to build a causal triangulation.

Template Parameters
dimensionCompile-time point dimension.

Definition at line 67 of file Foliated_triangulation.hpp.

◆ Cell_handle_t

template<int dimension>
using cdt::Cell_handle_t
Initial value:
typename detail::TriangulationTraits<dimension>::Cell_handle

Mutable CGAL cell handle for a triangulation dimension.

A handle borrows from the triangulation that produced it. It must not be used with a copy or after an invalidating mutation of its owner.

Template Parameters
dimensionCompile-time triangulation dimension.

Definition at line 75 of file Foliated_triangulation.hpp.

◆ Delaunay_t

template<int dimension>
using cdt::Delaunay_t = typename detail::TriangulationTraits<dimension>::Delaunay

Delaunay triangulation type for dimension spatial dimensions.

Template Parameters
dimensionCompile-time triangulation dimension.

Definition at line 57 of file Foliated_triangulation.hpp.

◆ Edge_handle_t

template<int dimension>
using cdt::Edge_handle_t
Initial value:
typename detail::TriangulationTraits<dimension>::Edge_handle

CGAL edge descriptor for a triangulation dimension.

The embedded cell handle borrows from its source triangulation and follows that triangulation's invalidation rules.

Template Parameters
dimensionCompile-time triangulation dimension.

Definition at line 90 of file Foliated_triangulation.hpp.

◆ Facet_t

template<int dimension>
using cdt::Facet_t = typename detail::TriangulationTraits<dimension>::Facet

CGAL facet descriptor for a triangulation dimension.

The embedded cell handle borrows from its source triangulation and follows that triangulation's invalidation rules.

Template Parameters
dimensionCompile-time triangulation dimension.

Definition at line 83 of file Foliated_triangulation.hpp.

◆ Geometry_3

Three-dimensional simplex-count geometry.

Definition at line 113 of file Geometry.hpp.

◆ Gmpzf

using cdt::Gmpzf = CGAL::Gmpzf

Results are converted to a CGAL multi-precision floating point number. Gmpzf itself is based on GMP (https://gmplib.org), as is MPFR.

Definition at line 23 of file Settings.hpp.

◆ Int_precision

using cdt::Int_precision = std::int32_t

Sets the type of integer to use throughout the project. These are the base values read into the program or used in calculations. Casts to unsigned types are still necessary for certain library functions to work.

Definition at line 30 of file Settings.hpp.

◆ Metropolis_3

Initial value:

Metropolis-Hastings move strategy for the supported 3D manifold.

Definition at line 722 of file Metropolis.hpp.

◆ MoveAlways_3

Initial value:

Always-accept-applicable move strategy for the supported 3D manifold.

Definition at line 212 of file Move_always.hpp.

◆ Point_t

template<int dimension>
using cdt::Point_t = typename detail::TriangulationTraits<dimension>::Point

Cartesian point type used by a triangulation dimension.

Template Parameters
dimensionCompile-time triangulation dimension.

Definition at line 62 of file Foliated_triangulation.hpp.

◆ Spherical_points_generator_t

template<int dimension>
using cdt::Spherical_points_generator_t
Initial value:
typename detail::TriangulationTraits<
dimension>::Spherical_points_generator

CGAL random point generator on a sphere of matching dimension.

Template Parameters
dimensionCompile-time point dimension.

Definition at line 104 of file Foliated_triangulation.hpp.

◆ Vertex_handle_t

template<int dimension>
using cdt::Vertex_handle_t
Initial value:
typename detail::TriangulationTraits<dimension>::Vertex_handle

Mutable CGAL vertex handle for a triangulation dimension.

A handle borrows from the triangulation that produced it. It must not be used with a copy or after an invalidating mutation of its owner.

Template Parameters
dimensionCompile-time triangulation dimension.

Definition at line 98 of file Foliated_triangulation.hpp.

Enumeration Type Documentation

◆ CellType

enum class cdt::CellType
strong

(n,m) is number of vertices on (lower, higher) timeslice

Enumerator
THREE_ONE 

Three lower-slice and one upper-slice vertices.

TWO_TWO 

Two vertices on each adjacent slice.

ONE_THREE 

One lower-slice and three upper-slice vertices.

ACAUSAL 

Vertex times differ by more than one or are all equal.

UNCLASSIFIED 

Classification could not determine a causal type.

Definition at line 352 of file Foliated_triangulation.hpp.

◆ EdgeType

enum class cdt::EdgeType
strong

Causal classification of an edge by its endpoint timeslices.

Enumerator
SPACELIKE 

Both endpoints lie on the same timeslice.

TIMELIKE 

Endpoints lie on adjacent timeslices.

Definition at line 363 of file Foliated_triangulation.hpp.

◆ MoveRunCadenceError

enum class cdt::MoveRunCadenceError
strong

Reasons raw move-run cadence cannot become a domain value.

Enumerator
NONPOSITIVE_PASSES 

The requested pass count is not positive.

NONPOSITIVE_CHECKPOINT 

The checkpoint interval is not positive.

Definition at line 27 of file Move_run.hpp.

◆ MoveStrategyKind

enum class cdt::MoveStrategyKind
strong

The algorithms available to make ergodic moves on triangulations.

Enumerator
MOVE_ALWAYS 

Execute every applicable proposal.

METROPOLIS 

Apply Metropolis-Hastings acceptance.

Definition at line 21 of file Move_strategy.hpp.

◆ Topology

enum class cdt::Topology
strong

Spatial-topology label stored by configuration and persistence APIs.

Enumerator
TOROIDAL 

Reserved for toroidal slices; construction is unsupported.

SPHERICAL 

Supported spherical spatial slices.

Definition at line 71 of file Utilities.hpp.

Function Documentation

◆ apply_move()

template<typename ManifoldType, typename FunctionType, typename... Arguments>
auto cdt::apply_move ( ManifoldType const & t_manifold,
FunctionType t_move,
Arguments &&... arguments ) -> decltype(auto)
nodiscardconstexpr

An applicative function similar to std::apply on a manifold.

Template Parameters
ManifoldTypeThe type (topology, dimensionality) of manifold
FunctionTypeThe type of move applied to the manifold
Parameters
t_manifoldThe manifold on which to make the Pachner move
t_moveThe Pachner move
argumentsExplicit dependencies forwarded to the move
Returns
The expected or unexpected result in a std::expected<T,E>

Definition at line 29 of file Apply_move.hpp.

◆ format_as() [1/2]

auto cdt::format_as ( RandomSeed const seed) -> std::uint64_t
nodiscardconstexprnoexcept
Parameters
seedSeed to expose to fmt-compatible formatting.
Returns
The seed's unsigned representation.

Definition at line 69 of file Random.hpp.

◆ format_as() [2/2]

auto cdt::format_as ( RandomStream const stream) -> std::uint64_t
nodiscardconstexprnoexcept
Parameters
streamStream selector to expose to fmt-compatible formatting.
Returns
The selector's unsigned representation.

Definition at line 75 of file Random.hpp.

◆ operator<<() [1/3]

auto cdt::operator<< ( std::ostream & output,
RandomSeed const seed ) -> std::ostream &
inline
Parameters
outputDestination stream.
seedSeed to write as an unsigned integer.
Returns
output after insertion.

Definition at line 82 of file Random.hpp.

◆ operator<<() [2/3]

auto cdt::operator<< ( std::ostream & output,
RandomStream const stream ) -> std::ostream &
inline
Parameters
outputDestination stream.
streamStream selector to write as an unsigned integer.
Returns
output after insertion.

Definition at line 89 of file Random.hpp.

◆ operator<<() [3/3]

auto cdt::operator<< ( std::ostream & t_os,
Topology const & t_topology ) -> std::ostream &
inline

Convert Topology to string output.

Parameters
t_osThe output stream
t_topologyThe topology
Returns
An output string of the topology

Definition at line 81 of file Utilities.hpp.

References SPHERICAL, and TOROIDAL.

Variable Documentation

◆ ALIGNMENT_32_BIT

int cdt::ALIGNMENT_32_BIT = 32
inlineconstexpr

Except when we only need 32 bits.

Definition at line 61 of file Settings.hpp.

◆ ALIGNMENT_64_BIT

int cdt::ALIGNMENT_64_BIT = 64
inlineconstexpr

Aligns data for ease of access on 64-bit CPUs at the expense of padding.

Definition at line 58 of file Settings.hpp.

◆ FOLIATION_SPACING

◆ GV_BOUNDING_BOX_SIZE

Int_precision cdt::GV_BOUNDING_BOX_SIZE = 100
inlineconstexpr

Depends on INITIAL_RADIUS and RADIAL_FACTOR.

Definition at line 55 of file Settings.hpp.

◆ INITIAL_RADIUS

◆ PRECISION

Int_precision cdt::PRECISION = 256
inlineconstexpr

Sets the precision for MPFR.

Correctly declare global constants See Jonathan Boccara's C++ Pitfalls, January 2021

Definition at line 44 of file Settings.hpp.

◆ TOLERANCE

double cdt::TOLERANCE = 0.01
inlineconstexpr

Sets epsilon values for floating point comparisons.

Definition at line 52 of file Settings.hpp.

Referenced by cdt::foliated_triangulations::FoliatedTriangulation< 3 >::does_vertex_radius_match_timevalue().