Skip to content

libsemigroups/libsemigroups_pybind11

Repository files navigation

DOI

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.

How to install libsemigroups_pybind11

Installing with pip

It's possible to install libsemigroups_pybind11 using pip by doing one of the following (depending on your system and setup):

pip install libsemigroups_pybind11
pip3 install libsemigroups_pybind11
python -m pip install libsemigroups_pybind11

From the sources

Before installing libsemigroups_pybind11 from its sources, you should first perform a system install of libsemigroups. For information about how to do this, see the libsemigroups installation guide.

Assuming that you have libsemigroups installed, you can install libsemigroups_pybind11 as follows:

git clone https://github.com/libsemigroups/libsemigroups_pybind11
cd libsemigroups_pybind11
pip install .

From a release archive

To build libsemigroups_pybind11 from a release archive:

curl -L -O https://github.com/libsemigroups/libsemigroups_pybind11/releases/latest/download/libsemigroups_pybind11-1.0.1.tar.gz
tar -xf libsemigroups_pybind11-1.0.1.tar.gz
rm -f libsemigroups_pybind11-1.0.1.tar.gz
cd libsemigroups_pybind11-1.0.1
pip install .

Building the documentation

Assuming you have python3 and make installed, you can build the doc by using:

python3 -m pip3 install -r requirements.txt
make doc

If you don't have make, you can run the script ./etc/make-doc.sh instead of running make doc (which is precisely what make doc does).

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!

About

Python bindings for the libsemigroups C++ library for semigroups and monoids

Topics

Resources

License

Contributing

Citation

Stars

Watchers

Forks

Languages