CDT++
Causal Dynamical Triangulations in C++
Loading...
Searching...
No Matches
Classes | Enumerations | Functions | Variables
Move_tracker.hpp File Reference

Track ergodic moves. More...

#include <array>
#include <cstddef>
#include <gsl/util>
#include <span>
#include "Settings.hpp"
#include "Utilities.hpp"
+ Include dependency graph for Move_tracker.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  move_tracker::MoveTracker< ManifoldType >
 The data and methods to track ergodic moves. More...
 

Enumerations

enum class  move_tracker::move_type {
  TWO_THREE = 0 , THREE_TWO = 1 , TWO_SIX = 2 , SIX_TWO = 3 ,
  FOUR_FOUR = 4
}
 The types of 3D ergodic moves. More...
 

Functions

template<typename Enumeration >
auto move_tracker::as_integer (Enumeration value) -> std::underlying_type_t< Enumeration >
 Convert enum to integer.
 
auto move_tracker::as_move (int const move_choice) -> move_type
 Convert integer to move_type.
 
auto move_tracker::generate_random_move_3 () -> move_type
 Generate random 3D ergodic move.
 
auto constexpr move_tracker::moves_per_dimension (Int_precision const dim) -> Int_precision
 Determine the ergodic moves for a given dimensionality.
 

Variables

static Int_precision constexpr move_tracker::NUMBER_OF_3D_MOVES = 5
 
static Int_precision constexpr move_tracker::NUMBER_OF_4D_MOVES = 7
 

Detailed Description

Track ergodic moves.

Author
Adam Getchell

Definition in file Move_tracker.hpp.

Enumeration Type Documentation

◆ move_type

enum class move_tracker::move_type
strong

The types of 3D ergodic moves.

Definition at line 30 of file Move_tracker.hpp.

Function Documentation

◆ as_integer()

template<typename Enumeration >
auto move_tracker::as_integer ( Enumeration  value) -> std::underlying_type_t<Enumeration>

Convert enum to integer.

Template Parameters
EnumerationThe enum type
Parameters
valueThe enum
Returns
The integer value of the enum

Definition at line 40 of file Move_tracker.hpp.

References move_tracker::as_integer().

Referenced by move_tracker::as_integer(), and move_tracker::MoveTracker< ManifoldType >::operator[]().

◆ as_move()

auto move_tracker::as_move ( int const  move_choice) -> move_type
inline

Convert integer to move_type.

Parameters
move_choiceThe move choice integer
Returns
The move_type

Definition at line 50 of file Move_tracker.hpp.

References move_tracker::as_move().

Referenced by move_tracker::as_move(), and move_tracker::generate_random_move_3().

◆ generate_random_move_3()

auto move_tracker::generate_random_move_3 ( ) -> move_type
inline

Generate random 3D ergodic move.

Returns
The move_type to be performed

Definition at line 63 of file Move_tracker.hpp.

References move_tracker::as_move(), and move_tracker::generate_random_move_3().

Referenced by move_tracker::generate_random_move_3().

◆ moves_per_dimension()

auto constexpr move_tracker::moves_per_dimension ( Int_precision const  dim) -> Int_precision
constexpr

Determine the ergodic moves for a given dimensionality.

Parameters
dimDimensionality of the manifold
Returns
The number of ergodic moves for that dimensionality

Definition at line 77 of file Move_tracker.hpp.

References move_tracker::moves_per_dimension().

Referenced by move_tracker::moves_per_dimension().

Variable Documentation

◆ NUMBER_OF_3D_MOVES

Int_precision constexpr move_tracker::NUMBER_OF_3D_MOVES = 5
inlinestaticconstexpr

Definition at line 24 of file Move_tracker.hpp.

◆ NUMBER_OF_4D_MOVES

Int_precision constexpr move_tracker::NUMBER_OF_4D_MOVES = 7
inlinestaticconstexpr

Definition at line 25 of file Move_tracker.hpp.