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

Sims1
=====

.. doxygenclass:: libsemigroups::Sims1
   :project: libsemigroups

.. cpp:namespace:: libsemigroups::Sims1


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

   * - :cpp:member:`digraph_type`
     - The type of the associated :cpp:any:`ActionDigraph`  objects.


   * - :cpp:member:`iterator`
     - The return type of cbegin and cend.


   * - :cpp:member:`letter_type`
     - Type for letters in the underlying presentation.


   * - :cpp:member:`node_type`
     - Type for the nodes in the associated :cpp:any:`ActionDigraph`  objects.


   * - :cpp:member:`size_type`
     - The size_type of the associated :cpp:any:`ActionDigraph`  objects.



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

   * - :cpp:member:`Sims1() = delete`
     - Default constructor - deleted!


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


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


   * - :cpp:member:`Sims1(congruence_kind)`
     - Construct from :cpp:member:`congruence_kind` .


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


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



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

   * - :cpp:member:`extra() const noexcept`
     - Returns a const reference to the additional defining pairs.


   * - :cpp:member:`extra(P const&)`
     - Set the extra rules.


   * - :cpp:member:`long_rule_length(size_t)`
     - Define the long rule length.


   * - :cpp:member:`long_rules() const noexcept`
     - Returns the current long rules.


   * - :cpp:member:`long_rules(P const&)`
     - Set the long rules.


   * - :cpp:member:`number_of_threads() const noexcept`
     - Returns the current number of threads.


   * - :cpp:member:`number_of_threads(size_t)`
     - Set the number of threads.


   * - :cpp:member:`report_interval() const noexcept`
     - Returns the current report interval.


   * - :cpp:member:`report_interval(size_t) noexcept`
     - Set the report interval.


   * - :cpp:member:`settings() const noexcept`
     - Returns the settings object of *this.


   * - :cpp:member:`settings(Sims1Settings const&)`
     - Copy the settings from ``that`` into ``this``.


   * - :cpp:member:`short_rules() const noexcept`
     - Returns a const reference to the current short rules.


   * - :cpp:member:`short_rules(P const&)`
     - Set the short rules.


   * - :cpp:member:`split_at(size_t)`
     - Split the rules in :cpp:member:`short_rules`  and :cpp:member:`long_rules` .


   * - :cpp:member:`stats() const noexcept`
     - Returns a const reference to the current stats object.



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

   * - :cpp:member:`cbegin(size_type) const`
     - Returns a forward iterator pointing at the first congruence.


   * - :cpp:member:`cend(size_type) const`
     - Returns a forward iterator pointing one beyond the last congruence.


   * - :cpp:member:`find_if(size_type,std::function<bool(digraph_type const &)>) const`
     - Apply the function ``pred`` to every one-sided congruence with at most ``n`` classes, until it returns ``true``.


   * - :cpp:member:`for_each(size_type,std::function<void(digraph_type const &)>) const`
     - Apply the function ``pred`` to every one-sided congruence with at most ``n`` classes.


   * - :cpp:member:`number_of_congruences(size_type) const`
     - Returns the number of one-sided congruences with up to a given number of classes.



.. toctree::
   :hidden:

   libsemigroups__sims1__member_types.rst
   libsemigroups__sims1__constructors.rst
   libsemigroups__sims1__settings.rst
   libsemigroups__sims1__member_functions.rst
