libsemigroups_pybind11 banner

What is libsemigroups?

Before explaining what libsmigroups_pybind11 is, it is first necessary to explain libsemigroups. libsemigroups is a C++17 library containing implementations of several algorithms for computing finite, and finitely presented, semigroups and monoids. The main algorithms implemented in libsemigroups are:

libsemigroups is partly based on Algorithms for computing finite semigroups, Expository Slides, and Semigroupe 2.01 by Jean-Eric Pin.

What is libsemigroups_pybind11?

libsemigroups_pybind11 is a package for Python 3.9+ exposing much (but not all) of the functionality of libsemigroups. It is built with the help of the excellent library pybind11, for which we are very grateful. A more detailed description of the structure of this package, along with some associated quirks, is described on the exceptions page.

The development version of libsemigroups_pybind11 is available on github, and some related projects are here.

How to install libsemigroups_pybind11

To see the different ways libsemigroups_pybind11 can be installed, see the installation page.

Issues

If you find any problems with libsemigroups_pybind11, or have any suggestions for features that you’d like to see, please use the issue tracker.

Acknowledgements

In addition to libsemigroups, there are several excellent projects that are utilised in the development of libsemigroups_pybind11, specifically:

We would like to thank the authors and contributors of these projects!