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

PBR
===

.. doxygenclass:: libsemigroups::PBR
   :project: libsemigroups

.. cpp:namespace:: libsemigroups::PBR


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

   * - :cpp:member:`initializer_list_type <template <typename T>  initializer_list_type>`
     - Type of constructor argument.


   * - :cpp:member:`vector_type <template <typename T>  vector_type>`
     - Type of constructor argument.



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

   * - :cpp:member:`operator<<(std::ostream &,PBR const &)`
     - Insertion operator.


   * - :cpp:member:`operator<<(std::ostringstream &,PBR const &)`
     - Insertion operator.



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

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


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


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


   * - :cpp:member:`PBR(initializer_list_type<int32_t>,initializer_list_type<int32_t>)`
     - Construct from adjacencies ``1`` to ``n`` and ``-1`` to ``-n``.


   * - :cpp:member:`PBR(initializer_list_type<uint32_t>)`
     - Construct from adjacencies ``0`` to ``2n - 1``.


   * - :cpp:member:`PBR(size_t)`
     - Construct empty :cpp:any:`PBR`  of given :cpp:member:`degree` .


   * - :cpp:member:`PBR(vector_type<int32_t>,vector_type<int32_t>)`
     - Construct from adjacencies ``1`` to ``n`` and ``-1`` to ``-n``.


   * - :cpp:member:`PBR(vector_type<uint32_t>)`
     - Construct from adjacencies ``0`` to ``2n - 1``.


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


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



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

   * - :cpp:member:`identity() const`
     - Returns the identity :cpp:any:`PBR`  with degree :cpp:member:`degree()` .


   * - :cpp:member:`identity(size_t)`
     - Returns the identity :cpp:any:`PBR`  with specified degree.


   * - :cpp:member:`make(T...) <template <typename... T> PBR make(T...)>`
     - Construct and validate.


   * - :cpp:member:`make(initializer_list_type<int32_t>,initializer_list_type<int32_t>)`
     - Construct and validate.


   * - :cpp:member:`make(initializer_list_type<uint32_t>)`
     - Construct and validate.



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

   * - :cpp:member:`degree() const noexcept`
     - Returns the degree of a :cpp:any:`PBR` .


   * - :cpp:member:`hash_value() const`
     - Returns a hash value for a :cpp:any:`PBR` .


   * - :cpp:member:`operator<(PBR const &) const`
     - Compare.


   * - :cpp:member:`operator==(PBR const &) const`
     - Check equality.


   * - :cpp:member:`operator[](size_t)`
     - Returns a reference to the points adjacent to a given point.


   * - :cpp:member:`operator[](size_t) const`
     - Returns a const reference to the points adjacent to a given point.


   * - :cpp:member:`product_inplace(PBR const &,PBR const &,size_t)`
     - Multiply two :cpp:any:`PBR`  objects and store the product in ``this``.



.. toctree::
   :hidden:

   libsemigroups__pbr__member_types.rst
   libsemigroups__pbr__friends.rst
   libsemigroups__pbr__constructors.rst
   libsemigroups__pbr__static_member_functions.rst
   libsemigroups__pbr__member_functions.rst
