Track ergodic moves.
More...
#include <array>
#include <cstddef>
#include <gsl/util>
#include <numeric>
#include <optional>
#include <random>
#include <span>
#include <string_view>
#include <type_traits>
#include "Settings.hpp"
Go to the source code of this file.
|
| namespace | cdt |
| | clang-15 does not support std::format
|
Track ergodic moves.
- Author
- Adam Getchell
Definition in file Move_tracker.hpp.
◆ MoveType
The types of 3D ergodic moves.
| Enumerator |
|---|
| TWO_THREE | Replace two tetrahedra with three.
|
| THREE_TWO | Replace three tetrahedra with two.
|
| TWO_SIX | Replace two tetrahedra with six.
|
| SIX_TWO | Replace six tetrahedra with two.
|
| FOUR_FOUR | Exchange a causal four-tetrahedron diamond.
|
Definition at line 34 of file Move_tracker.hpp.
◆ as_integer()
template<typename Enumeration>
| auto cdt::move_tracker::as_integer |
( |
Enumeration const | value | ) |
-> std::underlying_type_t< Enumeration > |
|
nodiscardconstexprnoexcept |
Convert enum to integer.
- Template Parameters
-
- Parameters
-
- Returns
- The integer value of the enum
Definition at line 69 of file Move_tracker.hpp.
◆ format_as()
| auto cdt::move_tracker::format_as |
( |
MoveType const | move | ) |
-> std::string_view |
|
nodiscardconstexprnoexcept |
◆ generate_random_move_3()
template<std::uniform_random_bit_generator Generator>
| auto cdt::move_tracker::generate_random_move_3 |
( |
Generator & | generator | ) |
-> MoveType |
|
inlinenodiscard |
Generate a uniformly distributed 3D move from caller-owned RNG.
- Template Parameters
-
| Generator | Uniform random bit generator type. |
- Parameters
-
| generator | Generator whose state advances during sampling. |
- Returns
- One uniformly sampled MoveType.
Definition at line 96 of file Move_tracker.hpp.
◆ move_from_index()
| auto cdt::move_tracker::move_from_index |
( |
std::size_t const | move_choice | ) |
-> std::optional< MoveType > |
|
nodiscardconstexprnoexcept |
◆ NUMBER_OF_3D_MOVES
| std::size_t cdt::move_tracker::NUMBER_OF_3D_MOVES = 5 |
|
inlineconstexpr |
Number of supported Pachner move kinds in three dimensions.
Definition at line 29 of file Move_tracker.hpp.