.. 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.

Stephen
=======

.. doxygenclass:: libsemigroups::Stephen
   :project: libsemigroups

.. cpp:namespace:: libsemigroups::Stephen


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

   * - :cpp:member:`digraph_type`
     - The return type of the function :cpp:member:`word_graph` .


   * - :cpp:member:`node_type`
     - The type of the nodes of a :cpp:member:`digraph_type` .



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

   * - :cpp:member:`Stephen() <Stephen::Stephen()>`
     - Default constructor.


   * - :cpp:member:`Stephen(P &&) <template <typename P, typename = std::enable_if_t<                  std::is_base_of<PresentationBase, std::decay_t<P>>::value>>  Stephen(P &&)>`
     - Construct from a presentation.


   * - :cpp:member:`Stephen(Stephen &&) = default`
     - Default move constructor.


   * - :cpp:member:`Stephen(Stephen const &) = default`
     - Default copy constructor.


   * - :cpp:member:`operator=(Stephen &&) = default`
     - Default move assignment operator.


   * - :cpp:member:`operator=(Stephen const &) = default`
     - Default copy assignment operator.



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

   * - :cpp:member:`init(P &&) <template <typename P> Stephen & init(P &&)>`
     - Initialize from a presentation.


   * - :cpp:member:`set_word(word_type &&)`
     - Set the word.


   * - :cpp:member:`set_word(word_type const &)`
     - Set the word.



Defining data
-------------
.. list-table::
   :widths: 50 50
   :header-rows: 0

   * - :cpp:member:`presentation() const noexcept`
     - The input presentation.


   * - :cpp:member:`word() const noexcept`
     - The word.



Results of the algorithm
------------------------
.. list-table::
   :widths: 50 50
   :header-rows: 0

   * - :cpp:member:`accept_state()`
     - The accept state of the word graph.


   * - :cpp:member:`word_graph() const noexcept`
     - The word graph.



Member functions inherited from Runner
--------------------------------------
.. list-table::
   :widths: 50 50
   :header-rows: 0

   * - :cpp:member:`dead() const noexcept`
     - Check if the runner is dead.


   * - :cpp:member:`finished() const`
     - Check if :cpp:member:`run`  has been run to completion or not.


   * - :cpp:member:`kill() noexcept`
     - Stop :cpp:member:`run`  from running (thread-safe).


   * - :cpp:member:`report() const`
     - Check if it is time to report.


   * - :cpp:member:`report_every() const noexcept`
     - Get the minimum elapsed time between reports.


   * - :cpp:member:`report_every(TIntType) <template <typename TIntType> void report_every(TIntType)>`
     - Set the minimum elapsed time between reports.


   * - :cpp:member:`report_every(std::chrono::nanoseconds)`
     - Set the minimum elapsed time between reports.


   * - :cpp:member:`report_why_we_stopped() const`
     - Report why :cpp:member:`run`  stopped.


   * - :cpp:member:`run()`
     - Run until :cpp:member:`finished` .


   * - :cpp:member:`run_for(TIntType) <template <typename TIntType> void run_for(TIntType)>`
     - Run for a specified amount of time.


   * - :cpp:member:`run_for(std::chrono::nanoseconds)`
     - Run for a specified amount of time.


   * - :cpp:member:`run_until(T&&) <template <typename T> void run_until(T&&)>`
     - Run until a nullary predicate returns ``true`` or :cpp:member:`finished` .


   * - :cpp:member:`run_until(bool(*)())`
     - Run until a nullary predicate returns ``true`` or :cpp:member:`finished` .


   * - :cpp:member:`running() const noexcept`
     - Check if currently running.


   * - :cpp:member:`running_for() const noexcept`
     - Check if the runner is currently running for a particular length of time.


   * - :cpp:member:`running_until() const noexcept`
     - Check if the runner is currently running until a nullary predicate returns ``true``.


   * - :cpp:member:`started() const`
     - Check if :cpp:member:`run`  has been called at least once before.


   * - :cpp:member:`stopped() const`
     - Check if the runner is stopped.


   * - :cpp:member:`stopped_by_predicate() const`
     - Check if the runner was, or should, stop because of the argument for :cpp:member:`run_until` .


   * - :cpp:member:`timed_out() const`
     - Check if the amount of time passed to :cpp:member:`run_for`  has elapsed.



.. toctree::
   :hidden:

   libsemigroups__stephen__member_types.rst
   libsemigroups__stephen__constructor.rst
   libsemigroups__stephen__initialization.rst
   libsemigroups__stephen__defining_data.rst
   libsemigroups__stephen__results_of_the_algorithm.rst
   libsemigroups__stephen__member_functions_inherited_from_runner.rst
