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

PPerm
=====

.. doxygenclass:: libsemigroups::PPerm
   :project: libsemigroups

.. cpp:namespace:: libsemigroups::PPerm


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

   * - :cpp:member:`container_type`
     - Type of the underlying container.


   * - :cpp:member:`value_type`
     - Type of the image values.



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

   * - :cpp:member:`PPerm(std::initializer_list<value_type>, std::initializer_list<value_type>, size_t)`
     - Construct from domain, range, and degree.


   * - :cpp:member:`PPerm(std::vector<value_type> const&, std::vector<value_type> const&, size_t)`
     - Construct from domain, range, and degree.



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

   * - :cpp:member:`identity() const`
     - Returns the identity partial perm on degree() points.


   * - :cpp:member:`identity(size_t)`
     - Returns the identity partial perm on the given number of points.


   * - :cpp:member:`make(T&&) <template <typename T> PPerm make(T&&)>`
     - Construct from image list and validate.


   * - :cpp:member:`make(std::initializer_list<value_type>&&)`
     - Construct from image list and validate.


   * - :cpp:member:`make(std::vector<value_type> const&, std::vector<value_type> const&, size_t const)`
     - Construct from domain, range, and degree, and validate.



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

   * - :cpp:member:`inverse() const`
     - Returns the inverse.


   * - :cpp:member:`inverse(PPerm&) const`
     - Replace contents of a partial perm with the inverse of another.


   * - :cpp:member:`left_one() const`
     - Returns the left one of this.


   * - :cpp:member:`product_inplace(PPerm const&, PPerm const&)`
     - Multiply two partial perms and store the product in ``this``.


   * - :cpp:member:`right_one() const`
     - Returns the right one of this.



.. toctree::
   :hidden:

   libsemigroups__pperm__member_types.rst
   libsemigroups__pperm__constructors.rst
   libsemigroups__pperm__static_member_functions.rst
   libsemigroups__pperm__member_functions.rst
