Skip to content

Commit 1889b20

Browse files
kambites: update for MultiView
1 parent 3e93574 commit 1889b20

8 files changed

Lines changed: 38 additions & 30 deletions

File tree

src/cong-common.cpp

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ namespace libsemigroups {
4242

4343
using RewriteTrie = detail::RewriteTrie;
4444
using RewriteFromLeft = detail::RewriteFromLeft;
45-
using MultiStringView = detail::MultiStringView;
45+
46+
template <typename Thing>
47+
using MultiView = detail::MultiView<Thing>;
4648

4749
// Alias required because macros don't play well with commas.
4850
using KnuthBendixStringRewriteTrie = KnuthBendix<std::string, RewriteTrie>;
@@ -122,7 +124,8 @@ This function default constructs an uninitialised :any:`{name}` instance.
122124
DEF_CONSTRUCT_DEFAULT(ToddCoxeter<std::string>, detail::ToddCoxeterImpl);
123125

124126
DEF_CONSTRUCT_DEFAULT(Kambites<word_type>, detail::CongruenceCommon);
125-
DEF_CONSTRUCT_DEFAULT(Kambites<MultiStringView>, detail::CongruenceCommon);
127+
DEF_CONSTRUCT_DEFAULT(Kambites<MultiView<std::string>>,
128+
detail::CongruenceCommon);
126129
DEF_CONSTRUCT_DEFAULT(Kambites<std::string>, detail::CongruenceCommon);
127130

128131
DEF_CONSTRUCT_DEFAULT(detail::KnuthBendixImpl<RewriteTrie>,
@@ -182,7 +185,7 @@ have been in if it had just been newly default constructed.
182185
DEF_INIT_DEFAULT(ToddCoxeter<std::string>, detail::ToddCoxeterImpl);
183186

184187
DEF_INIT_DEFAULT(Kambites<word_type>, detail::CongruenceCommon);
185-
DEF_INIT_DEFAULT(Kambites<MultiStringView>, detail::CongruenceCommon);
188+
DEF_INIT_DEFAULT(Kambites<MultiView<std::string>>, detail::CongruenceCommon);
186189
DEF_INIT_DEFAULT(Kambites<std::string>, detail::CongruenceCommon);
187190

188191
DEF_INIT_DEFAULT(detail::KnuthBendixImpl<RewriteTrie>,
@@ -254,7 +257,7 @@ of kind *knd* over the semigroup or monoid defined by the presentation *p*.
254257

255258
DEF_CONSTRUCT_KIND_PRESENTATION(Kambites<word_type>,
256259
detail::CongruenceCommon);
257-
DEF_CONSTRUCT_KIND_PRESENTATION(Kambites<MultiStringView>,
260+
DEF_CONSTRUCT_KIND_PRESENTATION(Kambites<MultiView<std::string>>,
258261
detail::CongruenceCommon);
259262
DEF_CONSTRUCT_KIND_PRESENTATION(Kambites<std::string>,
260263
detail::CongruenceCommon);
@@ -332,7 +335,7 @@ had been newly constructed from *knd* and *p*.
332335
DEF_INIT_KIND_PRESENTATION(ToddCoxeter<std::string>, detail::ToddCoxeterImpl);
333336

334337
DEF_INIT_KIND_PRESENTATION(Kambites<word_type>, detail::CongruenceCommon);
335-
DEF_INIT_KIND_PRESENTATION(Kambites<MultiStringView>,
338+
DEF_INIT_KIND_PRESENTATION(Kambites<MultiView<std::string>>,
336339
detail::CongruenceCommon);
337340
DEF_INIT_KIND_PRESENTATION(Kambites<std::string>, detail::CongruenceCommon);
338341

@@ -390,7 +393,7 @@ Copy a :any:`{name}` object.
390393
DEF_COPY(ToddCoxeter<std::string>, detail::ToddCoxeterImpl);
391394

392395
DEF_COPY(Kambites<word_type>, detail::CongruenceCommon);
393-
DEF_COPY(Kambites<MultiStringView>, detail::CongruenceCommon);
396+
DEF_COPY(Kambites<MultiView<std::string>>, detail::CongruenceCommon);
394397
DEF_COPY(Kambites<std::string>, detail::CongruenceCommon);
395398

396399
DEF_COPY(detail::KnuthBendixImpl<RewriteTrie>, detail::CongruenceCommon);
@@ -450,7 +453,8 @@ number of classes in the congruence represented by a :any:`{name}` instance.
450453
DEF_NUMBER_OF_CLASSES(detail::ToddCoxeterImpl, detail::CongruenceCommon);
451454

452455
DEF_NUMBER_OF_CLASSES(Kambites<word_type>, detail::CongruenceCommon);
453-
DEF_NUMBER_OF_CLASSES(Kambites<MultiStringView>, detail::CongruenceCommon);
456+
DEF_NUMBER_OF_CLASSES(Kambites<MultiView<std::string>>,
457+
detail::CongruenceCommon);
454458
DEF_NUMBER_OF_CLASSES(Kambites<std::string>, detail::CongruenceCommon);
455459

456460
DEF_NUMBER_OF_CLASSES(detail::KnuthBendixImpl<RewriteTrie>,
@@ -523,7 +527,8 @@ This function adds a generating pair to the congruence represented by a
523527
DEF_ADD_GENERATING_PAIR(ToddCoxeter<std::string>, detail::ToddCoxeterImpl);
524528

525529
DEF_ADD_GENERATING_PAIR(Kambites<word_type>, detail::CongruenceCommon);
526-
DEF_ADD_GENERATING_PAIR(Kambites<MultiStringView>, detail::CongruenceCommon);
530+
DEF_ADD_GENERATING_PAIR(Kambites<MultiView<std::string>>,
531+
detail::CongruenceCommon);
527532
DEF_ADD_GENERATING_PAIR(Kambites<std::string>, detail::CongruenceCommon);
528533

529534
DEF_ADD_GENERATING_PAIR(detail::KnuthBendixImpl<RewriteTrie>,
@@ -605,7 +610,8 @@ contained in the congruence, but that this is not currently known.
605610
DEF_CURRENTLY_CONTAINS(ToddCoxeter<std::string>, detail::ToddCoxeterImpl);
606611

607612
DEF_CURRENTLY_CONTAINS(Kambites<word_type>, detail::CongruenceCommon);
608-
DEF_CURRENTLY_CONTAINS(Kambites<MultiStringView>, detail::CongruenceCommon);
613+
DEF_CURRENTLY_CONTAINS(Kambites<MultiView<std::string>>,
614+
detail::CongruenceCommon);
609615
DEF_CURRENTLY_CONTAINS(Kambites<std::string>, detail::CongruenceCommon);
610616

611617
DEF_CURRENTLY_CONTAINS(detail::KnuthBendixImpl<RewriteTrie>,
@@ -681,7 +687,7 @@ congruence represented by a :py:class:`{name}` instance.
681687
DEF_CONTAINS(ToddCoxeter<std::string>, detail::ToddCoxeterImpl);
682688

683689
DEF_CONTAINS(Kambites<word_type>, detail::CongruenceCommon);
684-
DEF_CONTAINS(Kambites<MultiStringView>, detail::CongruenceCommon);
690+
DEF_CONTAINS(Kambites<MultiView<std::string>>, detail::CongruenceCommon);
685691
DEF_CONTAINS(Kambites<std::string>, detail::CongruenceCommon);
686692

687693
DEF_CONTAINS(detail::KnuthBendixImpl<RewriteTrie>, detail::CongruenceCommon);
@@ -753,7 +759,7 @@ normal form for the input word *w*.
753759
DEF_REDUCE_NO_RUN(ToddCoxeter<std::string>, detail::ToddCoxeterImpl);
754760

755761
DEF_REDUCE_NO_RUN(Kambites<word_type>, detail::CongruenceCommon);
756-
DEF_REDUCE_NO_RUN(Kambites<MultiStringView>, detail::CongruenceCommon);
762+
DEF_REDUCE_NO_RUN(Kambites<MultiView<std::string>>, detail::CongruenceCommon);
757763
DEF_REDUCE_NO_RUN(Kambites<std::string>, detail::CongruenceCommon);
758764

759765
DEF_REDUCE_NO_RUN(detail::KnuthBendixImpl<RewriteTrie>,
@@ -827,7 +833,7 @@ input word.
827833
DEF_REDUCE(ToddCoxeter<std::string>, detail::ToddCoxeterImpl);
828834

829835
DEF_REDUCE(Kambites<word_type>, detail::CongruenceCommon);
830-
DEF_REDUCE(Kambites<MultiStringView>, detail::CongruenceCommon);
836+
DEF_REDUCE(Kambites<MultiView<std::string>>, detail::CongruenceCommon);
831837
DEF_REDUCE(Kambites<std::string>, detail::CongruenceCommon);
832838

833839
DEF_REDUCE(detail::KnuthBendixImpl<RewriteTrie>, detail::CongruenceCommon);
@@ -886,7 +892,8 @@ This function returns the generating pairs of the congruence as added via
886892
DEF_GENERATING_PAIRS(ToddCoxeter<std::string>, detail::ToddCoxeterImpl);
887893

888894
DEF_GENERATING_PAIRS(Kambites<word_type>, detail::CongruenceCommon);
889-
DEF_GENERATING_PAIRS(Kambites<MultiStringView>, detail::CongruenceCommon);
895+
DEF_GENERATING_PAIRS(Kambites<MultiView<std::string>>,
896+
detail::CongruenceCommon);
890897
DEF_GENERATING_PAIRS(Kambites<std::string>, detail::CongruenceCommon);
891898

892899
DEF_GENERATING_PAIRS(KnuthBendixStringRewriteTrie,
@@ -945,7 +952,7 @@ presentation, then this presentation is returned by this function.
945952
DEF_PRESENTATION(ToddCoxeter<std::string>, detail::ToddCoxeterImpl);
946953

947954
DEF_PRESENTATION(Kambites<word_type>, detail::CongruenceCommon);
948-
DEF_PRESENTATION(Kambites<MultiStringView>, detail::CongruenceCommon);
955+
DEF_PRESENTATION(Kambites<MultiView<std::string>>, detail::CongruenceCommon);
949956
DEF_PRESENTATION(Kambites<std::string>, detail::CongruenceCommon);
950957

951958
DEF_PRESENTATION(KnuthBendixStringRewriteTrie,
@@ -1017,7 +1024,7 @@ triggers a full enumeration of *{var}*.
10171024
DEF_PARTITION(ToddCoxeter<std::string>);
10181025

10191026
DEF_PARTITION(Kambites<word_type>);
1020-
DEF_PARTITION(Kambites<MultiStringView>);
1027+
DEF_PARTITION(Kambites<MultiView<std::string>>);
10211028
DEF_PARTITION(Kambites<std::string>);
10221029

10231030
DEF_PARTITION(KnuthBendixStringRewriteTrie);
@@ -1084,7 +1091,7 @@ instance *{var}*.
10841091
DEF_NON_TRIVIAL_CLASSES(ToddCoxeter<std::string>);
10851092

10861093
DEF_NON_TRIVIAL_CLASSES(Kambites<word_type>);
1087-
DEF_NON_TRIVIAL_CLASSES(Kambites<MultiStringView>);
1094+
DEF_NON_TRIVIAL_CLASSES(Kambites<MultiView<std::string>>);
10881095
DEF_NON_TRIVIAL_CLASSES(Kambites<std::string>);
10891096

10901097
DEF_NON_TRIVIAL_CLASSES(KnuthBendixStringRewriteTrie);
@@ -1147,7 +1154,7 @@ the congruence represented by an instance of :any:`{name}`.
11471154
DEF_NORMAL_FORMS(ToddCoxeter<std::string>);
11481155

11491156
DEF_NORMAL_FORMS(Kambites<word_type>);
1150-
DEF_NORMAL_FORMS(Kambites<MultiStringView>);
1157+
DEF_NORMAL_FORMS(Kambites<MultiView<std::string>>);
11511158
DEF_NORMAL_FORMS(Kambites<std::string>);
11521159

11531160
DEF_NORMAL_FORMS(KnuthBendixStringRewriteTrie);

src/froidure-pin.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1267,7 +1267,7 @@ This function returns the element of *fp* obtained by evaluating *w*.
12671267
});
12681268
}
12691269
} // bind_froidure_pin_stateful
1270-
} // namespace
1270+
} // namespace
12711271

12721272
void init_froidure_pin(py::module& m) {
12731273
// TODO(0) uncomment bind_froidure_pin<HPCombiTransf<16>>(m, "Transf16");
@@ -1315,8 +1315,8 @@ This function returns the element of *fp* obtained by evaluating *w*.
13151315
m, "KBEWordRewriteTrie");
13161316

13171317
bind_froidure_pin_stateful<detail::KE<std::string>>(m, "KEString");
1318-
bind_froidure_pin_stateful<detail::KE<detail::MultiStringView>>(
1319-
m, "KEMultiStringView");
1318+
bind_froidure_pin_stateful<detail::KE<detail::MultiView<std::string>>>(
1319+
m, "KEMultiViewString");
13201320
bind_froidure_pin_stateful<detail::KE<word_type>>(
13211321
m, "KEWord"); // codespell:ignore keword
13221322

src/kambites.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ defined by a :any:`Kambites` object is obviously infinite;
251251

252252
void init_kambites(py::module& m) {
253253
// One call to bind is required per list of types
254-
bind_kambites<detail::MultiStringView>(m, "KambitesMultiStringView");
254+
bind_kambites<detail::MultiView<std::string>>(m, "KambitesMultiViewString");
255255
bind_kambites<std::string>(m, "KambitesString"); // returned by Congruence
256256
bind_kambites<word_type>(m, "KambitesWord");
257257
}

src/libsemigroups_pybind11/froidure_pin.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
FroidurePinKBEStringRewriteTrie as _FroidurePinKBEStringRewriteTrie,
4747
FroidurePinKBEWordRewriteFromLeft as _FroidurePinKBEWordRewriteFromLeft,
4848
FroidurePinKBEWordRewriteTrie as _FroidurePinKBEWordRewriteTrie,
49-
FroidurePinKEMultiStringView as _FroidurePinKEMultiStringView,
49+
FroidurePinKEMultiViewString as _FroidurePinKEMultiViewString,
5050
FroidurePinKEString as _FroidurePinKEString,
5151
FroidurePinKEWord as _FroidurePinKEWord,
5252
FroidurePinTCE as _FroidurePinTCE,
@@ -142,7 +142,7 @@ class FroidurePin(_CxxWrapper): # pylint: disable=missing-class-docstring
142142
)
143143

144144
_all_wrapped_cxx_types = {*_py_template_params_to_cxx_type.values()} | {
145-
_FroidurePinKEMultiStringView,
145+
_FroidurePinKEMultiViewString,
146146
_FroidurePinKEString,
147147
_FroidurePinKEWord,
148148
_FroidurePinTCE,
@@ -237,7 +237,7 @@ def sorted_elements( # pylint: disable=missing-function-docstring
237237
_register_cxx_wrapped_type(_fp_type, FroidurePin)
238238

239239

240-
_register_cxx_wrapped_type(_FroidurePinKEMultiStringView, FroidurePin)
240+
_register_cxx_wrapped_type(_FroidurePinKEMultiViewString, FroidurePin)
241241
_register_cxx_wrapped_type(_FroidurePinKEString, FroidurePin)
242242
_register_cxx_wrapped_type(_FroidurePinKEWord, FroidurePin)
243243
_register_cxx_wrapped_type(_FroidurePinTCE, FroidurePin)

src/libsemigroups_pybind11/kambites.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from typing_extensions import Self as _Self
1515

1616
from _libsemigroups_pybind11 import ( # pylint: disable=no-name-in-module
17-
KambitesMultiStringView as _KambitesMultiStringView,
17+
KambitesMultiViewString as _KambitesMultiViewString,
1818
KambitesWord as _KambitesWord,
1919
KambitesString as _KambitesString,
2020
congruence_kind as _congruence_kind,
@@ -45,7 +45,7 @@ class Kambites(_CongruenceCommon): # pylint: disable=missing-class-docstring
4545

4646
_py_template_params_to_cxx_type = {
4747
(list[int],): _KambitesWord,
48-
(str,): _KambitesMultiStringView,
48+
(str,): _KambitesMultiViewString,
4949
}
5050

5151
_cxx_type_to_py_template_params = dict(
@@ -75,7 +75,7 @@ def __init__(self: _Self, *args, **kwargs) -> None:
7575
_copy_cxx_mem_fns(_KambitesWord, Kambites)
7676

7777
_register_cxx_wrapped_type(_KambitesWord, Kambites)
78-
_register_cxx_wrapped_type(_KambitesMultiStringView, Kambites)
78+
_register_cxx_wrapped_type(_KambitesMultiViewString, Kambites)
7979
_register_cxx_wrapped_type(_KambitesString, Kambites)
8080

8181
partition = _wrap_cxx_free_fn(_kambites_partition)

src/main.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ namespace libsemigroups {
110110
return static_cast<Int>(std::get<4>(val));
111111
}
112112
}
113+
return 0; // To keep the compiler happy
113114
}
114115

115116
template <typename Int>

src/to-froidure-pin.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ namespace libsemigroups {
5858

5959
// Kambites
6060
bind_to_froidure_pin<Kambites<std::string>>(m);
61-
bind_to_froidure_pin<Kambites<detail::MultiStringView>>(m);
61+
bind_to_froidure_pin<Kambites<detail::MultiView<std::string>>>(m);
6262
bind_to_froidure_pin<Kambites<word_type>>(m);
6363

6464
// KnuthBendix

tests/test_to.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
FroidurePinKBEStringRewriteTrie,
2121
FroidurePinKBEWordRewriteFromLeft,
2222
FroidurePinKBEWordRewriteTrie,
23-
FroidurePinKEMultiStringView,
23+
FroidurePinKEMultiViewString,
2424
FroidurePinKEString,
2525
FroidurePinKEWord,
2626
FroidurePinTCE,
@@ -253,7 +253,7 @@ def test_to_FroidurePin_009():
253253
fp = to(k, rtype=(FroidurePin,))
254254
fp.enumerate(100)
255255
assert fp.current_size() == 8205
256-
assert isinstance(to_cxx(fp), FroidurePinKEMultiStringView)
256+
assert isinstance(to_cxx(fp), FroidurePinKEMultiViewString)
257257
assert isinstance(fp, FroidurePin)
258258

259259

0 commit comments

Comments
 (0)