libsemigroups
is a C++14 library containing implementations of several
algorithms for computing finite and finitely presented semigroups.
Namely:
- the Froidure-Pin algorithm for computing finite semigroups
- the Todd-Coxeter algorithm for finitely presented semigroups and monoids;
- the Knuth-Bendix algorithm for finitely presented semigroups and monoids;
- the Schreier-Sims algorithm for permutation groups;
- a preliminary implementation of the Konieczny and Lallement-McFadden algorithm for computing finite semigroups which act on sets.
libsemigroups_pybind11
is a python package exposing much (but not all)
of the functionality of libsemigroups
.
The development version of libsemigroups_pybind11
is available on
github, and
some related projects are here.
It's possible to install libsemigroups_pybind11
using pip
via one of:
pip install libsemigroups_pybind11
pip3 install libsemigroups_pybind11
python -m pip install libsemigroups_pybind11
python3 -m pip install libsemigroups_pybind11
This installation method assumes that you have anaconda or miniconda installed. See the getting started and miniconda download page on the conda website.
It might be a good idea to create and activate a conda environment to
contain the installation of the libsemigroups_pybind11
:
conda create --name libsemigroups
conda activate libsemigroups
Install libsemigroups_pybind11
:
conda install -c conda-forge libsemigroups_pybind11
At present this does not work for Macs with M1 processors.
Before installing libsemigroups_pybind11
from its sources you should
first perform a system install of the C++ library libsemigroups
. For
information about how to install libsemigroups
see the 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 .
To build libsemigroups_pybind11
from a release archive:
curl -L -O https://github.com/libsemigroups/libsemigroups_pybind11/releases/latest/download/libsemigroups_pybind11-0.10.1.tar.gz
tar -xf libsemigroups_pybind11-0.10.1.tar.gz
rm -f libsemigroups_pybind11-0.10.1.tar.gz
cd libsemigroups_pybind11-0.10.1
pip install .
The following are required to be able to build the documentation:
python3
- the python packages:
jinja2 sphinx sphinx_rtd_theme sphinxcontrib-bibtex sphinx_copybutton
Assuming you already have python3
install, on Mac OSX you can install
all of the above by doing:
python3 -m pip3 install -r requirements.txt
Then it ought to be possible to just run make doc
in the
libsemigroups_pybind11
directory.
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.