@@ -5,7 +5,7 @@ The full license is in the file LICENSE, distributed with this
55software.
66-->
77
8- # libsemigroups
8+ # libsemigroups
99
1010[ ![ image] ( https://img.shields.io/conda/dn/conda-forge/libsemigroups )] ( https://github.com/conda-forge/libsemigroups-feedstock )
1111[ ![ image] ( https://zenodo.org/badge/DOI/10.5281/zenodo.1437752.svg )] ( https://doi.org/10.5281/zenodo.1437752 )
@@ -23,39 +23,39 @@ monoids. The main algorithms implemented in `libsemigroups` are:
2323 by a generating set consisting of elements whose multiplication and equality is
2424 decidable (such as [ transformations, partial permutations, permutations] [ ] ,
2525 [ bipartitions] [ ] , and [ matrices over a semiring] [ ] ) in the
26- [ ` libsemigroups::FroidurePin ` ] [ ] class template;
26+ [ ` libsemigroups::FroidurePin ` ] [ ] class template;
2727- Kambites' algorithm for solving the word problem in small overlap monoids
2828 from [ "Small overlap monoids I: The word problem"] [ ] , and the algorithm from
2929 [ "An explicit algorithm for normal forms in small overlap monoids"] [ ] in the
3030 class template [ ` libsemigroups::Kambites ` ] [ ] ;
31- - the [ Knuth-Bendix algorithm] for finitely presented semigroups and monoids
31+ - the [ Knuth-Bendix algorithm] for finitely presented semigroups and monoids
3232 in the class template [ ` libsemigroups::KnuthBendix ` ] [ ] ;
3333- a version of Sims' low index subgroup algorithm for computing congruences of a
34- semigroup or monoid from
35- [ "Computing finite index congruences of finitely presented semigroups and monoids"] [ ]
34+ semigroup or monoid from
35+ [ "Computing finite index congruences of finitely presented semigroups and monoids"] [ ]
3636 in the classes [ ` libsemigroups::Sims1 ` ] [ ] and [ ` libsemigroups::Sims2 ` ] [ ] ;
37- - a generalized version of the algorithms described in
38- [ "Green's equivalences in finite semigroups of binary relations"] [ ] by
39- Konieczny, and
40- [ "On the determination of Green's relations in finite transformation semigroups"] [ ]
37+ - a generalized version of the algorithms described in
38+ [ "Green's equivalences in finite semigroups of binary relations"] [ ] by
39+ Konieczny, and
40+ [ "On the determination of Green's relations in finite transformation semigroups"] [ ]
4141 by Lallement and Mcfadden for computing finite semigroups and monoids
4242 admitting a pair of actions with particular properties, in the class template
4343 [ ` libsemigroups::Konieczny ` ] [ ] ;
44- - the algorithm from [ "Efficient Testing of Equivalence of Words in a Free Idempotent Semigroup"] [ ]
44+ - the algorithm from [ "Efficient Testing of Equivalence of Words in a Free Idempotent Semigroup"] [ ]
4545 by Radoszewski and Rytter in the function [ ` libsemigroups::freeband_equal_to ` ] [ ] ;
4646- a non-random version of the [ Schreier-Sims algorithm] [ ]
4747 for permutation groups in the class template [ ` libsemigroups::SchreierSims ` ] [ ] ;
48- - a version of Stephen's procedure from
48+ - a version of Stephen's procedure from
4949 [ "Applications of automata theory to presentations of monoids and inverse monoids"] [ ]
5050 for finitely presented inverse semigroups and monoids (for a given word \\ (w\\ ) this
5151 procedure is for determining words equivalent to \\ (w\\ ) or that are
5252 left divisors of \\ (w\\ )) in the class template [ ` libsemigroups::Stephen ` ] [ ] ;
53- - the [ Todd-Coxeter algorithm] [ ] for finitely presented semigroups and monoids;
54- in the class template [ ` libsemigroups::ToddCoxeter ` ] [ ] ; see also
53+ - the [ Todd-Coxeter algorithm] [ ] for finitely presented semigroups and monoids;
54+ in the class template [ ` libsemigroups::ToddCoxeter ` ] [ ] ; see also
5555 [ "The Todd–Coxeter algorithm for semigroups and monoids"] [ ] .
5656
57- ` libsemigroups ` is partly based on
58- [ Algorithms for computing finite semigroups] [ Froidure-Pin algorithm ] ,
57+ ` libsemigroups ` is partly based on
58+ [ Algorithms for computing finite semigroups] [ Froidure-Pin algorithm ] ,
5959[ Expository Slides] [ ] , and [ Semigroupe 2.01] [ ] by [ Jean-Eric Pin] [ ] .
6060
6161[ Froidure-Pin algorithm ] : https://www.irif.fr/~jep/PDF/Rio.pdf
@@ -93,27 +93,27 @@ or [`libsemigroups::Stephen`][].
9393
9494` libsemigroups ` is a modern open source C++ library designed to be:
9595
96- - ** state of the art** : the mathematical underpinnings of several of the
97- algorithms in ` libsemigroups ` originate from the authors and contributors; and the
98- other algorithms are adapted from the literature (see above for details);
99- - ** extensible** : [ ` libsemigroups::FroidurePin ` ] [ ] , [ ` libsemigroups::Konieczny ` ] [ ] , and
100- [ ` libsemigroups::SchreierSims ` ] [ ] are generic and can be adapted to user-defined
101- types;
102- - ** adaptable** : the behaviour of many algorithms implementing in ` libsemigroups `
103- can be fine-tuned via many settings, and used interactively via the functions
96+ - ** state of the art** : the mathematical underpinnings of several of the
97+ algorithms in ` libsemigroups ` originate from the authors and contributors; and the
98+ other algorithms are adapted from the literature (see above for details);
99+ - ** extensible** : [ ` libsemigroups::FroidurePin ` ] [ ] , [ ` libsemigroups::Konieczny ` ] [ ] , and
100+ [ ` libsemigroups::SchreierSims ` ] [ ] are generic and can be adapted to user-defined
101+ types;
102+ - ** adaptable** : the behaviour of many algorithms implementing in ` libsemigroups `
103+ can be fine-tuned via many settings, and used interactively via the functions
104104 [ ` libsemigroups::Runner::run_for ` ] [ ] and [ ` libsemigroups::Runner::run_until ` ] [ ] ;
105- - ** easy to use** : converting between different types of ` libsemigroups `
106- objects (see [ the ` to ` function] [ ] ) is easy; there are many
107- helper functions to streamline common tasks; high quality exception messages
108- are implemented throughout the code base (although you don't have to use these
109- if you don't want to); long running algorithms can provide detailed feedback on
110- their progress (see [ ` libsemigroups::ReportGuard ` ] [ ] ); many data structures can be
111- visualised using graphviz (see [ ` libsemigroups::Dot ` ] [ ] and
112- [ Visualisation] [ ] );
113- and there are hundreds of examples in the [ tests] [ ] directory.
114- - ** fast** : ` libsemigroups ` is designed with performance in mind; several
105+ - ** easy to use** : converting between different types of ` libsemigroups `
106+ objects (see [ the ` to ` function] [ ] ) is easy; there are many
107+ helper functions to streamline common tasks; high quality exception messages
108+ are implemented throughout the code base (although you don't have to use these
109+ if you don't want to); long running algorithms can provide detailed feedback on
110+ their progress (see [ ` libsemigroups::ReportGuard ` ] [ ] ); many data structures can be
111+ visualised using graphviz (see [ ` libsemigroups::Dot ` ] [ ] and
112+ [ Visualisation] [ ] );
113+ and there are hundreds of examples in the [ tests] [ ] directory.
114+ - ** fast** : ` libsemigroups ` is designed with performance in mind; several
115115 classes implement parallel algorithms ([ ` libsemigroups::Sims1 ` ] [ ] ,
116- [ ` libsemigroups::Sims2 ` ] [ ] , [ ` libsemigroups::Congruence ` ] [ ] );
116+ [ ` libsemigroups::Sims2 ` ] [ ] , [ ` libsemigroups::Congruence ` ] [ ] );
117117 we provide some "winner takes all" mechanisms for running algorithms
118118 concurrently (see [ ` libsemigroups::Congruence ` ] [ ] ); there are
119119 ` _no_checks ` versions of most functions if performance is critical.
@@ -159,64 +159,64 @@ We'd like to thank the authors and contributors to these excellent projects!
159159
160160## Contributors
161161
162- - [ Luna Elliott] ( https://le27.github.io/L-Elliott/ )
163- (<luna.elliott142857@gmail.com >)
164- contributed to the Schreier-Sims implementation.
165- - Jan Engelhardt (< jengelh@inai.de > ) contributed some bug fixes to the
166- build system, and a number of helpful issues.
167- - Ilya Finkelshteyn (< ilyaf@appveyor.com > ) contributed to the
168- continuous integration in AppVeyor.
169- - Isuru Fernando (< isuruf@gmail.com > ) contributed to the build system.
170- - [ Florent Hivert] ( https://www.lri.fr/~hivert/ )
171- (<Florent.Hivert@lri.fr >) contributed many helpful ideas to
172- ` libsemigroups ` , and ` HPCombi ` .
173- - [ Max Horn] ( https://math.rptu.de/en/wgs/agag/people/head/prof-dr-max-horn )
174- (< max@quendi.de > ) contributed some fixes.
175- - [ Jerry James] ( http://www.jamezone.org/ ) (< loganjerry@gmail.com > )
176- contributed some bugfixes.
177- - [ Julius Jonušas] [ ] contributed to the implementation of the Froidure-Pin
178- algorithm.
179- - [ Samuel Lelièvre] [ ] (<samuel.lelievre@gmail.com >) contributed a number of
180- fixes to the docs.
181- - Alex Levine (<A.Levine@uea.ac.uk >) contributed to the Schreier-Sims
182- implementation.
183- - [ Dima Pasechnik] ( http://users.ox.ac.uk/~coml0531 )
184- (< dimpase@gmail.com > ) contributed to the build system.
185- - Chris Russell contributed some tests for finitely presented
186- semigroups.
187- - [ Finn Smith] [ ] (< fls3@st-andrews.ac.uk > )
188- contributed the implementation of the Konieczny and
189- Lallement-McFadden algorithm, to the Todd-Coxeter implementation,
190- and to BMat8s.
191- - [ Nicolas Thiéry] ( http://nicolas.thiery.name/ )
192- (< nthiery@users.sf.net > ) contributed to the build system, packaging
193- ` libsemigroups ` via conda, the python bindings and many helpful
194- conversations and suggestions.
195- - [ Maria Tsalakou] [ ] (< mt200@st-andrews.ac.uk > ) contributed to the Knuth-Bendix
196- implementation, related algorithms for the class ` WordGraph ` ,
197- and to the implementation of the ` Ukkonen ` and ` Kambites ` classes.
198- - [ Wilf Wilson] ( https://wilf.me ) (< wilf@wilf-wilson.net > ) contributed some fixes.
199- - Murray Whyte (< mw231@st-andrews.ac.uk > ) contributed many examples of
200- finitely presented semigroups and monoids, to the documentation and reported a
201- number of bugs.
202- - [ Michael Young] [ ] (< mct25@st-andrews.ac.uk > ) contributed to the congruences
203- code in the v0.0.1 to v0.6.7.
162+ - [ Luna Elliott] ( https://le27.github.io/L-Elliott/ )
163+ (<luna.elliott142857@gmail.com >)
164+ contributed to the Schreier-Sims implementation.
165+ - Jan Engelhardt (< jengelh@inai.de > ) contributed some bug fixes to the
166+ build system, and a number of helpful issues.
167+ - Ilya Finkelshteyn (< ilyaf@appveyor.com > ) contributed to the
168+ continuous integration in AppVeyor.
169+ - Isuru Fernando (< isuruf@gmail.com > ) contributed to the build system.
170+ - [ Florent Hivert] ( https://www.lri.fr/~hivert/ )
171+ (<Florent.Hivert@lri.fr >) contributed many helpful ideas to
172+ ` libsemigroups ` , and ` HPCombi ` .
173+ - [ Max Horn] ( https://math.rptu.de/en/wgs/agag/people/head/prof-dr-max-horn )
174+ (< max@quendi.de > ) contributed some fixes.
175+ - [ Jerry James] ( http://www.jamezone.org/ ) (< loganjerry@gmail.com > )
176+ contributed some bugfixes.
177+ - [ Julius Jonušas] [ ] contributed to the implementation of the Froidure-Pin
178+ algorithm.
179+ - [ Samuel Lelièvre] [ ] (<samuel.lelievre@gmail.com >) contributed a number of
180+ fixes to the docs.
181+ - Alex Levine (<A.Levine@uea.ac.uk >) contributed to the Schreier-Sims
182+ implementation.
183+ - [ Dima Pasechnik] ( http://users.ox.ac.uk/~coml0531 )
184+ (< dimpase@gmail.com > ) contributed to the build system.
185+ - Chris Russell contributed some tests for finitely presented
186+ semigroups.
187+ - [ Finn Smith] [ ] (< fls3@st-andrews.ac.uk > )
188+ contributed the implementation of the Konieczny and
189+ Lallement-McFadden algorithm, to the Todd-Coxeter implementation,
190+ and to BMat8s.
191+ - [ Nicolas Thiéry] ( http://nicolas.thiery.name/ )
192+ (< nthiery@users.sf.net > ) contributed to the build system, packaging
193+ ` libsemigroups ` via conda, the python bindings and many helpful
194+ conversations and suggestions.
195+ - [ Maria Tsalakou] [ ] (< mt200@st-andrews.ac.uk > ) contributed to the Knuth-Bendix
196+ implementation, related algorithms for the class ` WordGraph ` ,
197+ and to the implementation of the ` Ukkonen ` and ` Kambites ` classes.
198+ - [ Wilf Wilson] ( https://wilf.me ) (< wilf@wilf-wilson.net > ) contributed some fixes.
199+ - Murray Whyte (< mw231@st-andrews.ac.uk > ) contributed many examples of
200+ finitely presented semigroups and monoids, to the documentation and reported a
201+ number of bugs.
202+ - [ Michael Young] [ ] (< mct25@st-andrews.ac.uk > ) contributed to the congruences
203+ code in the v0.0.1 to v0.6.7.
204204
205205## Acknowledgements
206206
207207We thank:
208208
209- * [ OpenDreamKit] ( https://opendreamkit.org/ ) Horizon 2020 European Research
209+ - [ OpenDreamKit] ( https://opendreamkit.org/ ) Horizon 2020 European Research
210210 Infrastructures project (#676541 );
211- * the [ Carnegie Trust for the Universities of Scotland] [ ] for funding the PhD scholarship of
211+ - the [ Carnegie Trust for the Universities of Scotland] [ ] for funding the PhD scholarship of
212212 [ Julius Jonušas] [ ] ;
213- * the [ EPSRC] ( https://epsrc.ukri.org/ ) for funding the PhD scholarships of
213+ - the [ EPSRC] ( https://epsrc.ukri.org/ ) for funding the PhD scholarships of
214214 [ Michael Young] [ ] , [ Finn Smith] [ ] , and [ Reinis Cirpons] [ ] (EP/M506631/1,
215215 EP/N509759/1 and EP/V520123/1);
216- * the [ School of Mathematics and Statistics, University of St Andrews] [ ] for
216+ - the [ School of Mathematics and Statistics, University of St Andrews] [ ] for
217217 funding the PhD scholarships of [ Maria Tsalakou] [ ] , [ Joseph Edwards] [ ] , and
218218 Murray Whyte;
219- * the Cyprus State Scholarship Foundation for their financial support for
219+ - the Cyprus State Scholarship Foundation for their financial support for
220220 [ Maria Tsalakou] [ ] .
221221
222222[ Finn Smith ] : https://flsmith.github.io
@@ -232,7 +232,7 @@ We thank:
232232
233233[ Visualisation ] : https://libsemigroups.github.io/libsemigroups/group__dot__group.html
234234[ `libsemigroups::Congruence` ] : https://libsemigroups.github.io/libsemigroups/group__congruence__class__group.html
235- [ ` libsemigroups::FroidurePin ` ] : https://libsemigroups.github.io/libsemigroups/classlibsemigroups_1_1_froidure_pin.html
235+ [ `libsemigroups::FroidurePin` ] : https://libsemigroups.github.io/libsemigroups/classlibsemigroups_1_1_froidure_pin.html
236236[ `libsemigroups::Kambites` ] : https://libsemigroups.github.io/libsemigroups/group__kambites__class__group.html
237237[ `libsemigroups::KnuthBendix` ] : https://libsemigroups.github.io/libsemigroups/group__knuth__bendix__class__group.html
238238[ `libsemigroups::Konieczny` ] : https://libsemigroups.github.io/libsemigroups/group__konieczny__group.html
0 commit comments