ActionDigraph

template<typename T>
class ActionDigraph : private libsemigroups::ActionDigraphBase

Defined in digraph.hpp.

This class represents the digraph of an action of a semigroup on a set. If the digraph has n nodes, they are represented by the numbers \({0, ..., n - 1}\), and every node has the same number m of out-edges (edges with source that node and range any other node). The number m is referred to as the out-degree of the digraph, or any of its nodes.

See also

Action.

Template Parameters:

T – the type of the nodes in the digraph, must be an unsigned integer type.

Subclassed by libsemigroups::DigraphWithSources< T >

Member types

adjacency_matrix_type

The type of the adjacency matrix.

algorithm

An enum for specifying the algorithm to the functions number_of_paths() .

const_iterator_edges

const_iterator_nodes

The type of an iterator pointing to the nodes of a digraph.

const_iterator_scc

const_iterator_scc_roots

const_iterator_sccs

const_pilo_iterator

Return type of cbegin_pilo and cend_pilo .

const_pislo_iterator

Return type of cbegin_pislo and cend_pislo .

const_pstislo_iterator

Return type of cbegin_pstislo and cend_pstislo .

const_reverse_iterator_nodes

The type of a reverse iterator pointing to the nodes of a digraph.

label_type

The type of edge labels in a digraph.

node_type

The type of nodes in a digraph.

scc_index_type

The type of an index in a strongly connected component of a digraph.

size_type

Unsigned integer type.

Constructors

ActionDigraph(ActionDigraph const&)

Default copy constructor.

ActionDigraph(ActionDigraph&&)

Default move constructor.

ActionDigraph(T, T)

operator=(ActionDigraph const&)

Default copy assignment constructor.

operator=(ActionDigraph&&)

Default move assignment constructor.

Static member functions

random(T, T, T, std::mt19937)

random(T, T, std::mt19937)

random_acyclic(T, T, T, std::mt19937)

Initialization

add_edge(node_type, node_type, label_type)

add_edge_nc(node_type, node_type, label_type)

add_nodes(size_t)

add_to_out_degree(size_t)

init(T,T)

remove_edge_nc(node_type, label_type)

reserve(T, T) const

restrict(size_t)

swap_edges_nc(node_type, node_type, label_type)

Operators

operator==(ActionDigraph const &) const

Nodes, edges, neighbors

cbegin_edges(node_type) const

cbegin_edges_nc(node_type) const noexcept

cbegin_nodes() const noexcept

cend_edges(node_type) const

cend_edges_nc(node_type) const noexcept

cend_nodes() const noexcept

crbegin_nodes() const noexcept

crend_nodes() const noexcept

neighbor(node_type, label_type) const

next_neighbor(node_type, label_type) const

number_of_edges() const

number_of_edges(node_type) const

number_of_nodes() const noexcept

out_degree() const noexcept

remove_all_edges()

table() const noexcept

unsafe_neighbor(node_type, label_type) const

unsafe_next_neighbor(node_type, label_type) const

validate() const noexcept

Strongly connected components

cbegin_scc(scc_index_type) const

cbegin_scc_roots() const

cbegin_sccs() const

cend_scc(scc_index_type) const

cend_scc_roots() const

cend_sccs() const

number_of_scc() const

root_of_scc(node_type) const

scc_id(node_type) const

Subdigraphs

induced_subdigraph(node_type,node_type)

reverse_spanning_forest() const

spanning_forest() const

Path iterators

cbegin_panilo(node_type, size_t, size_t) const

cbegin_panislo(node_type, size_t, size_t) const

cbegin_pilo(node_type, size_t, size_t) const

cbegin_pislo(node_type, size_t, size_t) const

cbegin_pstilo(node_type, node_type, size_t, size_t) const

cbegin_pstislo(node_type, node_type, size_t, size_t) const

cend_panilo() const

cend_panislo() const

cend_pilo() const

cend_pislo() const

cend_pstilo() const

cend_pstislo() const

Counting paths

number_of_paths(node_type) const

number_of_paths(node_type, node_type, size_t, size_t, algorithm) const

number_of_paths(node_type, size_t, size_t, algorithm) const

number_of_paths_algorithm(node_type) const noexcept

number_of_paths_algorithm(node_type, node_type, size_t, size_t) const

number_of_paths_algorithm(node_type, size_t, size_t) const