CDT++ 1.0.0-rc3
Causal Dynamical Triangulations in C++
Loading...
Searching...
No Matches
Move_run.hpp File Reference

Shared value-oriented orchestration for ergodic-move strategies. More...

#include <fmt/format.h>
#include <expected>
#include <functional>
#include <stdexcept>
#include <string_view>
#include <utility>
#include "Move_tracker.hpp"
#include "Random.hpp"
Include dependency graph for Move_run.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  cdt::MoveRunCadence
 Positive pass count and checkpoint interval for a move run. More...

Namespaces

namespace  cdt
 clang-15 does not support std::format

Enumerations

enum class  cdt::MoveRunCadenceError { cdt::NONPOSITIVE_PASSES , cdt::NONPOSITIVE_CHECKPOINT }
 Reasons raw move-run cadence cannot become a domain value. More...

Functions

template<typename ManifoldType>
auto cdt::detail::accumulate_command_results (MoveCommandResults< ManifoldType > totals, MoveCommandResults< ManifoldType > const &delta) -> MoveCommandResults< ManifoldType >
 Add one pass delta to accumulated command results.
template<typename ManifoldType, typename Command>
auto cdt::detail::consume_command_results (Command &command) -> MoveCommandResults< ManifoldType >
 Consume cumulative MoveCommand counters exactly once.
template<typename ManifoldType, typename StrategyState, typename ExecutePass, typename Report, typename Checkpoint>
auto cdt::detail::execute_move_run (ManifoldType initial, StrategyState initial_strategy_state, MoveRunCadence const cadence, MoveRunIdentity const identity, bool const writes_files, ExecutePass execute_pass, Report report, Checkpoint checkpoint) -> MoveRunResult< ManifoldType, StrategyState >
 Execute shared pass, accounting, checkpoint, and report cadence.
auto cdt::detail::parse_move_run_cadence (Int_precision const passes, Int_precision const checkpoint, std::string_view const strategy_name) -> MoveRunCadence
 Convert a raw constructor boundary or throw its established error.

Detailed Description

Shared value-oriented orchestration for ergodic-move strategies.

Definition in file Move_run.hpp.

Function Documentation

◆ accumulate_command_results()

template<typename ManifoldType>
auto cdt::detail::accumulate_command_results ( MoveCommandResults< ManifoldType > totals,
MoveCommandResults< ManifoldType > const & delta ) -> MoveCommandResults< ManifoldType >
nodiscard

Add one pass delta to accumulated command results.

Definition at line 121 of file Move_run.hpp.

◆ consume_command_results()

template<typename ManifoldType, typename Command>
auto cdt::detail::consume_command_results ( Command & command) -> MoveCommandResults< ManifoldType >
nodiscard

Consume cumulative MoveCommand counters exactly once.

Definition at line 134 of file Move_run.hpp.

◆ execute_move_run()

template<typename ManifoldType, typename StrategyState, typename ExecutePass, typename Report, typename Checkpoint>
auto cdt::detail::execute_move_run ( ManifoldType initial,
StrategyState initial_strategy_state,
MoveRunCadence const cadence,
MoveRunIdentity const identity,
bool const writes_files,
ExecutePass execute_pass,
Report report,
Checkpoint checkpoint ) -> MoveRunResult< ManifoldType, StrategyState >
nodiscard

Execute shared pass, accounting, checkpoint, and report cadence.

The pass callable owns strategy-specific selection and transition effects. The reporting and checkpoint callables make output effects explicit. All run values are returned for one commit by the caller, so a reusable strategy never exposes partially reset counters.

Definition at line 178 of file Move_run.hpp.

◆ parse_move_run_cadence()

auto cdt::detail::parse_move_run_cadence ( Int_precision const passes,
Int_precision const checkpoint,
std::string_view const strategy_name ) -> MoveRunCadence
inlinenodiscard

Convert a raw constructor boundary or throw its established error.

Definition at line 88 of file Move_run.hpp.

References cdt::NONPOSITIVE_CHECKPOINT, cdt::NONPOSITIVE_PASSES, and cdt::MoveRunCadence::parse().