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 out-edges (edges with source that node and range any other node). The numberm
is referred to as the out-degree 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 out-edges 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 out-degree. |
|
Construct a random digraph from number of nodes and out-degree. |
|
Construct a random acyclic digraph from number of nodes, edges, and out-degree. |
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 out-degree. |
|
Re-initialize 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 out-degree. |
|
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 one-past-the-last neighbor of a node. |
|
Returns a random access iterator pointing one-past-the-last neighbor of a node. |
|
Returns a random access iterator pointing one-past-the-last node of the digraph. |
|
Returns a random access iterator pointing at the last node of the digraph. |
|
Returns a random access iterator pointing one-past-the-first 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 out-degree. |
|
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 id-number. |
|
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 id-number. |
|
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 id-number 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 |