Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
Aleph::CA::GraphRuleLike Concept Reference

Concept satisfied by graph rules. More...

#include <tpl_ca_graph_automaton.H>

Concept definition

template<typename R, typename T>
and (requires(const R &r, const T &s, Neighbor_View<T> v) {
{ r(s, v) } -> std::convertible_to<T>;
}
or requires(const R &r, const T &s, Neighbor_View<T> v,
const Cell_Context<1> &ctx) {
{ r(s, v, ctx) } -> std::convertible_to<T>;
})
A type usable as the value stored inside a cell.
Concept satisfied by graph rules.
size_t blossom_maximum_cardinality_matching(const GT &g, DynDlist< typename GT::Arc * > &matching, SA sa=SA())
Alias of compute_maximum_cardinality_general_matching().
Definition Blossom.H:466
@ R
Recovered (and immune).
and
Check uniqueness with explicit hash + equality functors.
std::decay_t< typename HeadC::Item_Type > T
Definition ah-zip.H:105
gsl_rng * r

Detailed Description

Concept satisfied by graph rules.

A graph rule consumes the current state of a node and a span over the states of its neighbours, and produces the next state. The canonical signature is (state, Neighbor_View<state>) -> state, so any rule that already satisfies RuleLike for a rectangular lattice is reusable for graph CAs (e.g. Outer_Totalistic_Rule).

Phase 8 introduces stochastic rules that need a per-cell context to derive deterministic pseudo-random numbers. Such rules expose the alternative (state, Neighbor_View<state>, Cell_Context<1>) -> state signature; the engine routes them through apply_rule(). The graph is treated as a rank-1 lattice whose only coordinate component is the node id.

Definition at line 294 of file tpl_ca_graph_automaton.H.