|
CDT++ 1.0.0
Causal Dynamical Triangulations in C++
|
Utility functions. More...
#include <CGAL/version.h>#include <algorithm>#include <array>#include <charconv>#include <cmath>#include <concepts>#include <cstdint>#include <filesystem>#include <fstream>#include <gsl/gsl>#include <iomanip>#include <limits>#include <locale>#include <map>#include <memory>#include <mutex>#include <optional>#include <random>#include <span>#include <sstream>#include <stdexcept>#include <string>#include <string_view>#include <type_traits>#include <utility>#include <vector>#include <version>#include <date/date.h>#include <fmt/ostream.h>#include <spdlog/sinks/basic_file_sink.h>#include <spdlog/sinks/stdout_color_sinks.h>#include <spdlog/spdlog.h>#include "Move_tracker.hpp"#include "Random.hpp"#include "Settings.hpp"#include "Version.hpp"Go to the source code of this file.
Classes | |
| struct | cdt::utilities::Generated_population_bounds |
| Validated simplex-population bounds for generated triangulations. More... | |
| struct | cdt::utilities::Move_statistics |
| Cumulative counters needed to preserve observable run state. More... | |
| struct | cdt::utilities::Reproducibility_metadata |
| Provenance recorded next to every stochastic triangulation. More... | |
| struct | cdt::utilities::Triangulation_artifact< TriangulationType > |
| A validated triangulation artifact and its provenance. More... | |
Namespaces | |
| namespace | cdt |
| clang-15 does not support std::format | |
Typedefs | |
| template<typename TriangulationType> | |
| using | cdt::utilities::Checkpoint_artifact = Triangulation_artifact<TriangulationType> |
| A validated resumable checkpoint and its complete run state. | |
| template<typename TriangulationType> | |
| using | cdt::utilities::Initial_triangulation_artifact |
| A validated initial triangulation and its initialization provenance. | |
Enumerations | |
| enum class | cdt::utilities::ArtifactKind { INITIAL_TRIANGULATION , CHECKPOINT , FINAL_TRIANGULATION } |
| Persistence artifact represented by a triangulation payload. More... | |
| enum class | cdt::Topology { cdt::TOROIDAL , cdt::SPHERICAL } |
| Spatial-topology label stored by configuration and persistence APIs. More... | |
Functions | |
| auto | cdt::utilities::detail::artifact_name (ArtifactKind const artifact) -> std::string_view |
| auto | cdt::utilities::detail::canonical_bipartite_incidence_records (std::vector< std::string > const &vertex_bases, std::vector< std::string > const &cell_bases, std::vector< std::vector< std::size_t > > const &cell_vertices) -> std::vector< std::string > |
| template<typename Signature> | |
| auto | cdt::utilities::detail::canonical_colors (std::vector< Signature > const &signatures) -> std::vector< std::size_t > |
| auto | cdt::utilities::detail::canonical_incidence_search (std::vector< std::string > const &bases, std::vector< std::vector< std::size_t > > const &adjacency, std::vector< std::size_t > colors, std::size_t &budget) -> std::vector< std::string > |
| template<typename ManifoldType> | |
| auto | cdt::utilities::canonical_placement_fingerprint (ManifoldType const &manifold) -> std::uint64_t |
| Fingerprint finite vertex coordinates and timeslice metadata. | |
| template<typename TriangulationType> | |
| auto | cdt::utilities::detail::canonical_placement_fingerprint (TriangulationType const &triangulation) -> std::uint64_t |
| template<typename ManifoldType> | |
| auto | cdt::utilities::canonical_topology_fingerprint (ManifoldType const &manifold) -> std::uint64_t |
| Fingerprint vertices, causal metadata, and abstract finite cells. | |
| template<typename TriangulationType> | |
| auto | cdt::utilities::detail::canonical_topology_fingerprint (TriangulationType const &triangulation) -> std::uint64_t |
| void | cdt::utilities::detail::consume_canonical_incidence_work (std::size_t &budget) |
| void | cdt::utilities::create_logger () |
| Create console and file loggers. | |
| auto | cdt::utilities::current_date_time (std::chrono::system_clock::time_point const timestamp=std::chrono::system_clock::now()) |
| Return current date and time. | |
| auto | cdt::utilities::delaunay_tetrahedron_upper_bound (std::uint64_t const vertices) noexcept -> std::optional< std::uint64_t > |
| Return the rigorous finite 3D Delaunay tetrahedron upper bound. | |
| template<std::uniform_random_bit_generator Generator> | |
| auto | cdt::utilities::die_roll (Generator &generator) |
| Roll a die using a caller-supplied std::uniform_random_bit_generator. | |
| auto | cdt::utilities::expected_points_per_timeslice (Int_precision const t_dimension, Int_precision t_number_of_simplices, Int_precision t_number_of_timeslices, double const initial_radius=1.0, double const foliation_spacing=1.0) |
| Estimate the base population for the layered spherical generator. | |
| auto | cdt::utilities::detail::fingerprint_records (std::vector< std::string > const &records) -> std::uint64_t |
| template<std::uniform_random_bit_generator Generator> | |
| auto | cdt::utilities::generate_probability (Generator &generator) |
| Generate a probability. | |
| template<typename NumberType, class Distribution, std::uniform_random_bit_generator Generator> | |
| auto | cdt::utilities::generate_random (Generator &generator, NumberType t_min_value, NumberType t_max_value) |
| Generate random numbers with a caller-supplied generator. | |
| template<std::uniform_random_bit_generator Generator, std::integral IntegerType> | |
| auto | cdt::utilities::generate_random_int (Generator &generator, IntegerType t_min_value, IntegerType t_max_value) |
| Generate random integers by calling generate_random, preserves template argument deduction. | |
| template<std::uniform_random_bit_generator Generator, std::floating_point FloatingPointType> | |
| auto | cdt::utilities::generate_random_real (Generator &generator, FloatingPointType t_min_value, FloatingPointType t_max_value) |
| Generate random real numbers by calling generate_random, preserves template argument deduction. | |
| template<std::uniform_random_bit_generator Generator, std::integral IntegerType> | |
| auto | cdt::utilities::generate_random_timeslice (Generator &generator, IntegerType t_max_timeslice) -> decltype(auto) |
| Generate a random timeslice. | |
| auto | cdt::utilities::generated_input_vertex_count (Int_precision const points_per_timeslice, Int_precision const timeslices, double const initial_radius, double const foliation_spacing) -> std::uint64_t |
| Calculate the exact number of vertices generated on spherical layers. | |
| auto | cdt::utilities::generated_population_bounds (Int_precision const dimension, Int_precision const simplices, Int_precision const timeslices, double const initial_radius, double const foliation_spacing) -> Generated_population_bounds |
| Calculate the generated point count and its upper bound. | |
| auto | cdt::utilities::gmpzf_to_double (Gmpzf const &t_value) -> double |
| Convert Gmpzf into a double. | |
| template<typename TriangulationType> | |
| auto | cdt::utilities::detail::has_coincident_vertices (TriangulationType const &triangulation) -> bool |
| auto | cdt::utilities::detail::incidence_records_for_coloring (std::vector< std::string > const &bases, std::vector< std::vector< std::size_t > > const &adjacency, std::vector< std::size_t > const &colors) -> std::vector< std::string > |
| template<typename TriangulationType> | |
| auto | cdt::utilities::detail::incidence_topology_records (TriangulationType const &triangulation) -> std::vector< std::string > |
| template<typename ManifoldType> | |
| auto | cdt::utilities::make_filename (ManifoldType const &manifold) |
| Generate the conventional state-derived OFF filename. | |
| template<typename ManifoldType> | |
| auto | cdt::utilities::make_filename (ManifoldType const &manifold, cdt::RandomSeed const seed) |
| Generate a filename that records the effective run seed. | |
| template<typename ManifoldType> | |
| auto | cdt::utilities::make_filename (ManifoldType const &manifold, cdt::RandomSeed const seed, Int_precision const completed_passes) |
| Generate a checkpoint filename that records seed and pass. | |
| auto | cdt::utilities::make_filename (Topology const &t_topology, Int_precision t_dimension, Int_precision t_number_of_simplices, Int_precision t_number_of_timeslices, double t_initial_radius, double t_foliation_spacing) -> std::filesystem::path |
| Generate useful filenames. | |
| template<typename ManifoldType> | |
| auto | cdt::utilities::make_reproducibility_metadata (ManifoldType const &manifold, cdt::RandomSeed const seed, ArtifactKind const artifact) -> Reproducibility_metadata |
| Build provenance from a canonical manifold state. | |
| auto | cdt::utilities::metadata_filename (std::filesystem::path const &payload) -> std::filesystem::path |
| auto | cdt::utilities::detail::metadata_text (Reproducibility_metadata const &metadata, Payload_integrity const payload) -> std::string |
| auto | cdt::operator<< (std::ostream &t_os, Topology const &t_topology) -> std::ostream & |
| Convert Topology to string output. | |
| auto | cdt::utilities::detail::parse_count_line (std::string const &line, std::string_view const prefix, std::filesystem::path const &path) -> std::uint64_t |
| auto | cdt::utilities::detail::parse_info (std::string_view const text, std::filesystem::path const &path) -> Int_precision |
| template<std::floating_point Float> | |
| auto | cdt::utilities::detail::parse_metadata_floating (std::string_view const text, std::filesystem::path const &path) -> Float |
| auto | cdt::utilities::detail::parse_metadata_integer (std::string_view const text, std::filesystem::path const &path) -> Int_precision |
| auto | cdt::utilities::detail::parse_move_counts (std::string_view text, std::filesystem::path const &path) -> Move_statistics::Counts |
| template<typename TriangulationType> | |
| auto | cdt::utilities::detail::parse_payload (std::filesystem::path const &filename) -> TriangulationType |
| auto | cdt::utilities::detail::parse_record (std::string const &line, std::string_view const prefix, std::filesystem::path const &path) -> std::pair< std::string, Int_precision > |
| auto | cdt::utilities::detail::parse_unsigned (std::string_view const text, int const base, std::filesystem::path const &path) -> std::uint64_t |
| auto | cdt::utilities::detail::payload_integrity (std::filesystem::path const &filename) -> Payload_integrity |
| auto | cdt::utilities::detail::point_cell_key (auto const &cell) -> std::string |
| auto | cdt::utilities::detail::point_key (auto const &point) -> std::string |
| template<typename Point> | |
| auto | cdt::utilities::point_to_str (Point const &t_point) -> std::string |
| Covert a CGAL point to a string. | |
| template<typename TriangulationType> | |
| void | cdt::utilities::print_delaunay (TriangulationType const &t_triangulation) |
| Print triangulation statistics. | |
| template<typename TriangulationType> | |
| void | cdt::utilities::detail::read_causal_info (std::istream &input, TriangulationType &triangulation, std::filesystem::path const &path) |
| template<typename TriangulationType> | |
| auto | cdt::utilities::read_checkpoint (std::filesystem::path const &filename) -> Triangulation_artifact< TriangulationType > |
| Read a checkpoint that can continue the identical Markov chain. | |
| template<typename TriangulationType> | |
| auto | cdt::utilities::read_file (std::filesystem::path const &filename) -> TriangulationType |
| Read triangulation from file. | |
| auto | cdt::utilities::detail::read_indexed_info (std::istream &input, std::string_view const prefix, std::uint64_t const count, std::filesystem::path const &path) -> std::vector< Int_precision > |
| template<typename TriangulationType> | |
| auto | cdt::utilities::read_initial_triangulation (std::filesystem::path const &filename) -> Initial_triangulation_artifact< TriangulationType > |
| Read a manifested initial triangulation for a new CDT run. | |
| auto | cdt::utilities::detail::read_persistence_metadata (std::filesystem::path const &path) -> Parsed_persistence_metadata |
| template<typename TriangulationType> | |
| void | cdt::utilities::detail::reconcile_payload_metadata (Reproducibility_metadata &metadata, TriangulationType const &triangulation) |
| auto | cdt::utilities::detail::refine_incidence_colors (std::vector< std::vector< std::size_t > > const &adjacency, std::vector< std::size_t > colors, std::size_t &budget) -> std::vector< std::size_t > |
| void | cdt::utilities::detail::replace_file (std::filesystem::path const &temporary, std::filesystem::path const &destination) |
| template<typename TriangulationType> | |
| void | cdt::utilities::detail::require_distinct_evolution_coordinates (TriangulationType const &triangulation, std::filesystem::path const &payload, std::filesystem::path const &sidecar, std::string_view const operation) |
| auto | cdt::utilities::detail::standard_library_name () -> std::string |
| auto | cdt::utilities::detail::to_reproducibility_metadata (Parsed_persistence_metadata const &source) -> Reproducibility_metadata |
| auto | cdt::utilities::topology_to_str (Topology const &t_topology) -> std::string |
| Convert a topology to a string using it's << operator. | |
| template<typename ManifoldType> | |
| void | cdt::utilities::update_reproducibility_state (Reproducibility_metadata &metadata, ManifoldType const &manifold) |
| Refresh state-dependent provenance after a transition sequence. | |
| auto | cdt::utilities::detail::validate_payload_integrity (std::filesystem::path const &payload) -> std::optional< Parsed_persistence_metadata > |
| template<typename TriangulationType> | |
| void | cdt::utilities::detail::validate_persistence_metadata (Parsed_persistence_metadata const &metadata, TriangulationType const &triangulation, std::filesystem::path const &payload_path, std::filesystem::path const &metadata_path) |
| template<typename TriangulationType> | |
| void | cdt::utilities::detail::validate_serialized_payload (std::filesystem::path const &filename, TriangulationType const &original) |
| template<typename TriangulationType> | |
| auto | cdt::utilities::detail::vertex_records (TriangulationType const &triangulation) -> std::vector< std::string > |
| template<typename TriangulationType> | |
| void | cdt::utilities::detail::write_causal_info (std::ostream &output, TriangulationType const &triangulation) |
| template<typename ManifoldType> | |
| void | cdt::utilities::write_file (ManifoldType const &t_universe) |
| Write the runtime results to a file. | |
| template<typename ManifoldType> | |
| void | cdt::utilities::write_file (ManifoldType const &t_universe, cdt::RandomSeed const seed) |
| Write a triangulation with the effective seed in its filename. | |
| template<typename ManifoldType> | |
| void | cdt::utilities::write_file (ManifoldType const &t_universe, cdt::RandomSeed const seed, Int_precision const completed_passes) |
| Write a checkpoint with its effective seed and pass in its name. | |
| template<typename ManifoldType> | |
| void | cdt::utilities::write_file (ManifoldType const &universe, Reproducibility_metadata const &metadata) |
| Write a named stochastic artifact and its complete provenance. | |
| template<typename TriangulationType> | |
| void | cdt::utilities::write_file (std::filesystem::path const &filename, TriangulationType const &triangulation) |
| Write triangulation to file. | |
| template<typename TriangulationType> | |
| void | cdt::utilities::write_file (std::filesystem::path const &filename, TriangulationType const &triangulation, Reproducibility_metadata const &metadata) |
| Replace a triangulation and its verifiable provenance atomically per file. | |
| auto | cdt::utilities::detail::write_file_active () noexcept -> bool & |
| auto | cdt::utilities::detail::write_file_mutex () -> std::mutex & |
| template<typename TriangulationType> | |
| void | cdt::utilities::detail::write_payload (std::filesystem::path const &filename, TriangulationType const &triangulation, std::optional< Reproducibility_metadata > const &metadata) |
| void | cdt::utilities::detail::write_text (std::filesystem::path const &filename, std::string_view const contents) |
Variables | |
| constexpr std::size_t | cdt::utilities::detail::CANONICAL_INCIDENCE_WORK_BUDGET {100'000} |
| constexpr std::string_view | cdt::utilities::detail::CAUSAL_INFO_HEADER |
| template<typename TriangulationType> | |
| constexpr bool | cdt::utilities::detail::HAS_CAUSAL_INFO |
| constexpr bool | cdt::utilities::detail::PARALLEL_TRIANGULATION_ENABLED {false} |
Utility functions.
Definition in file Utilities.hpp.
| using cdt::utilities::Checkpoint_artifact = Triangulation_artifact<TriangulationType> |
A validated resumable checkpoint and its complete run state.
| TriangulationType | Persisted triangulation representation. |
Definition at line 2424 of file Utilities.hpp.
| using cdt::utilities::Initial_triangulation_artifact |
A validated initial triangulation and its initialization provenance.
| TriangulationType | Persisted triangulation representation. |
Definition at line 2370 of file Utilities.hpp.
|
strong |
Persistence artifact represented by a triangulation payload.
| Enumerator | |
|---|---|
| INITIAL_TRIANGULATION | Initial state before stochastic transitions. |
| CHECKPOINT | Intermediate snapshot during a move run. |
| FINAL_TRIANGULATION | Final state after the configured move run. |
Definition at line 98 of file Utilities.hpp.
|
inlinenodiscard |
Definition at line 206 of file Utilities.hpp.
|
inlinenodiscard |
Definition at line 422 of file Utilities.hpp.
|
nodiscard |
Definition at line 286 of file Utilities.hpp.
|
inlinenodiscard |
Definition at line 388 of file Utilities.hpp.
|
nodiscard |
Fingerprint finite vertex coordinates and timeslice metadata.
| ManifoldType | Supported manifold type. |
| manifold | Manifold to fingerprint without mutation. |
Definition at line 2223 of file Utilities.hpp.
|
nodiscard |
Definition at line 575 of file Utilities.hpp.
|
nodiscard |
Fingerprint vertices, causal metadata, and abstract finite cells.
| ManifoldType | Supported manifold type. |
| manifold | Manifold to fingerprint without mutation. |
Definition at line 2211 of file Utilities.hpp.
|
nodiscard |
Definition at line 580 of file Utilities.hpp.
|
inline |
Definition at line 306 of file Utilities.hpp.
|
inline |
Create console and file loggers.
Create a console and file loggers. There are six logging levels by default:
| Logging level | Description |
|---|---|
| Trace | Used to trace the internals |
| Debug | Diagnostic information |
| Info | General information |
| Warn | Errors that are handled |
| Err | Errors which cause a function to fail |
| Critical | Errors which cause the program to fail |
A logging level covers all levels beneath it, e.g. trace covers everything, critical only shows up in spdlog::level::critical.
Logging levels and formatting are set by loggers. The sink is the object that writes the log to the target.
So, this function creates 3 sinks:
If an exception is thrown, then the default global console logger is used.
Definition at line 2871 of file Utilities.hpp.
|
inlinenodiscard |
Return current date and time.
Return current date and time in ISO 8601 format Use Howard Hinnant's date library to format UTC without requiring an external time zone database.
| timestamp | The system time point to format |
Definition at line 2044 of file Utilities.hpp.
|
inlinenodiscardnoexcept |
Return the rigorous finite 3D Delaunay tetrahedron upper bound.
Evaluates \((n^2-3n-2)/2=n(n-3)/2-1\) without overflowing. std::nullopt means that the exact bound exceeds uint64_t; it never means that the triangulation itself has that many tetrahedra.
| vertices | Number \(n\) of finite input vertices |
Definition at line 2667 of file Utilities.hpp.
|
inlinenodiscard |
Roll a die using a caller-supplied std::uniform_random_bit_generator.
| Generator | Uniform random bit generator type. |
| generator | Generator whose state advances during sampling. |
Definition at line 2500 of file Utilities.hpp.
|
inlinenodiscard |
Estimate the base population for the layered spherical generator.
The estimator is monotone in the requested simplex count. It takes the upper envelope of the historical piecewise schedules, thereby preserving their established scale without their downward jumps at 1,000, 10,000, and 100,000 requested simplices. This is a construction heuristic for CDT++'s nested cospherical inputs, with a 25% population margin to keep boundary layers populated. It is not Dwyer's distribution-specific expectation or an exact topology oracle.
| t_dimension | Number of dimensions |
| t_number_of_simplices | Desired post-repair tetrahedron count |
| t_number_of_timeslices | Number of spherical layers |
| initial_radius | Radius of the first layer |
| foliation_spacing | Distance between successive layers |
| std::invalid_argument | if the dimension is not three or a count, radius, or spacing is not positive and finite |
| std::out_of_range | if the requested estimate or generated vertex population is not representable |
Definition at line 2707 of file Utilities.hpp.
|
inlinenodiscard |
Definition at line 557 of file Utilities.hpp.
|
inlinenodiscard |
Generate a probability.
| Generator | Uniform random bit generator type. |
| generator | Generator whose state advances during sampling. |
Definition at line 2593 of file Utilities.hpp.
|
nodiscard |
Generate random numbers with a caller-supplied generator.
Accepts any uniform random bit generator. When callers provide cdt::Random, sampling uses its run-owned PCG engine.
| NumberType | The type of number in the RNG |
| Distribution | The distribution type, usually uniform |
| Generator | A uniform random bit generator type |
| generator | Caller-owned generator whose state advances during sampling |
| t_min_value | The minimum value |
| t_max_value | The maximum value |
Definition at line 2526 of file Utilities.hpp.
|
nodiscard |
Generate random integers by calling generate_random, preserves template argument deduction.
| Generator | Uniform random bit generator type. |
| IntegerType | Integral result type. |
| generator | Generator whose state advances during sampling. |
| t_min_value | Inclusive lower bound. |
| t_max_value | Inclusive upper bound. |
Definition at line 2544 of file Utilities.hpp.
|
nodiscard |
Generate random real numbers by calling generate_random, preserves template argument deduction.
| Generator | Uniform random bit generator type. |
| FloatingPointType | Floating-point result type. |
| generator | Generator whose state advances during sampling. |
| t_min_value | Inclusive lower bound. |
| t_max_value | Exclusive upper bound. |
Definition at line 2579 of file Utilities.hpp.
|
nodiscard |
Generate a random timeslice.
| Generator | Uniform random bit generator type. |
| IntegerType | Integral timeslice type. |
| generator | Generator whose state advances during sampling. |
| t_max_timeslice | Inclusive positive upper timeslice bound. |
Definition at line 2561 of file Utilities.hpp.
|
inlinenodiscard |
Calculate the exact number of vertices generated on spherical layers.
For base population \(p\), initial radius \(r_0\), spacing \(\Delta r\), and \(T\) layers, this evaluates \(\sum_{i=0}^{T-1}\lfloor p(r_0+i\Delta r)\rfloor\) using the same long-double product and truncation boundary as make_foliated_ball(). Every per-layer conversion and the total are checked before narrowing.
| points_per_timeslice | Base population \(p\) for the first layer |
| timeslices | Number of spherical layers \(T\) |
| initial_radius | Radius \(r_0\) of the first layer |
| foliation_spacing | Radius increment \(\Delta r\) per layer |
| std::invalid_argument | if a count, radius, or spacing is not positive and finite |
| std::out_of_range | if a layer or the accumulated vertex count cannot be represented by uint64_t |
Definition at line 2616 of file Utilities.hpp.
|
inlinenodiscard |
Calculate the generated point count and its upper bound.
| dimension | Number of dimensions |
| simplices | Number of desired simplices |
| timeslices | Number of desired timeslices |
| initial_radius | Radius of the first timeslice |
| foliation_spacing | Distance between successive timeslices |
| std::invalid_argument | if the dimension is not three or a count, radius, or spacing is not positive and finite |
| std::out_of_range | if the requested estimate or generated vertex population is not representable |
Definition at line 2813 of file Utilities.hpp.
|
inlinenodiscard |
Convert Gmpzf into a double.
This function is mainly for testing, since to_double() seems to work. However, if something more elaborate is required this function can be expanded.
| t_value | An exact Gmpzf multiple-precision floating point number |
Definition at line 2843 of file Utilities.hpp.
|
nodiscard |
Definition at line 489 of file Utilities.hpp.
|
inlinenodiscard |
Definition at line 353 of file Utilities.hpp.
|
nodiscard |
Definition at line 515 of file Utilities.hpp.
|
nodiscard |
Generate the conventional state-derived OFF filename.
| ManifoldType | Supported manifold type. |
| manifold | Manifold whose geometry and foliation name the artifact. |
Definition at line 2110 of file Utilities.hpp.
|
nodiscard |
Generate a filename that records the effective run seed.
| ManifoldType | Supported manifold type. |
| manifold | Manifold whose state names the artifact. |
| seed | Effective root seed. |
Definition at line 2124 of file Utilities.hpp.
References cdt::RandomSeed::value().
|
nodiscard |
Generate a checkpoint filename that records seed and pass.
| ManifoldType | Supported manifold type. |
| manifold | Manifold whose state names the artifact. |
| seed | Effective root seed. |
| completed_passes | Number of completed move passes. |
Definition at line 2140 of file Utilities.hpp.
|
inlinenodiscard |
Generate useful filenames.
| t_topology | The topology type from the scoped enum Topology |
| t_dimension | The dimensionality of the triangulation |
| t_number_of_simplices | The number of simplices in the triangulation |
| t_number_of_timeslices | The number of time foliations |
| t_initial_radius | The radius of the first foliation t=1 |
| t_foliation_spacing | The spacing between foliations |
Definition at line 2061 of file Utilities.hpp.
References cdt::SPHERICAL.
|
nodiscard |
Build provenance from a canonical manifold state.
| ManifoldType | Supported manifold type. |
| manifold | Canonical state summarized by the metadata. |
| seed | Effective root seed. |
| artifact | Artifact role to record. |
Definition at line 2237 of file Utilities.hpp.
|
inlinenodiscard |
| payload | Triangulation payload path. |
Definition at line 181 of file Utilities.hpp.
|
inlinenodiscard |
Definition at line 645 of file Utilities.hpp.
|
inlinenodiscard |
Definition at line 929 of file Utilities.hpp.
|
inlinenodiscard |
Definition at line 816 of file Utilities.hpp.
|
nodiscard |
Definition at line 882 of file Utilities.hpp.
|
inlinenodiscard |
Definition at line 832 of file Utilities.hpp.
|
inlinenodiscard |
Definition at line 848 of file Utilities.hpp.
|
nodiscard |
Definition at line 1704 of file Utilities.hpp.
|
inlinenodiscard |
Definition at line 905 of file Utilities.hpp.
|
inlinenodiscard |
Definition at line 799 of file Utilities.hpp.
|
inlinenodiscard |
Definition at line 232 of file Utilities.hpp.
|
inlinenodiscard |
Definition at line 274 of file Utilities.hpp.
|
inlinenodiscard |
Definition at line 267 of file Utilities.hpp.
|
nodiscard |
Covert a CGAL point to a string.
| Point | The type of point (e.g. 3D, 4D) |
| t_point | The point |
Definition at line 2916 of file Utilities.hpp.
| void cdt::utilities::print_delaunay | ( | TriangulationType const & | t_triangulation | ) |
Print triangulation statistics.
| TriangulationType | The triangulation type |
| t_triangulation | A triangulation (typically a Delaunay_t<3> triangulation) |
Definition at line 2155 of file Utilities.hpp.
| void cdt::utilities::detail::read_causal_info | ( | std::istream & | input, |
| TriangulationType & | triangulation, | ||
| std::filesystem::path const & | path ) |
Definition at line 986 of file Utilities.hpp.
|
nodiscard |
Read a checkpoint that can continue the identical Markov chain.
The complete manifested pair is validated before any state is returned. Snapshot-only legacy checkpoints, initial states, final states, malformed PCG state, and producer-toolchain mismatches are rejected. Distinct vertex coordinates are required for exact move-locator replay.
| TriangulationType | The type of triangulation. |
| filename | Checkpoint payload path. |
| std::filesystem::filesystem_error | for an invalid or unsupported checkpoint contract. |
Definition at line 2437 of file Utilities.hpp.
|
nodiscard |
Read triangulation from file.
| TriangulationType | The type of triangulation |
| filename | The file to read from |
| std::filesystem::filesystem_error | if the payload is missing, unreadable, or malformed, or if a present sidecar is unreadable, malformed, or inconsistent with the payload. |
Definition at line 2478 of file Utilities.hpp.
|
inlinenodiscard |
Definition at line 943 of file Utilities.hpp.
|
nodiscard |
Read a manifested initial triangulation for a new CDT run.
This boundary requires an initial-triangulation sidecar, verifies payload integrity and causal metadata, and returns the recorded foliation parameters needed to reconstruct the owning manifold. Checkpoints and final triangulations are rejected because this operation starts a new transition stream; it is not checkpoint resume. CDT evolution also requires distinct vertex coordinates because prepared move locators are coordinate-valued.
| TriangulationType | The type of triangulation. |
| filename | Initial triangulation payload path. |
| std::filesystem::filesystem_error | if the payload or required sidecar is missing, malformed, inconsistent, or has another artifact role. |
Definition at line 2387 of file Utilities.hpp.
|
inlinenodiscard |
Definition at line 1087 of file Utilities.hpp.
| void cdt::utilities::detail::reconcile_payload_metadata | ( | Reproducibility_metadata & | metadata, |
| TriangulationType const & | triangulation ) |
Definition at line 1772 of file Utilities.hpp.
|
inlinenodiscard |
Definition at line 316 of file Utilities.hpp.
|
inline |
Definition at line 1680 of file Utilities.hpp.
| void cdt::utilities::detail::require_distinct_evolution_coordinates | ( | TriangulationType const & | triangulation, |
| std::filesystem::path const & | payload, | ||
| std::filesystem::path const & | sidecar, | ||
| std::string_view const | operation ) |
Definition at line 501 of file Utilities.hpp.
|
inlinenodiscard |
Definition at line 219 of file Utilities.hpp.
|
inlinenodiscard |
Definition at line 1585 of file Utilities.hpp.
|
inlinenodiscard |
Convert a topology to a string using it's << operator.
| t_topology | The Topology to convert |
Definition at line 2926 of file Utilities.hpp.
| void cdt::utilities::update_reproducibility_state | ( | Reproducibility_metadata & | metadata, |
| ManifoldType const & | manifold ) |
Refresh state-dependent provenance after a transition sequence.
| ManifoldType | Supported manifold type. |
| metadata | Metadata record to update in place. |
| manifold | Canonical state supplying counts and fingerprints. |
Definition at line 2265 of file Utilities.hpp.
References cdt::utilities::Reproducibility_metadata::actual_edges, cdt::utilities::Reproducibility_metadata::actual_faces, cdt::utilities::Reproducibility_metadata::actual_simplices, cdt::utilities::Reproducibility_metadata::actual_vertices, cdt::utilities::Reproducibility_metadata::dimension, cdt::utilities::Reproducibility_metadata::foliation_spacing, cdt::utilities::Reproducibility_metadata::initial_radius, cdt::utilities::Reproducibility_metadata::maximum_timeslice, cdt::utilities::Reproducibility_metadata::minimum_timeslice, cdt::utilities::Reproducibility_metadata::placement_fingerprint, cdt::utilities::Reproducibility_metadata::topology, and cdt::utilities::Reproducibility_metadata::topology_fingerprint.
|
inlinenodiscard |
Definition at line 1629 of file Utilities.hpp.
| void cdt::utilities::detail::validate_persistence_metadata | ( | Parsed_persistence_metadata const & | metadata, |
| TriangulationType const & | triangulation, | ||
| std::filesystem::path const & | payload_path, | ||
| std::filesystem::path const & | metadata_path ) |
Definition at line 1824 of file Utilities.hpp.
| void cdt::utilities::detail::validate_serialized_payload | ( | std::filesystem::path const & | filename, |
| TriangulationType const & | original ) |
Definition at line 1853 of file Utilities.hpp.
|
nodiscard |
Definition at line 473 of file Utilities.hpp.
| void cdt::utilities::detail::write_causal_info | ( | std::ostream & | output, |
| TriangulationType const & | triangulation ) |
Definition at line 604 of file Utilities.hpp.
| void cdt::utilities::write_file | ( | ManifoldType const & | t_universe | ) |
Write the runtime results to a file.
The filename is generated by the make_filename() and written using another write_file() function, which is currently implemented using the << operator for triangulations.
| ManifoldType | The manifold type |
| t_universe | The simplicial manifold |
| std::logic_error | for a same-thread reentrant write. |
| std::filesystem::filesystem_error | if persistence fails. |
Definition at line 2291 of file Utilities.hpp.
| void cdt::utilities::write_file | ( | ManifoldType const & | t_universe, |
| cdt::RandomSeed const | seed ) |
Write a triangulation with the effective seed in its filename.
| ManifoldType | Supported manifold type. |
| t_universe | Manifold to serialize. |
| seed | Effective root seed. |
| std::logic_error | for a same-thread reentrant write. |
| std::filesystem::filesystem_error | if persistence fails. |
Definition at line 2305 of file Utilities.hpp.
| void cdt::utilities::write_file | ( | ManifoldType const & | t_universe, |
| cdt::RandomSeed const | seed, | ||
| Int_precision const | completed_passes ) |
Write a checkpoint with its effective seed and pass in its name.
| ManifoldType | Supported manifold type. |
| t_universe | Manifold to serialize. |
| seed | Effective root seed. |
| completed_passes | Number of completed move passes. |
| std::logic_error | for a same-thread reentrant write. |
| std::filesystem::filesystem_error | if persistence fails. |
Definition at line 2321 of file Utilities.hpp.
| void cdt::utilities::write_file | ( | ManifoldType const & | universe, |
| Reproducibility_metadata const & | metadata ) |
Write a named stochastic artifact and its complete provenance.
| ManifoldType | Supported manifold type. |
| universe | Manifold to serialize. |
| metadata | Complete artifact and stochastic provenance. |
| std::invalid_argument | if checkpoint metadata omits completed passes or input provenance is incomplete. |
| std::logic_error | for a same-thread reentrant write. |
| std::filesystem::filesystem_error | if persistence fails. |
Definition at line 2340 of file Utilities.hpp.
References cdt::utilities::Reproducibility_metadata::artifact, cdt::utilities::Reproducibility_metadata::completed_passes, and cdt::utilities::Reproducibility_metadata::seed.
| void cdt::utilities::write_file | ( | std::filesystem::path const & | filename, |
| TriangulationType const & | triangulation ) |
Write triangulation to file.
Writes CGAL's native triangulation stream using CDT++'s historical .off filename convention. This is not Geomview mesh OFF. Provides strong exception-safety for the destination file. Writes are serialized within the process and validated before an atomic replacement.
| TriangulationType | The type of triangulation |
| filename | The filename to write to |
| triangulation | The triangulation to write |
| std::logic_error | for a same-thread reentrant write. |
| std::filesystem::filesystem_error | if serialization, validation, or replacement fails. |
Definition at line 2178 of file Utilities.hpp.
| void cdt::utilities::write_file | ( | std::filesystem::path const & | filename, |
| TriangulationType const & | triangulation, | ||
| Reproducibility_metadata const & | metadata ) |
Replace a triangulation and its verifiable provenance atomically per file.
Derives payload-dependent metadata from the triangulation and validates both temporary files before publishing the manifest and then the payload. The pair is not a filesystem transaction: interruption between replacements can leave a detectable checksum mismatch, which read_file() rejects.
| TriangulationType | Supported Delaunay triangulation type. |
| filename | Destination OFF path. |
| triangulation | Triangulation payload to serialize. |
| metadata | Run configuration and stochastic provenance. |
| std::invalid_argument | if input provenance is incomplete or does not identify an initial-triangulation artifact. |
| std::logic_error | for a same-thread reentrant write. |
| std::filesystem::filesystem_error | if serialization, validation, or either replacement fails. |
Definition at line 2201 of file Utilities.hpp.
|
inlinenodiscardnoexcept |
Definition at line 1654 of file Utilities.hpp.
|
inlinenodiscard |
Definition at line 1648 of file Utilities.hpp.
| void cdt::utilities::detail::write_payload | ( | std::filesystem::path const & | filename, |
| TriangulationType const & | triangulation, | ||
| std::optional< Reproducibility_metadata > const & | metadata ) |
Definition at line 1944 of file Utilities.hpp.
|
inline |
Definition at line 1910 of file Utilities.hpp.
|
inlineconstexpr |
Definition at line 304 of file Utilities.hpp.
|
inlineconstexpr |
Definition at line 191 of file Utilities.hpp.
|
inlineconstexpr |
Definition at line 464 of file Utilities.hpp.
|
inlineconstexpr |
Definition at line 197 of file Utilities.hpp.