.. Copyright (c) 2019-22, J. D. Mitchell

   Distributed under the terms of the GPL license version 3.

   The full license is in the file LICENSE, distributed with this software.

   This file was auto-generated by docs/generate_from_yml.py, do not edit.

ActionDigraph
=============

.. doxygenclass:: libsemigroups::ActionDigraph
   :project: libsemigroups

.. cpp:namespace:: libsemigroups::ActionDigraph


Member types
------------
.. list-table::
   :widths: 50 50
   :header-rows: 0

   * - :cpp:member:`adjacency_matrix_type`
     - None
   * - :cpp:member:`algorithm`
     - None
   * - :cpp:member:`const_iterator_edges`
     - None
   * - :cpp:member:`const_iterator_nodes`
     - None
   * - :cpp:member:`const_iterator_scc`
     - None
   * - :cpp:member:`const_iterator_scc_roots`
     - None
   * - :cpp:member:`const_iterator_sccs`
     - None
   * - :cpp:member:`const_pilo_iterator`
     - None
   * - :cpp:member:`const_pislo_iterator`
     - None
   * - :cpp:member:`const_pstislo_iterator`
     - None
   * - :cpp:member:`const_reverse_iterator_nodes`
     - None
   * - :cpp:member:`label_type`
     - None
   * - :cpp:member:`node_type`
     - None
   * - :cpp:member:`scc_index_type`
     - None
   * - :cpp:member:`size_type`
     - None

Constructors
------------
.. list-table::
   :widths: 50 50
   :header-rows: 0

   * - :cpp:member:`ActionDigraph(ActionDigraph const&)`
     - None
   * - :cpp:member:`ActionDigraph(ActionDigraph&&)`
     - None
   * - :cpp:member:`ActionDigraph(T, T)`
     - None
   * - :cpp:member:`operator=(ActionDigraph const&)`
     - None
   * - :cpp:member:`operator=(ActionDigraph&&)`
     - None

Static member functions
-----------------------
.. list-table::
   :widths: 50 50
   :header-rows: 0

   * - :cpp:member:`random(T, T, T, std::mt19937)`
     - None
   * - :cpp:member:`random(T, T, std::mt19937)`
     - None
   * - :cpp:member:`random_acyclic(T, T, T, std::mt19937)`
     - None

Initialization
--------------
.. list-table::
   :widths: 50 50
   :header-rows: 0

   * - :cpp:member:`add_edge(node_type, node_type, label_type)`
     - None
   * - :cpp:member:`add_edge_nc(node_type, node_type, label_type)`
     - None
   * - :cpp:member:`add_nodes(size_t)`
     - None
   * - :cpp:member:`add_to_out_degree(size_t)`
     - None
   * - :cpp:member:`init(T,T)`
     - None
   * - :cpp:member:`remove_edge_nc(node_type, label_type)`
     - None
   * - :cpp:member:`reserve(T, T) const`
     - None
   * - :cpp:member:`restrict(size_t)`
     - None
   * - :cpp:member:`swap_edges_nc(node_type, node_type, label_type)`
     - None

Operators
---------
.. list-table::
   :widths: 50 50
   :header-rows: 0

   * - :cpp:member:`operator==(ActionDigraph const &) const`
     - None

Nodes, edges, neighbors
-----------------------
.. list-table::
   :widths: 50 50
   :header-rows: 0

   * - :cpp:member:`cbegin_edges(node_type) const`
     - None
   * - :cpp:member:`cbegin_edges_nc(node_type) const noexcept`
     - None
   * - :cpp:member:`cbegin_nodes() const noexcept`
     - None
   * - :cpp:member:`cend_edges(node_type) const`
     - None
   * - :cpp:member:`cend_edges_nc(node_type) const noexcept`
     - None
   * - :cpp:member:`cend_nodes() const noexcept`
     - None
   * - :cpp:member:`crbegin_nodes() const noexcept`
     - None
   * - :cpp:member:`crend_nodes() const noexcept`
     - None
   * - :cpp:member:`neighbor(node_type, label_type) const`
     - None
   * - :cpp:member:`next_neighbor(node_type, label_type) const`
     - None
   * - :cpp:member:`number_of_edges() const`
     - None
   * - :cpp:member:`number_of_edges(node_type) const`
     - None
   * - :cpp:member:`number_of_nodes() const noexcept`
     - None
   * - :cpp:member:`out_degree() const noexcept`
     - None
   * - :cpp:member:`remove_all_edges()`
     - None
   * - :cpp:member:`table() const noexcept`
     - None
   * - :cpp:member:`unsafe_neighbor(node_type, label_type) const`
     - None
   * - :cpp:member:`unsafe_next_neighbor(node_type, label_type) const`
     - None
   * - :cpp:member:`validate() const noexcept`
     - None

Strongly connected components
-----------------------------
.. list-table::
   :widths: 50 50
   :header-rows: 0

   * - :cpp:member:`cbegin_scc(scc_index_type) const`
     - None
   * - :cpp:member:`cbegin_scc_roots() const`
     - None
   * - :cpp:member:`cbegin_sccs() const`
     - None
   * - :cpp:member:`cend_scc(scc_index_type) const`
     - None
   * - :cpp:member:`cend_scc_roots() const`
     - None
   * - :cpp:member:`cend_sccs() const`
     - None
   * - :cpp:member:`number_of_scc() const`
     - None
   * - :cpp:member:`root_of_scc(node_type) const`
     - None
   * - :cpp:member:`scc_id(node_type) const`
     - None

Subdigraphs
-----------
.. list-table::
   :widths: 50 50
   :header-rows: 0

   * - :cpp:member:`induced_subdigraph(node_type,node_type)`
     - None
   * - :cpp:member:`reverse_spanning_forest() const`
     - None
   * - :cpp:member:`spanning_forest() const`
     - None

Path iterators
--------------
.. list-table::
   :widths: 50 50
   :header-rows: 0

   * - :cpp:member:`cbegin_panilo(node_type, size_t, size_t) const`
     - None
   * - :cpp:member:`cbegin_panislo(node_type, size_t, size_t) const`
     - None
   * - :cpp:member:`cbegin_pilo(node_type, size_t, size_t) const`
     - None
   * - :cpp:member:`cbegin_pislo(node_type, size_t, size_t) const`
     - None
   * - :cpp:member:`cbegin_pstilo(node_type, node_type, size_t, size_t) const`
     - None
   * - :cpp:member:`cbegin_pstislo(node_type, node_type, size_t, size_t) const`
     - None
   * - :cpp:member:`cend_panilo() const`
     - None
   * - :cpp:member:`cend_panislo() const`
     - None
   * - :cpp:member:`cend_pilo() const`
     - None
   * - :cpp:member:`cend_pislo() const`
     - None
   * - :cpp:member:`cend_pstilo() const`
     - None
   * - :cpp:member:`cend_pstislo() const`
     - None

Counting paths
--------------
.. list-table::
   :widths: 50 50
   :header-rows: 0

   * - :cpp:member:`number_of_paths(node_type) const`
     - None
   * - :cpp:member:`number_of_paths(node_type, node_type, size_t, size_t, algorithm) const`
     - None
   * - :cpp:member:`number_of_paths(node_type, size_t, size_t, algorithm) const`
     - None
   * - :cpp:member:`number_of_paths_algorithm(node_type) const noexcept`
     - None
   * - :cpp:member:`number_of_paths_algorithm(node_type, node_type, size_t, size_t) const`
     - None
   * - :cpp:member:`number_of_paths_algorithm(node_type, size_t, size_t) const`
     - None

.. toctree::
   :hidden:

   libsemigroups__actiondigraph__member_types.rst
   libsemigroups__actiondigraph__constructors.rst
   libsemigroups__actiondigraph__static_member_functions.rst
   libsemigroups__actiondigraph__initialization.rst
   libsemigroups__actiondigraph__operators.rst
   libsemigroups__actiondigraph__nodes__edges__neighbors.rst
   libsemigroups__actiondigraph__strongly_connected_components.rst
   libsemigroups__actiondigraph__subdigraphs.rst
   libsemigroups__actiondigraph__path_iterators.rst
   libsemigroups__actiondigraph__counting_paths.rst
