Skip to content

Commit b7db3c3

Browse files
Format
1 parent 212600c commit b7db3c3

1 file changed

Lines changed: 82 additions & 82 deletions

File tree

README.md

Lines changed: 82 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ The full license is in the file LICENSE, distributed with this
55
software.
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

207207
We 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

Comments
 (0)