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 numberm
of outedges (edges with source that node and range any other node). The numberm
is referred to as the outdegree of the digraph, or any of its nodes.See also
 Template Parameters
T – the type of the nodes in the digraph, must be an unsigned integer type.
Subclassed by libsemigroups::DigraphWithSources< coset_type >, libsemigroups::DigraphWithSources< N >, libsemigroups::DigraphWithSources< T >
Member types¶
The type of the adjacency matrix. 

An enum for specifying the algorithm to the functions 

The type of an iterator pointing to the outedges of a node in a digraph. 

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

The type of an iterator pointing to the nodes in a strongly connected component of a digraph. 

The type of an iterator pointing to the roots of a strongly connected components of a digraph. 

The type of an iterator pointing to the strongly connected components of a digraph. 

Return type of 

Return type of 

Return type of 

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

The type of edge labels in a digraph. 

The type of nodes in a digraph. 

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

Unsigned integer type. 
Constructors¶
Default copy constructor. 

Default move constructor. 

Construct from number of nodes and out degree. 

Default copy assignment constructor. 

Default move assignment constructor. 
Static member functions¶
Construct a random digraph from number of nodes, edges, and outdegree. 

Construct a random digraph from number of nodes and outdegree. 

Construct a random acyclic digraph from number of nodes, edges, and outdegree. 
Initialization¶
Add an edge from one node to another with a given label. 

Add an edge from one node to another with a given label. 

Adds a number of new nodes. 

Adds to the outdegree. 

Reinitialize the digraph to have 

Remove an edge from a node with a given label. 

Ensures that the digraph has capacity for a given number of nodes, and outdegree. 

Restrict the digraph to its first 

Swaps the edge with specified label from one node with another. 
Operators¶
Check if two action digraphs are equal. 
Nodes, edges, neighbors¶
Returns a random access iterator pointing at the first neighbor of a node. 

Returns a random access iterator pointing at the first neighbor of a node. 

Returns a random access iterator pointing at the first node of the digraph. 

Returns a random access iterator pointing onepastthelast neighbor of a node. 

Returns a random access iterator pointing onepastthelast neighbor of a node. 

Returns a random access iterator pointing onepastthelast node of the digraph. 

Returns a random access iterator pointing at the last node of the digraph. 

Returns a random access iterator pointing onepastthefirst node of the digraph. 

Get the range of the edge with given source node and label. 

Get the next neighbor of a node that doesn’t equal 

Returns the number of edges. 

Returns the number of edges with given source node. 

Returns the number of nodes. 

Returns the outdegree. 

Remove all of the edges in the digraph. 

Returns a const reference to the underlying array. 

Get the range of the edge with given source node and label. 

Get the next neighbor of a node that doesn’t equal 

Check every node has exactly 
Strongly connected components¶
Returns an iterator pointing to the first node in the scc with the specified idnumber. 

Returns an iterator pointing to the root of the first scc. 

Returns an iterator pointing to the vector of nodes in the first scc. 

Returns an iterator pointing one past the last node in the scc with the specified idnumber. 

Returns an iterator pointing one past the root of the last scc. 

Returns an iterator pointing one past the last vector of nodes in the final scc. 

Returns the number of strongly connected components. 

Returns the root of a strongly connected components containing a given node. 

Returns the idnumber of the strongly connected component of a node. 
Subdigraphs¶
Returns a reverse spanning forest of the strongly connected components. 

Returns a spanning forest of the strongly connected components. 
Path iterators¶
Returns an iterator for PANILO (Path And Node In Lex Order). 

Returns an iterator for PANISLO (Path And Node In Short Lex Order). 

Returns an iterator for PILO (Path In Lex Order). 

Returns an iterator for PISLO (Path In Short Lex Order). 

Returns an iterator for PSTILO (Path Source Target In Lex Order). 

Returns an iterator for PSTISLO (Path Source Target In Short Lex Order). 

Returns an iterator for PANILO (Path And Node In Lex Order). 

Returns an iterator for PANISLO (Path And Node In Short Lex Order). 

Returns an iterator for PILO (Path In Lex Order). 

Returns an iterator for PISLO (Path In Short Lex Order). 

Returns an iterator for PSTILO (Path Source Target In Lex Order). 

Returns an iterator for PSTISLO (Path Source Target In Short Lex Order). 
Counting paths¶
Returns the number of paths from a source node. 


Returns the number of paths between a pair of nodes with length in a given range. 
Returns the number of paths starting at a given node with length in a given range. 

Returns the 


Returns the 
Returns the 