GithubHelp home page GithubHelp logo

ewangilligan / libsemigroups Goto Github PK

View Code? Open in Web Editor NEW

This project forked from libsemigroups/libsemigroups

0.0 1.0 0.0 15.14 MB

C++ library for semigroups and monoids

Home Page: https://libsemigroups.rtfd.io/en/latest/

License: GNU General Public License v3.0

Makefile 0.96% C++ 96.26% Shell 0.29% M4 1.68% Python 0.50% CMake 0.19% GAP 0.08% Jupyter Notebook 0.06%

libsemigroups's Introduction

libsemigroups - Version 2.0.2

Documentation Status

Launch Binder

image

image

image

image

image

image

C++ library for semigroups and monoids

What is libsemigroups?

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

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

The main classes in libsemigroups are named after the algorithms they implement; for example, libsemigroups::FroidurePin, libsemigroups::congruence::ToddCoxeter, libsemigroups::fpsemigroup::KnuthBendix, and libsemigroups::SchreierSims.

The implementations in libsemigroups::FroidurePin and libsemigroups::SchreierSims are generic and easily adapted to user-defined types.

libsemigroups uses: HPCombi which uses the SSE and AVX instruction sets for very fast manipulation of transformations, partial permutations, permutations, and boolean matrices of small size; catch for tests; fmt for reporting; and eigen for some linear algebra computations.

How to use it

See the documentation https://libsemigroups.readthedocs.io/en/latest/

Installation instructions are here https://libsemigroups.readthedocs.io/en/latest/install.html

Issues

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

Author

J. D. Mitchell

Contributors

  • R. Cirpons contributed to IsObviouslyInfinite and to integrating eigen.
  • F. Hivert contributed many helpful ideas to libsemigroups, an allocator implementation (to be included in a future version), and HPCombi.
  • J. James contributed some bugfixes.
  • J. Jonušas contributed to the implementation of the Froidure-Pin algorithm.
  • D. V. Pasechnik contributed to the build system.
  • F. Smith contributed the implementation of the Konieczny and Lallement-McFadden algorithm, to the Todd-Coxeter implementation, and to BMat8s.
  • N. Thiery contributed to the build system, packaging libsemigroups via conda, the python bindings and many helpful conversations and suggestions.
  • M. Torpey contributed to the congruences code in the v0.0.1 to v0.6.7.
  • M. Tsalakou contributed to the Knuth-Bendix implementation, and related algorithms for the class ActionDigraph.

Acknowledgements

We acknowledge financial support from the OpenDreamKit Horizon 2020 European Research Infrastructures project (#676541) (primarily for the python bindings).

We thank the Carnegie Trust for the Universities of Scotland for funding the PhD scholarship of J. Jonušas when he worked on this project.

We thank the Engineering and Physical Sciences Research Council (EPSRC) for funding the PhD scholarships of M. Torpey and F. Smith when they worked on this project (EP/M506631/1, EP/N509759/1).

libsemigroups's People

Contributors

james-d-mitchell avatar mtorpey avatar mt-resource-bot avatar hivert avatar nthiery avatar jamesjer avatar wilfwilson avatar flsmith avatar dimpase avatar isuruf avatar mtwhyte avatar reiniscirpons avatar le27 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.