Skip to content

Commit 0dae0c5

Browse files
Add support for Kambites
1 parent 69c3dce commit 0dae0c5

File tree

10 files changed

+863
-8
lines changed

10 files changed

+863
-8
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
*.so
44
*.whl
55
.DS_Store
6+
.ccls
67
.coverage
78
.tox
89
MANIFEST

docs/source/api/kambites.rst

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
.. Copyright (c) 2022, J. D. Mitchell
2+
3+
Distributed under the terms of the GPL license version 3.
4+
5+
The full license is in the file LICENSE, distributed with this software.
6+
7+
.. currentmodule:: _libsemigroups_pybind11
8+
9+
Kambites
10+
========
11+
12+
On this page we describe the functionality relating to the algorithms for small
13+
overlap monoids by Kambites_ and the authors of ``libsemigroups``.
14+
15+
.. _Kambites: https://doi.org/10.1016/j.jalgebra.2008.09.038
16+
17+
.. code-block:: python
18+
19+
kb = Kambites()
20+
kb.set_alphabet("abc")
21+
22+
TODO
23+
24+
.. autosummary::
25+
:nosignatures:
26+
27+
~Kambites
28+
Kambites.add_rule
29+
Kambites.add_rules
30+
Kambites.alphabet
31+
Kambites.char_to_uint
32+
Kambites.dead
33+
Kambites.equal_to
34+
Kambites.finished
35+
Kambites.froidure_pin
36+
Kambites.has_froidure_pin
37+
Kambites.has_identity
38+
Kambites.identity
39+
Kambites.inverses
40+
Kambites.is_obviously_finite
41+
Kambites.is_obviously_infinite
42+
Kambites.kill
43+
Kambites.normal_form
44+
Kambites.number_of_normal_forms
45+
Kambites.number_of_pieces
46+
Kambites.number_of_rules
47+
Kambites.report
48+
Kambites.report_every
49+
Kambites.report_why_we_stopped
50+
Kambites.rules
51+
Kambites.run
52+
Kambites.run_for
53+
Kambites.run_until
54+
Kambites.running
55+
Kambites.set_alphabet
56+
Kambites.set_identity
57+
Kambites.set_inverses
58+
Kambites.size
59+
Kambites.small_overlap_class
60+
Kambites.started
61+
Kambites.stopped
62+
Kambites.stopped_by_predicate
63+
Kambites.string_to_word
64+
Kambites.timed_out
65+
Kambites.uint_to_char
66+
Kambites.validate_letter
67+
Kambites.validate_word
68+
Kambites.word_to_string
69+
70+
.. autoclass:: Kambites
71+
:members:

docs/source/fpsemigroups.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,6 @@ monoids are:
3535
:maxdepth: 2
3636

3737
api/fpsemi
38+
api/kambites
3839
api/knuth-bendix
3940
presentations/index

libsemigroups_pybind11/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
wilo,
3737
wislo,
3838
Sims1,
39+
Kambites,
3940
)
4041

4142
from .froidure_pin import FroidurePin

src/fpsemi.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ namespace libsemigroups {
267267
:return: An int.
268268
)pbdoc")
269269
.def("report_every",
270-
(void(FpSemigroup::*)(std::chrono::nanoseconds))
270+
(void (FpSemigroup::*)(std::chrono::nanoseconds))
271271
& Runner::report_every,
272272
py::arg("t"),
273273
R"pbdoc(
@@ -306,7 +306,8 @@ namespace libsemigroups {
306306
:return: (None)
307307
)pbdoc")
308308
.def("run_for",
309-
(void(FpSemigroup::*)(std::chrono::nanoseconds)) & Runner::run_for,
309+
(void (FpSemigroup::*)(std::chrono::nanoseconds))
310+
& Runner::run_for,
310311
py::arg("t"),
311312
R"pbdoc(
312313
Run for a specified amount of time.
@@ -316,7 +317,7 @@ namespace libsemigroups {
316317
:Returns: (None)
317318
)pbdoc")
318319
.def("run_until",
319-
(void(FpSemigroup::*)(std::function<bool()> &))
320+
(void (FpSemigroup::*)(std::function<bool()> &))
320321
& Runner::run_until,
321322
py::arg("func"),
322323
R"pbdoc(
@@ -545,12 +546,11 @@ namespace libsemigroups {
545546
&FpSemigroup::size,
546547
R"pbdoc(
547548
Returns the size of the finitely presented semigroup.
548-
R"pbdoc(
549-
Returns the size of the finitely presented semigroup.
550549
551-
:return: An ``int`` the value of which equals the size of this
552-
if this number is finite, or ``POSITIVE_INFINITY`` if this
553-
number is not finite.
550+
:return:
551+
An ``int`` the value of which equals the size of this
552+
if this number is finite, or ``POSITIVE_INFINITY`` if this
553+
number is not finite.
554554
)pbdoc")
555555
.def(
556556
"rules",

0 commit comments

Comments
 (0)