Skip to content

Commit f82b684

Browse files
hpcombi: add support for Konieczny
1 parent 63ff312 commit f82b684

2 files changed

Lines changed: 56 additions & 20 deletions

File tree

src/konieczny.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -751,6 +751,15 @@ not already known.
751751
bind_konieczny<PPerm<0, uint8_t>>(m, "PPerm1");
752752
bind_konieczny<PPerm<0, uint16_t>>(m, "PPerm2");
753753
bind_konieczny<PPerm<0, uint32_t>>(m, "PPerm4");
754+
755+
#ifdef LIBSEMIGROUPS_HPCOMBI_ENABLED
756+
// TODO impl in libsemigroups
757+
// bind_konieczny<HPCombi::PTransf16>(m, "HPCombiPTransf16");
758+
// TODO impl in libsemigroups
759+
// bind_konieczny<HPCombi::Perm16>(m, "HPCombiPerm16");
760+
bind_konieczny<HPCombi::Transf16>(m, "HPCombiTransf16");
761+
bind_konieczny<HPCombi::PPerm16>(m, "HPCombiPPerm16");
762+
#endif
754763
}
755764

756765
} // namespace libsemigroups

src/libsemigroups_pybind11/konieczny.py

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

1616
from _libsemigroups_pybind11 import (
17+
LIBSEMIGROUPS_HPCOMBI_ENABLED as _LIBSEMIGROUPS_HPCOMBI_ENABLED,
1718
BMat as _BMat,
1819
BMat8 as _BMat8,
1920
KoniecznyBMat as _KoniecznyBMat,
@@ -49,6 +50,16 @@
4950
)
5051
from .detail.decorators import copydoc as _copydoc
5152

53+
if _LIBSEMIGROUPS_HPCOMBI_ENABLED:
54+
from _libsemigroups_pybind11 import (
55+
KoniecznyHPCombiPPerm16 as _KoniecznyHPCombiPPerm16,
56+
KoniecznyHPCombiPPerm16DClass as _KoniecznyHPCombiPPerm16DClass,
57+
KoniecznyHPCombiTransf16 as _KoniecznyHPCombiTransf16,
58+
KoniecznyHPCombiTransf16DClass as _KoniecznyHPCombiTransf16DClass,
59+
hpcombi_PPerm16 as _HPCombiPPerm16,
60+
hpcombi_Transf16 as _HPCombiTransf16,
61+
)
62+
5263
########################################################################
5364
# Konieczny python class
5465
########################################################################
@@ -58,16 +69,24 @@ class Konieczny(_CxxWrapper):
5869
Element = _TypeVar("Element")
5970
__doc__ = _KoniecznyBMat.__doc__
6071

61-
_py_template_params_to_cxx_type = {
62-
(_BMat,): _KoniecznyBMat,
63-
(_BMat8,): _KoniecznyBMat8,
64-
(_PPerm1,): _KoniecznyPPerm1,
65-
(_PPerm2,): _KoniecznyPPerm2,
66-
(_PPerm4,): _KoniecznyPPerm4,
67-
(_Transf1,): _KoniecznyTransf1,
68-
(_Transf2,): _KoniecznyTransf2,
69-
(_Transf4,): _KoniecznyTransf4,
70-
}
72+
_py_template_params_to_cxx_type = (
73+
{
74+
(_BMat,): _KoniecznyBMat,
75+
(_BMat8,): _KoniecznyBMat8,
76+
(_PPerm1,): _KoniecznyPPerm1,
77+
(_PPerm2,): _KoniecznyPPerm2,
78+
(_PPerm4,): _KoniecznyPPerm4,
79+
(_Transf1,): _KoniecznyTransf1,
80+
(_Transf2,): _KoniecznyTransf2,
81+
(_Transf4,): _KoniecznyTransf4,
82+
}
83+
| {
84+
(_HPCombiPPerm16,): _KoniecznyHPCombiPPerm16,
85+
(_HPCombiTransf16,): _KoniecznyHPCombiTransf16,
86+
}
87+
if _LIBSEMIGROUPS_HPCOMBI_ENABLED
88+
else {}
89+
)
7190

7291
_cxx_type_to_py_template_params = dict(
7392
zip(
@@ -88,16 +107,24 @@ class DClass(_CxxWrapper):
88107

89108
Element = _TypeVar("Element")
90109

91-
_py_template_params_to_cxx_type = {
92-
(_BMat,): _KoniecznyBMatDClass,
93-
(_BMat8,): _KoniecznyBMat8DClass,
94-
(_PPerm1,): _KoniecznyPPerm1DClass,
95-
(_PPerm2,): _KoniecznyPPerm2DClass,
96-
(_PPerm4,): _KoniecznyPPerm4DClass,
97-
(_Transf1,): _KoniecznyTransf1DClass,
98-
(_Transf2,): _KoniecznyTransf2DClass,
99-
(_Transf4,): _KoniecznyTransf4DClass,
100-
}
110+
_py_template_params_to_cxx_type = (
111+
{
112+
(_BMat,): _KoniecznyBMatDClass,
113+
(_BMat8,): _KoniecznyBMat8DClass,
114+
(_PPerm1,): _KoniecznyPPerm1DClass,
115+
(_PPerm2,): _KoniecznyPPerm2DClass,
116+
(_PPerm4,): _KoniecznyPPerm4DClass,
117+
(_Transf1,): _KoniecznyTransf1DClass,
118+
(_Transf2,): _KoniecznyTransf2DClass,
119+
(_Transf4,): _KoniecznyTransf4DClass,
120+
}
121+
| {
122+
(_HPCombiPPerm16,): _KoniecznyHPCombiPPerm16DClass,
123+
(_HPCombiTransf16,): _KoniecznyHPCombiTransf16DClass,
124+
}
125+
if _LIBSEMIGROUPS_HPCOMBI_ENABLED
126+
else {}
127+
)
101128

102129
_cxx_type_to_py_template_params = dict(
103130
zip(

0 commit comments

Comments
 (0)