Skip to content

chinmayanagpal/libsemigroups_pybind11

 
 

Repository files navigation

libsemigroups_pybind11 - Version 0.1.6

python bindings for the C++ library libsemigroups

What is libsemigroups?

libsemigroups is a C++14 library containing implementations of several algorithms for computing finite and finitely presented semigroups. Namely:

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.

Installation

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.

Installing with conda

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.

From the sources

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 .

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-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 .

Building the documentation

The following are required to be able to build the documentation:

  1. python3
  2. 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.

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.

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 62.7%
  • Python 36.1%
  • Other 1.2%