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 is currently only possible to install libsemigroups_pybind11
using
conda or from its sources. We plan to add the option of installing with
pip
in the future.
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.1.6.tar.gz
tar -xf libsemigroups_pybind11-0.1.6.tar.gz
rm -f libsemigroups_pybind11-0.1.6.tar.gz
cd libsemigroups_pybind11-0.1.6
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 docs/requirements
Then it ought to be possible to just run make doc
in the
libsemigroups
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.