|
.. Copyright (c) 2019, 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.
Actions
=======
.. cpp:namespace:: libsemigroups
This page contains an overview summary of the functionality in
``libsemigroups`` for finding actions of semigroups, or groups, on sets. The
notion of an "action" in the context of ``libsemigroups`` is analogous to the
notion of an orbit of a group.
You are unlikely to want to use :cpp:class:`Action` directly, but rather via
the more convenient aliases :cpp:any:`RightAction` and :cpp:any:`LeftAction`.
To use :cpp:any:`RightAction` and :cpp:any:`LeftAction` with custom types,
actions, and so on, see :cpp:class:`ActionTraits`.
See also :cpp:any:`ImageLeftAction` and :cpp:any:`ImageRightAction`.
.. code-block:: cpp
using namespace libsemigroups;
RightAction<PPerm<16>, PPerm<16>, ImageRightAction<PPerm<16>, PPerm<16>>> o;
o.add_seed(PPerm<16>::identity(16));
o.add_generator(
PPerm<16>({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0},
16));
o.add_generator(
PPerm<16>({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
{1, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
16));
o.add_generator(
PPerm<16>({1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14},
16));
o.add_generator(
PPerm<16>({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14},
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
16));
o.reserve(70000);
o.size(); // returns 65536
The classes in ``libsemigroups`` for actions are:
.. toctree::
:maxdepth: 1
_generated/libsemigroups__action.rst
_generated/libsemigroups__actiontraits
api/left-action
api/right-action
_generated/libsemigroups__side.rst
[ Dauer der Verarbeitung: 0.2 Sekunden
(vorverarbeitet)
]
|