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

Konieczny
=========

.. doxygenclass:: libsemigroups::Konieczny
   :project: libsemigroups

.. cpp:namespace:: libsemigroups::Konieczny


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

   * - :cpp:member:`D_class_index_type`
     - Type of indices of :math:`\mathscr{D}` -classes.


   * - :cpp:member:`const_d_class_iterator`
     - Return type of :cpp:member:`cbegin_D_classes`  and :cpp:member:`cend_D_classes` .


   * - :cpp:member:`const_element_type`
     - The type of const elements.


   * - :cpp:member:`const_iterator`
     - A type for const iterators through elements.


   * - :cpp:member:`const_reference`
     - Type of element const references.


   * - :cpp:member:`const_regular_d_class_iterator`
     - Return type of :cpp:member:`cbegin_regular_D_classes`  and :cpp:member:`cend_regular_D_classes` .


   * - :cpp:member:`element_type`
     - The type of elements.


   * - :cpp:member:`lambda_orb_type`
     - The type of the orbit of the lambda values.


   * - :cpp:member:`lambda_value_type`
     - The type of lambda values.


   * - :cpp:member:`rho_orb_type`
     - The type of the orbit of the rho values.


   * - :cpp:member:`rho_value_type`
     - The type of rho values.



Adapter member types
--------------------
.. list-table::
   :widths: 50 50
   :header-rows: 0

   * - :cpp:member:`Degree`
     - Adapter for the degree of an element.


   * - :cpp:member:`EqualTo`
     - Adapter for testing equality.


   * - :cpp:member:`Lambda`
     - Adapter for the action on :cpp:any:`LambdaValue`  's.


   * - :cpp:member:`Less`
     - Adapter for comparisons.


   * - :cpp:member:`One`
     - Adapter for the identity element of the given type.


   * - :cpp:member:`Product`
     - Adapter for the product of two elements.


   * - :cpp:member:`Rank`
     - Adapter for calculating ranks.


   * - :cpp:member:`Rho`
     - Adapter for the action on :cpp:any:`RhoValue`  's.


   * - :cpp:member:`Swap`
     - Adapter for swapping.



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

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


   * - :cpp:member:`Konieczny(std::vector<element_type> const&)`
     - Construct from generators.



Deleted constructors
--------------------
.. list-table::
   :widths: 50 50
   :header-rows: 0

   * - :cpp:member:`Konieczny(Konieczny &&) = delete`
     - Deleted.


   * - :cpp:member:`Konieczny(Konieczny const &) = delete`
     - Deleted.


   * - :cpp:member:`operator=(Konieczny &&) = delete`
     - Deleted.


   * - :cpp:member:`operator=(Konieczny const &) = delete`
     - Deleted.



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

   * - :cpp:member:`add_generator(const_reference)`
     - Add a copy of an element to the generators.


   * - :cpp:member:`add_generators(T const&) <template <typename T> void add_generators(T const&)>`
     - Add collection of generators from container.


   * - :cpp:member:`add_generators(T const&, T const&) <template <typename T> void add_generators(T const&, T const&)>`
     - Add collection of generators from iterators.


   * - :cpp:member:`add_generators(std::initializer_list<const_element_type>)`
     - Add collection of generators from initializer list.



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

   * - :cpp:member:`contains(const_reference)`
     - Test membership of an element.


   * - :cpp:member:`is_regular_element(const_reference)`
     - Test regularity of an element.



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

   * - :cpp:member:`D_class_of_element(const_reference)`
     - Returns the :math:`\mathscr{D}` -class containing an element.


   * - :cpp:member:`number_of_D_classes()`
     - Returns the number of :math:`\mathscr{D}` -classes.


   * - :cpp:member:`number_of_H_classes()`
     - Returns the number of :math:`\mathscr{H}` -classes.


   * - :cpp:member:`number_of_L_classes()`
     - Returns the number of :math:`\mathscr{L}` -classes.


   * - :cpp:member:`number_of_R_classes()`
     - Returns the number of :math:`\mathscr{R}` -classes.


   * - :cpp:member:`number_of_idempotents()`
     - Returns the number of idempotents.


   * - :cpp:member:`number_of_regular_D_classes()`
     - Returns the number of regular :math:`\mathscr{D}` -classes.


   * - :cpp:member:`number_of_regular_L_classes()`
     - Returns the number of regular :math:`\mathscr{L}` -classes.


   * - :cpp:member:`number_of_regular_R_classes()`
     - Returns the number of regular :math:`\mathscr{R}` -classes.


   * - :cpp:member:`number_of_regular_elements()`
     - Returns the number of regular elements.


   * - :cpp:member:`size()`
     - Returns the size.



Const Attributes
----------------
.. list-table::
   :widths: 50 50
   :header-rows: 0

   * - :cpp:member:`current_number_of_D_classes() const`
     - Returns the current number of :math:`\mathscr{D}` -classes.


   * - :cpp:member:`current_number_of_H_classes() const`
     - Returns the current number of :math:`\mathscr{H}` -classes.


   * - :cpp:member:`current_number_of_L_classes() const`
     - Returns the current number of :math:`\mathscr{L}` -classes.


   * - :cpp:member:`current_number_of_R_classes() const`
     - Returns the current number of regular :math:`\mathscr{R}` -classes.


   * - :cpp:member:`current_number_of_idempotents() const`
     - Returns the current number of idempotents.


   * - :cpp:member:`current_number_of_regular_D_classes() const`
     - Returns the current number of regular :math:`\mathscr{D}` -classes.


   * - :cpp:member:`current_number_of_regular_L_classes() const`
     - Returns the current number of regular :math:`\mathscr{L}` -classes.


   * - :cpp:member:`current_number_of_regular_R_classes() const`
     - Returns the current number of regular :math:`\mathscr{R}` -classes.


   * - :cpp:member:`current_number_of_regular_elements() const`
     - Returns the current number of regular elements.


   * - :cpp:member:`current_size() const`
     - Returns the current size.


   * - :cpp:member:`degree() const noexcept`
     - Returns the degree of elements.


   * - :cpp:member:`generator(size_t) const`
     - Returns a const reference to the generator given by an index.


   * - :cpp:member:`number_of_generators() const noexcept`
     - Returns the number of generators.



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

   * - :cpp:member:`cbegin_D_classes() const`
     - Returns a const iterator referring to a pointer to the first :math:`\mathscr{D}` -class.


   * - :cpp:member:`cbegin_generators() const noexcept`
     - Returns a const iterator pointing to the first generator.


   * - :cpp:member:`cbegin_rdc() const noexcept`
     - Shorter form of :cpp:member:`cbegin_regular_D_classes` .


   * - :cpp:member:`cbegin_regular_D_classes() const`
     - Returns a const iterator referring to a pointer to the first regular :math:`\mathscr{D}` -class.


   * - :cpp:member:`cend_D_classes() const noexcept`
     - Returns a const iterator referring to past the pointer to the last :math:`\mathscr{D}` -class.


   * - :cpp:member:`cend_generators() const noexcept`
     - Returns a const iterator pointing to one past the last generator.


   * - :cpp:member:`cend_rdc() const`
     - Shorter form of :cpp:member:`cend_regular_D_classes` .


   * - :cpp:member:`cend_regular_D_classes() const noexcept`
     - Returns a const iterator referring to past the pointer to the last regular :math:`\mathscr{D}` -class.



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__konieczny__member_types.rst
   libsemigroups__konieczny__adapter_member_types.rst
   libsemigroups__konieczny__constructors.rst
   libsemigroups__konieczny__deleted_constructors.rst
   libsemigroups__konieczny__initialisation.rst
   libsemigroups__konieczny__elements.rst
   libsemigroups__konieczny__attributes.rst
   libsemigroups__konieczny__const_attributes.rst
   libsemigroups__konieczny__iterators.rst
   libsemigroups__konieczny__member_functions_inherited_from_runner.rst
