Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
ca-traits.H File Reference

Common typedefs and tag types for the Cellular Automata module. More...

#include <array>
#include <cstddef>
#include <span>
Include dependency graph for ca-traits.H:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Aleph::CA::Cell_Context< Rank >
 Per-cell context handed to rules that need to know "where" and "when" they are firing. More...
 
struct  Aleph::CA::OpenBoundary
 Out-of-range neighbours behave as if the lattice ended. More...
 
struct  Aleph::CA::ToroidalBoundary
 The lattice wraps around on every axis. More...
 
struct  Aleph::CA::ReflectiveBoundary
 Out-of-range coordinates mirror back into the lattice. More...
 
struct  Aleph::CA::ConstantBoundary< T, V >
 Constant-value boundary. More...
 
struct  Aleph::CA::NeumannBoundary
 Zero-gradient (Neumann) boundary. More...
 
struct  Aleph::CA::RowMajor
 Iterate the lattice in row-major (C) order. More...
 
struct  Aleph::CA::ColumnMajor
 Iterate the lattice in column-major (Fortran) order. More...
 
struct  Aleph::CA::Tile< W, H >
 Iterate a 2D lattice in W x H tiles. More...
 

Namespaces

namespace  Aleph
 Main namespace for Aleph-w library functions.
 
namespace  Aleph::CA
 

Typedefs

using Aleph::CA::ca_index_t = std::ptrdiff_t
 Signed coordinate component used by lattices and neighborhoods.
 
using Aleph::CA::ca_size_t = std::size_t
 Unsigned size component used for extents and counts.
 
template<std::size_t N>
using Aleph::CA::Coord_Vec = std::array< ca_index_t, N >
 Default coordinate vector.
 
template<std::size_t N>
using Aleph::CA::Offset_Vec = Coord_Vec< N >
 Default offset vector (aliases Coord_Vec).
 
template<typename T >
using Aleph::CA::Neighbor_View = std::span< const T >
 Read-only view over a contiguous range of neighbour values.
 
using Aleph::CA::PeriodicBoundary = ToroidalBoundary
 Alias for ToroidalBoundary using the HPC "periodic" terminology.
 
template<typename T , T V>
using Aleph::CA::DirichletBoundary = ConstantBoundary< T, V >
 Alias for ConstantBoundary<T, V> using the "Dirichlet" name.
 

Detailed Description

Common typedefs and tag types for the Cellular Automata module.

Lives in namespace Aleph::CA. Provides:

  • Index/coordinate aliases (ca_index_t, ca_size_t).
  • Boundary policy tag types (OpenBoundary, ToroidalBoundary, ReflectiveBoundary, ConstantBoundary<v>).
  • Iteration order tag types (RowMajor, ColumnMajor).

No code here depends on a particular storage or rule layout, so it is the natural shared header for every later phase of the CA module.

Author
Leandro Rabindranath Leon

Definition in file ca-traits.H.