|
.. Copyright (c) 2019-2022, 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.
Semigroups
==========
.. cpp:namespace:: libsemigroups
``libsemigroups`` implements several algorithms for computing the structure of
a finite semigroup or monoid. The main implementations are of the Froidure-Pin,
Konieczny, and Schreier-Sims (for permutation groups) algorithms; see the links
below for further details.
The implementations of these algorithms are generic, and can be easily adapted
for user-defined types. In other words, it is possible to directly apply these
algorithms to any type that satisfy some minimal prerequisites, via traits
classes and/or the adapters described here.
Many of the classes for semigroups in ``libsemigroups`` can be used
"interactively", in the sense that they can be run for a particular amount of
time, or until some condition is met; for further details see, for example,
:cpp:any:`void Runner::run_for(std::chrono::nanoseconds)` and
:cpp:func:`Runner::run_until`.
The classes for semigroups and monoids in ``libsemigroups`` are:
.. toctree::
:maxdepth: 1
_generated/libsemigroups__froidurepinbase
_generated/libsemigroups__froidurepin
api/make-froidure-pin
_generated/libsemigroups__froidurepintraits
konieczny
_generated/libsemigroups__schreiersims
_generated/libsemigroups__schreiersimstraits
api/schreiersims-helper
[ Dauer der Verarbeitung: 0.4 Sekunden
(vorverarbeitet)
]
|